Re: [PATCH] NFS: switch nfsiod to be an UNBOUND workqueue.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 27, 2020 at 11:24:33AM +1100, NeilBrown wrote:
> 
> nfsiod is currently a concurrency-managed workqueue (CMWQ).
> This means that workitems scheduled to nfsiod on a given CPU are queued
> behind all other work items queued on any CMWQ on the same CPU.  This
> can introduce unexpected latency.
> 
> Occaionally nfsiod can even cause excessive latency.  If the work item
> to complete a CLOSE request calls the final iput() on an inode, the
> address_space of that inode will be dismantled.  This takes time
> proportional to the number of in-memory pages, which on a large host
> working on large files (e.g..  5TB), can be a large number of pages
> resulting in a noticable number of seconds.
> 
> We can avoid these latency problems by switching nfsiod to WQ_UNBOUND.
> This causes each concurrent work item to gets a dedicated thread which
> can be scheduled to an idle CPU.
> 
> There is precedent for this as several other filesystems use WQ_UNBOUND
> workqueue for handling various async events.
> 
> Signed-off-by: NeilBrown <neilb@xxxxxxx>

Acked-by: Tejun Heo <tj@xxxxxxxxxx>

Thanks.

-- 
tejun



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux