On 09/18/17 18:06, Jan Hudoba wrote: > > > On 09/18/2017 05:52 PM, Greg KH wrote: >> On Mon, Sep 18, 2017 at 05:27:00PM +0200, Jan Hudoba wrote: >>> hello, >>> when using nfs with automount (umount every N secs), every mount creates >>> "NFSv4 callback" process. after while these fills process table. >>> >>> https://lists.debian.org/debian-kernel/2017/05/msg00193.html >>> >>> https://bugzilla.redhat.com/show_bug.cgi?id=1427493 >>> >>> i have same problems. listed commits solved them. >>> thanks for including patches. >>> >>> "Aurelien Jarno:" >>> >>> It seems the issues is fixed since 4.12-rc1 by the following set of >>> commts: >>> >>> >>> >>> | commit ed6473ddc704a2005b9900ca08e236ebb2d8540a >>> | Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> >>> | Date: Wed Apr 26 11:55:27 2017 -0400 >>> | >>> | NFSv4: Fix callback server shutdown >>> | >>> | We want to use kthread_stop() in order to ensure the threads are >>> | shut down before we tear down the nfs_callback_info in >>> nfs_callback_down. >>> | >>> | Tested-and-reviewed-by: Kinglong Mee <kinglongmee@xxxxxxxxx> >>> | Reported-by: Kinglong Mee <kinglongmee@xxxxxxxxx> >>> | Fixes: bb6aeba736ba9 ("NFSv4.x: Switch to using >>> svc_set_num_threads()...") >>> | Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> >>> | Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx> >>> | >>> | commit 9e0d87680d689f1758185851c3da6eafb16e71e1 >>> | Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> >>> | Date: Wed Apr 26 11:55:26 2017 -0400 >>> | >>> | SUNRPC: Refactor svc_set_num_threads() >>> | >>> | Refactor to separate out the functions of starting and stopping >>> threads >>> | so that they can be used in other helpers. >>> | >>> | Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> >>> | Tested-and-reviewed-by: Kinglong Mee <kinglongmee@xxxxxxxxx> >>> | Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx> >>> | >>> | commit df807fffaabde625fa9adb82e3e5b88cdaa5709a >>> | Author: Kinglong Mee <kinglongmee@xxxxxxxxx> >>> | Date: Thu Apr 27 11:13:38 2017 +0800 >>> | >>> | NFSv4.x/callback: Create the callback service through >>> svc_create_pooled >>> | >>> | As the comments for svc_set_num_threads() said, >>> | " Destroying threads relies on the service threads filling in >>> | rqstp->rq_task, which only the nfs ones do. Assumes the serv >>> | has been created using svc_create_pooled()." >>> | >>> | If creating service through svc_create(), the svc_pool_map_put() >>> | will be called in svc_destroy(), but the pool map isn't used. >>> | So that, the reference of pool map will be drop, the next using >>> | of pool map will get a zero npools. >> >> >> Care to cc: the authors/maintainers of these patches to see if they >> agree it should be backported? >> >> thanks, >> >> greg k-h I also use automounter and can confirm this, though I never noticed until now. Just a heads up for merging: commit df807fffaa is already in 4.9x-stable as 4ebe28d23d. I can also confirm that the other two patches (here on top of 4.9.51) seem to do the trick: multiple mount/unmount sequences no longer create a growing number of callback threads. -h
Attachment:
signature.asc
Description: OpenPGP digital signature