Re: [linux-usb-devel] OOM and USB, latest Linux 2.6

From: Dan Aloni
Date: Sat Feb 17 2007 - 13:25:36 EST


Dan Aloni wrote:
Alan Stern wrote:
[...]
Can you be any more specific than that? usb-storage should use only GFP_NOIO in its I/O paths.


You are right, I looked over this state with kdb, and usb-storage
waited in usb_stor_bulk_transfer_sg, which does pass GFP_NOIO
at this scenario.

It looked suspicious though, because OOM handling was invoked
from many processes, and it didn't print about any process being
killed and it didn't complain about no processes to kill either.
Hmm, I'm pretty sure I stomped over this (from select_bad_process()):

/*
* This task already has access to memory reserves and is
* being killed. Don't allow any other task access to the
* memory reserve.
*
* Note: this may have a chance of deadlock if it gets
* blocked waiting for another task which itself is waiting
* for memory. Is there a better alternative?
*/
if (test_tsk_thread_flag(p, TIF_MEMDIE))
return ERR_PTR(-1UL);

Which might explains why the OOM handling was behaving like it did.

It would have been nice if it at least printed "OOM: I'm in a deadlock,
please FIXME...".

--
Dan Aloni
XIV LTD, http://www.xivstorage.com
da-x (at) monatomic.org, dan (at) xiv.co.il

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/