contigmalloc for low address in SI_SUB_KMEM

qhwt at qhwt at
Wed Sep 3 03:52:29 PDT 2003

Two questions:
  - Is contigmalloc1() supposed to be able to allocate a memory range
  0 - 0x9FFFF when the initialization stage is in SI_SUB_KMEM?
  - Is there a way to find who grabbed that area, if any

I'm trying to cope with a weird error from acpi_alloc_wakeup_handler()
(not in our tree, look at /sys/i386/acpica/acpi_wakeup.c in
FreeBSD-STABLE tree), which calls bus_dmamem_alloc(), which eventually
calls contigmalloc(), which failed.
On ACPI-enabled-FreeBSD-STABLE kernel running on the same machine, the
allocation doesn't fail, so I think it's not specific to this hardware.

Adding some printf's around contigmalloc1(), I've found that the lowest
possible value available in vm_page_array was something like 0x5db000,
which is far above 0x9FFFF, and allocation always fails. I even inserted
a test code at the end of vm_mem_init(), but the result was the same;
no success below 0x5db000. I need to look at much more codes around this
because I'm new to vm stuffs, and I hope someone can track this down.
My kernel config file is available on request.

Sincerely yours.

More information about the Bugs mailing list