bug? in __get_free_pages

Neilski (neil.conway@ukaea.org.uk)
Mon, 3 Nov 1997 23:29:29 +0000


Hmm, I'm new to kernel delving so I've probably picked this up wrong, but it
*looks* like I've come across a bug.

If lots of pages are free, but none of them happen to be in the DMA-able
region, then __get_free_pages() will fail to return DMA-able pages - as far as
I can see... This happened to me today, I reckon.

Is this a bug or a feature ?

The nitty-gritty: if you look in page_alloc.c, you see that if (nr_free_pages >
reserved_pages) then __get_free_pages will never call try_to_free_page.

I have a suspicion that this would surely have been caught by now, and thus
must be my mistake, but I really can't see where I'm going wrong...

Comments ?

Neil