On Wed, 27 Jul 2016, Tejun Heo wrote: > Hello, Alan. > > On Wed, Jul 27, 2016 at 02:54:51PM -0400, Alan Stern wrote: > > > Hmm... I didn't know the whole USB stack could operate without > > > allocating memory. Does usb stack have mempools and stuff all the way > > > through? > > > > No -- the USB stack does need to allocate memory in order to operate. > > But it is careful to use GFP_NOIO or GFP_ATOMIC for allocations that > > might be on the block-device path. > > Hmm... That doesn't really make them dependable during memory reclaim. True. But it does mean that they can't cause a deadlock by waiting indefinitely for some other memory to be paged out to the very device they are on the access pathway for. > What happens when those allocations fail? The same thing that happens when any allocation fails -- the original I/O request fails with -ENOMEM or the equivalent. In the case of usb-storage, this is likely to trigger error recovery, which will need to allocate memory of its own... A bad situation to get into. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html