On Fri, 26 Apr 2024 at 16:38, Hou Tao <houtao@xxxxxxxxxxxxxxx> wrote: > > From: Hou Tao <houtao1@xxxxxxxxxx> > > When invoking virtio_fs_enqueue_req() through kworker, both the > allocation of the sg array and the bounce buffer still use GFP_ATOMIC. > Considering the size of the sg array may be greater than PAGE_SIZE, use > GFP_NOFS instead of GFP_ATOMIC to lower the possibility of memory > allocation failure and to avoid unnecessarily depleting the atomic > reserves. GFP_NOFS is not passed to virtio_fs_enqueue_req() directly, > GFP_KERNEL and memalloc_nofs_{save|restore} helpers are used instead. Makes sense. However, I don't understand why the GFP_NOFS behavior is optional. It should work when queuing the request for the first time as well, no? Thanks, Miklos