__alloc_pages: 3-order allocation failed.
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
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 getsPAGE_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.