On Wed, 27 Jul 2016, Tejun Heo wrote: > Hello, Oliver. > > On Wed, Jul 27, 2016 at 11:29:56AM +0200, Oliver Neukum wrote: > > On Wed, 2016-07-27 at 14:50 +0530, Bhaktipriya Shridhar wrote: > > > The workqueue "workqueue" has multiple workitems which may require > > > ordering. Hence, a dedicated ordered workqueue has been used. > > > Since the workqueue is not being used on a memory reclaim path, > > > WQ_MEM_RECLAIM has not been set. > > > > That is incorrect. The work queue is used by the HCD to handle > > TDs, which are parts of basic IO. The HCD in turn is used by > > usb-storage and uas, which are block drivers and those are obviously > > used on the memory reclaim path. > > 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. Alan Stern