Return-Path: Received: from mx1.redhat.com ([209.132.183.28]:22524 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725853AbeJ3V72 (ORCPT ); Tue, 30 Oct 2018 17:59:28 -0400 From: "Benjamin Coddington" To: "zhong jiang" Cc: herbert@gondor.apana.org.au, linux-crypto@vger.kernel.org, LKML Subject: Re: [Qestion] Lots of memory leaks when mounting and unmounting nfs client to server continuously. Date: Tue, 30 Oct 2018 09:06:06 -0400 Message-ID: <1DEE371C-69EB-4D92-8F78-535AA5203007@redhat.com> In-Reply-To: <5BD85266.6000301@huawei.com> References: <5BD85266.6000301@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed Sender: linux-crypto-owner@vger.kernel.org List-ID: Hi zhong jiang, Try asking in linux-nfs.. but I'll also note that 3.10-stable may be missing a number of fixes to leaks in the NFS GSS code. I can see a more than a few fixes to memory leaks with: git log --grep=leak --oneline net/sunrpc/auth_gss/ Ben On 30 Oct 2018, at 8:45, zhong jiang wrote: > Hi, Herbert > > Recently, I hit a memory leak issue when mounting and unmounting > nfs with the way of krb5. > The issue happens to the linux-3.10-stable. > > I find that slab-1024 and slab-512 will take up most of the memory. > And it can not be freed. > Meanwhile, it result in rpcsec_gss_krb5 can be unregistered as well. > > nfs-sve1:/home # cat /proc/modules | grep krb5 > rpcsec_gss_krb5 31477 239730 - Live 0xffffffffa0334000 > auth_rpcgss 59314 3 rpcsec_gss_krb5,nfsd, Live 0xffffffffa0123000 > sunrpc 300546 25 rpcsec_gss_krb5,nfsd,auth_rpcgss,nfs_acl,lockd, Live > 0xffffffffa013b000 > > I open the slab-1024 trace by enabling > /sys/kernel/slab/:t-0001024/trace and get the following > > [123420.989831] Call Trace: > [123420.989834] [] dump_stack+0x19/0x1b > [123420.989837] [] > alloc_debug_processing+0xc5/0x118 > [123420.989839] [] __slab_alloc+0x400/0x48f > [123420.989841] [] ? __crypto_alloc_tfm+0x45/0x170 > [123420.989845] [] ? setkey+0x57/0x110 > [123420.989847] [] ? kzfree+0x2d/0x30 > [123420.989850] [] __kmalloc+0x1c8/0x230 > [123420.989852] [] __crypto_alloc_tfm+0x45/0x170 > [123420.989854] [] crypto_spawn_tfm+0x45/0x80 > [123420.989857] [] ? __kmalloc+0x1f3/0x230 > [123420.989859] [] crypto_cbc_init_tfm+0x27/0x40 > [123420.989864] [] __crypto_alloc_tfm+0x101/0x170 > [123420.989866] [] crypto_alloc_base+0x4c/0xb0 > [123420.989869] [] > context_v2_alloc_cipher.isra.2+0x2b/0xc0 [rpcsec_gss_krb5] > [123420.989871] [] > gss_import_sec_context_kerberos+0xbf8/0xf00 [rpcsec_gss_krb5] > [123420.989875] [] gss_import_sec_context+0x7d/0xb0 > [auth_rpcgss] > [123420.989878] [] gss_proxy_save_rsc+0x137/0x1b0 > [auth_rpcgss] > [123420.989884] [] > svcauth_gss_proxy_init+0x147/0x1e4 [auth_rpcgss] > [123420.989886] [] ? dequeue_entity+0x106/0x520 > [123420.989890] [] svcauth_gss_accept+0x3da/0xb70 > [auth_rpcgss] > [123420.989892] [] ? check_preempt_curr+0x85/0xa0 > [123420.989894] [] ? ttwu_do_wakeup+0x19/0xd0 > [123420.989897] [] ? > ttwu_do_activate.constprop.86+0x5d/0x70 > [123420.989900] [] ? try_to_wake_up+0x162/0x330 > [123420.989908] [] svc_authenticate+0xc0/0xe0 > [sunrpc] > [123420.989914] [] svc_process_common+0x21a/0x6f0 > [sunrpc] > [123420.989921] [] svc_process+0x103/0x170 [sunrpc] > [123420.989928] [] nfsd+0xdf/0x150 [nfsd] > [123420.989932] [] ? nfsd_destroy+0x80/0x80 [nfsd] > [123420.989934] [] kthread+0xcf/0xe0 > [123420.989936] [] ? > kthread_create_on_node+0x140/0x140 > [123420.989939] [] ret_from_fork+0x58/0x90 > [123420.989943] [] ? > kthread_create_on_node+0x140/0x140 > > I am unfamiliar with crypto. I will be appreciated if you could > give me some suggestion. > > Thanks, > zhong jiang