Bug #2181

contigmalloc_map() failure

Added by masterblaster over 2 years ago. Updated over 2 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Somewhere between v2.13.0-39-gc3ec66..v2.13.0-204-gdf5ed code changes cause now
xorg radeon driver to fail memory allocation, falling back to sw operation; this
mean no dri and no Xv (guess how long windows scrolling takes with a full HD
monitor...)

From dmesg:

contigmalloc_map: failed size 33554432 low=0 high=ffffffff align=4096 boundary=0
flags=00000102

Happens everytime at system startup where no heavy memory load / fragmentation
should happen. Allocation size is 1/127 of low--high range (so not a terrific
one), flags are NOWAIT|ZERO.

kldunload radeon and drm (latter causes calling contigmalloc thru ioctl) doesn't
help.

I'm running v2.13.0.207.gdae741-DEVELOPMENT x86_64

History

#1 Updated by masterblaster over 2 years ago

Unfortunately commit bc3396b8d6a56c64d72b08d59dcd520b018dd139 didn't help

At v2.13.0.229.gae286-DEVELOPMENT

$ dmesg |tail
HAMMER(ROOT) mounted clean, no recovery needed
Mounting devfs
sgioctl: rejecting cmd 0x40906468
sgioctl: rejecting cmd 0x40906468
sgioctl: rejecting cmd 0x40906468
sgioctl: rejecting cmd 0x40906468
drm0: <ATI Radeon HD 3450> on vgapci0
vgapci0: child drm0 requested pci_enable_busmaster
info: [drm] Initialized radeon 1.31.0 20080613
contigmalloc_map: failed size 33554432 low=0 high=ffffffff align=4096 boundary=0
flags=00000102

$ kldstat
Id Refs Address Size Name
1 17 0xffffffff80200000 d1d050 kernel
2 1 0xffffffff80f1e000 4a378 snd_hda.ko
3 3 0xffffffff80f69000 1af9f8 sound.ko
4 1 0xffffffff81119000 19d08 ukbd.ko
5 1 0xffffffff81133000 4b5f8 snd_uaudio.ko
6 1 0xffffffff8117f000 6274d0 acpi.ko
7 1 0xffffffff817a7000 bbf98 ahci.ko
8 1 0xffffffff81863000 40b80 ehci.ko
9 1 0xffffffff81e32000 141000 radeon.ko
10 1 0xffffffff81f73000 12d000 drm.ko

#2 Updated by sepherosa over 2 years ago

On Mon, Nov 7, 2011 at 4:34 AM, Magliano Andrea (via DragonFly issue
tracker) <> wrote:
>
> New submission from Magliano Andrea <>:
>
> Somewhere between v2.13.0-39-gc3ec66..v2.13.0-204-gdf5ed code changes cause now
> xorg radeon driver to fail memory allocation, falling back to sw operation; this
> mean no dri and no Xv (guess how long windows scrolling takes with a full HD
> monitor...)
>
> >From dmesg:
>
> contigmalloc_map: failed size 33554432 low=0 high=ffffffff align=4096 boundary=0
> flags=00000102
>
> Happens everytime at system startup where no heavy memory load / fragmentation
> should happen. Allocation size is 1/127 of low--high range (so not a terrific
> one), flags are NOWAIT|ZERO.
>

Change NOWAIT -> WAITOK, and then give it a try.

Best Regards,
sephe

#3 Updated by masterblaster over 2 years ago

  • Status changed from New to Closed

Solved by commit 79d182b0d3dee841326d364c0e92e46c405765e6

This issue was triggered by X server, i.e. an application starting far after kernel memory setup at boot time: it's likely vm.dma_reserved=..m is needed in /boot/loader.conf too.

With vm.dma_reserved=64m this issue is solved for me (radeon Xorg driver is requesting 32m in this case).

Also available in: Atom PDF