Skip to contentSkip to conversation

__alloc_pages: 3-order allocation failed.

DISCUSSION Douglas Gilbert 2 participants 2 messages Aug 13, 2001

lore
Share & tools
lore
#0 lore raw
Quoted 9 lines · Marcelo
Quoted 9 lines · André Dahlqvist

With recent kernel, 2.4.7 and 2.4.8 my syslog file has been filled with these messages:

Aug 12 02:08:58 sledgehammer kernel: __alloc_pages: 3-order allocation failed.
Aug 12 02:08:58 sledgehammer kernel: __alloc_pages: 2-order allocation failed.
Aug 12 02:08:58 sledgehammer kernel: __alloc_pages: 1-order allocation failed.
Aug 12 02:08:58 sledgehammer kernel: __alloc_pages: 3-order allocation failed.
Quoted 5 lines
Quoted 3 lines

I have not yet found a pattern for when it happens but it doesn't seam to affect my system all that much. Let me know if you want further info or if this is a known thing.

Are you using SCSI?

Marcelo,
That looks just like the sg driver trying to build a scatter gather list, first it tries 32 KB, then 16 KB then 8 KB and final gets PAGE_SIZE. This is _not_ an error (it just leads to more elements in the scatter gather list).

Any chance that printk() in __alloc_pages() can be removed?

Doug Gilbert

#1 lore raw
Quoted 14 lines · Douglas Gilbert
Quoted 13 lines · Marcelo
Quoted 12 lines · André Dahlqvist

With recent kernel, 2.4.7 and 2.4.8 my syslog file has been filled with these messages:

Aug 12 02:08:58 sledgehammer kernel: __alloc_pages: 3-order allocation failed.
Aug 12 02:08:58 sledgehammer kernel: __alloc_pages: 2-order allocation failed.
Aug 12 02:08:58 sledgehammer kernel: __alloc_pages: 1-order allocation failed.
Aug 12 02:08:58 sledgehammer kernel: __alloc_pages: 3-order allocation failed.

I have not yet found a pattern for when it happens but it doesn't seam to affect my system all that much. Let me know if you want further info or if this is a known thing.

Quoted 8 lines
Quoted 1 line

Are you using SCSI?

Marcelo,
That looks just like the sg driver trying to build a scatter gather list, first it tries 32 KB, then 16 KB then 8 KB and final gets PAGE_SIZE. This is _not_ an error (it just leads to more elements in the scatter gather list).

Ok.

Quoted 1 line

Any chance that printk() in __alloc_pages() can be removed?

Hum, I don't think its a good idea: we _want_ to know if __alloc_pages() failed in case the allocation being done is critical.

A new allocation flag to indicate if its the allocation being done is just an "optimization" (which means the VM can be more lazy when trying to free pages) and not a critical allocation is the way to go, IMO.