All of lore.kernel.org
 help / color / mirror / Atom feed
* kernel stable 4.9 - NFSv4 callback processes fills process table
@ 2017-09-18 15:27 Jan Hudoba
  2017-09-18 15:52 ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Hudoba @ 2017-09-18 15:27 UTC (permalink / raw)
  To: stable


[-- Attachment #1.1: Type: text/plain, Size: 2522 bytes --]

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@primarydata.com>
|  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@gmail.com>
|      Reported-by: Kinglong Mee <kinglongmee@gmail.com>
|      Fixes: bb6aeba736ba9 ("NFSv4.x: Switch to using
svc_set_num_threads()...")
|      Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
|      Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
|  commit 9e0d87680d689f1758185851c3da6eafb16e71e1
|  Author: Trond Myklebust <trond.myklebust@primarydata.com>
|  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@primarydata.com>
|      Tested-and-reviewed-by: Kinglong Mee <kinglongmee@gmail.com>
|      Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
|  commit df807fffaabde625fa9adb82e3e5b88cdaa5709a
|  Author: Kinglong Mee <kinglongmee@gmail.com>
|  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.


-- 
S pozdravom / Yours sincerely
Ing. Jan Hudoba


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kernel stable 4.9 - NFSv4 callback processes fills process table
  2017-09-18 15:27 kernel stable 4.9 - NFSv4 callback processes fills process table Jan Hudoba
@ 2017-09-18 15:52 ` Greg KH
  2017-09-18 16:06   ` Jan Hudoba
  0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2017-09-18 15:52 UTC (permalink / raw)
  To: Jan Hudoba; +Cc: stable

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@primarydata.com>
> |  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@gmail.com>
> |      Reported-by: Kinglong Mee <kinglongmee@gmail.com>
> |      Fixes: bb6aeba736ba9 ("NFSv4.x: Switch to using
> svc_set_num_threads()...")
> |      Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
> |      Signed-off-by: J. Bruce Fields <bfields@redhat.com>
> |
> |  commit 9e0d87680d689f1758185851c3da6eafb16e71e1
> |  Author: Trond Myklebust <trond.myklebust@primarydata.com>
> |  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@primarydata.com>
> |      Tested-and-reviewed-by: Kinglong Mee <kinglongmee@gmail.com>
> |      Signed-off-by: J. Bruce Fields <bfields@redhat.com>
> |
> |  commit df807fffaabde625fa9adb82e3e5b88cdaa5709a
> |  Author: Kinglong Mee <kinglongmee@gmail.com>
> |  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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kernel stable 4.9 - NFSv4 callback processes fills process table
  2017-09-18 15:52 ` Greg KH
@ 2017-09-18 16:06   ` Jan Hudoba
  2017-09-18 18:05     ` Holger Hoffstätte
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Hudoba @ 2017-09-18 16:06 UTC (permalink / raw)
  To: stable; +Cc: Trond Myklebust, Kinglong Mee


[-- Attachment #1.1: Type: text/plain, Size: 2964 bytes --]



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@primarydata.com>
>> |  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@gmail.com>
>> |      Reported-by: Kinglong Mee <kinglongmee@gmail.com>
>> |      Fixes: bb6aeba736ba9 ("NFSv4.x: Switch to using
>> svc_set_num_threads()...")
>> |      Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
>> |      Signed-off-by: J. Bruce Fields <bfields@redhat.com>
>> |
>> |  commit 9e0d87680d689f1758185851c3da6eafb16e71e1
>> |  Author: Trond Myklebust <trond.myklebust@primarydata.com>
>> |  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@primarydata.com>
>> |      Tested-and-reviewed-by: Kinglong Mee <kinglongmee@gmail.com>
>> |      Signed-off-by: J. Bruce Fields <bfields@redhat.com>
>> |
>> |  commit df807fffaabde625fa9adb82e3e5b88cdaa5709a
>> |  Author: Kinglong Mee <kinglongmee@gmail.com>
>> |  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
> 

-- 
S pozdravom / Yours sincerely
Ing. Jan Hudoba



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kernel stable 4.9 - NFSv4 callback processes fills process table
  2017-09-18 16:06   ` Jan Hudoba
@ 2017-09-18 18:05     ` Holger Hoffstätte
  0 siblings, 0 replies; 4+ messages in thread
From: Holger Hoffstätte @ 2017-09-18 18:05 UTC (permalink / raw)
  To: Jan Hudoba, stable; +Cc: Trond Myklebust, Kinglong Mee


[-- Attachment #1.1: Type: text/plain, Size: 3380 bytes --]

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@primarydata.com>
>>> |  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@gmail.com>
>>> |      Reported-by: Kinglong Mee <kinglongmee@gmail.com>
>>> |      Fixes: bb6aeba736ba9 ("NFSv4.x: Switch to using
>>> svc_set_num_threads()...")
>>> |      Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
>>> |      Signed-off-by: J. Bruce Fields <bfields@redhat.com>
>>> |
>>> |  commit 9e0d87680d689f1758185851c3da6eafb16e71e1
>>> |  Author: Trond Myklebust <trond.myklebust@primarydata.com>
>>> |  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@primarydata.com>
>>> |      Tested-and-reviewed-by: Kinglong Mee <kinglongmee@gmail.com>
>>> |      Signed-off-by: J. Bruce Fields <bfields@redhat.com>
>>> |
>>> |  commit df807fffaabde625fa9adb82e3e5b88cdaa5709a
>>> |  Author: Kinglong Mee <kinglongmee@gmail.com>
>>> |  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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-09-18 18:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-18 15:27 kernel stable 4.9 - NFSv4 callback processes fills process table Jan Hudoba
2017-09-18 15:52 ` Greg KH
2017-09-18 16:06   ` Jan Hudoba
2017-09-18 18:05     ` Holger Hoffstätte

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.