Messages in this thread |  | | Date | Sat, 17 Feb 2007 20:24:18 +0200 | From | Dan Aloni <> | Subject | Re: [linux-usb-devel] OOM and USB, latest Linux 2.6 |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |