From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0B2CCEACDD for ; Tue, 1 Oct 2024 15:59:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 43BD9680024; Tue, 1 Oct 2024 11:59:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C62F680023; Tue, 1 Oct 2024 11:59:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1C964680024; Tue, 1 Oct 2024 11:59:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E9662680023 for ; Tue, 1 Oct 2024 11:59:51 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 9781F1C736E for ; Tue, 1 Oct 2024 15:59:51 +0000 (UTC) X-FDA: 82625494182.22.98B4175 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf26.hostedemail.com (Postfix) with ESMTP id 89318140005 for ; Tue, 1 Oct 2024 15:59:49 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ZFRB5O2w; spf=pass (imf26.hostedemail.com: domain of yizhan@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=yizhan@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727798350; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Pt9oSZjvdyhRuHwvrHhqU4iZrMh4nx/ABAlEg/T7YoM=; b=uNJOjBAUHwRspwiQFq6m2nNBAafiIw/bTwdwYH0u6B4SjAGhwxaDS9j0uTsKhFb41AsdR3 /5q9fzkwElY3b/F2NdVcC4sm6CAKC/A6l2ER+msZ9dSYU575lxB93ypj8j+e9roy1oSpYJ tg/0mA7E6xg91WZWuNZHbYn4jRmVuoM= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ZFRB5O2w; spf=pass (imf26.hostedemail.com: domain of yizhan@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=yizhan@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727798350; a=rsa-sha256; cv=none; b=TMVFhkJB+NW4ln7oVCvgc0tvh9BVoJDlNbKZ1MlKvo8H3wyE2V7+acqfTAIy3bj9qbZoZH jtCLaGMUy4ByYsy/P1tgeFJ2iQyAxnoujeNvFJHG9dNOPMH0W8+KyMdgJ4kzy/pteO9WMd sBINquxv3ItularVHIghN9ROH3ECq+A= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1727798388; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Pt9oSZjvdyhRuHwvrHhqU4iZrMh4nx/ABAlEg/T7YoM=; b=ZFRB5O2wMUYwJJcSlT+WvwvbLdCPoJgjyby2x+7X65B0qnVNH8jQ3jRlkU5o1ebonoh1cc XRbLBzF3KlwRkNfhzY8tjJsW7QJLeA7BQn9r1Y/bo9cArc1W1e8e2AktdFUc9EYqk5Y7mW dJZjdoG2lbimBJRa32oCxGRIT3QBllk= Received: from mail-il1-f197.google.com (mail-il1-f197.google.com [209.85.166.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-151-Af_d7e_oO9mtNzWTmbO59g-1; Tue, 01 Oct 2024 11:59:47 -0400 X-MC-Unique: Af_d7e_oO9mtNzWTmbO59g-1 Received: by mail-il1-f197.google.com with SMTP id e9e14a558f8ab-3a3481b26d6so43040595ab.2 for ; Tue, 01 Oct 2024 08:59:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727798387; x=1728403187; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Pt9oSZjvdyhRuHwvrHhqU4iZrMh4nx/ABAlEg/T7YoM=; b=wpJXSeSoqlfLk7Vgk0sISK+vqqOzDN6oUOYFyue2zNe2QVUIp+K15KcuPQkCT5pmII HcF6wYbJKekOf4sWH6wusaNEc4fk9+alujYvpVQadnJFcHvMAmzP93jNaNPfDvj+nWGY QrNl+a7fwIBJEoYtzEwAoqydRYlt6KlyVJnm72DcJU0KhV8sOt+KNKwmwjAXGDZgYTN0 IEJljD61/FhFuZHNHzLzOFVIHxI0qvDeFWS7aLdiW2oAgoAo2KJstZ7Xe+QPjVeAszU9 6H9+tp3/8M/qIpRVTvmryV/CrBC6kKOFPQeiSnSj9I6Z9KLihC7YBd9UCQ/QIvaNi/6h lwbg== X-Gm-Message-State: AOJu0Yx9690xqwXo0jcbXG1iGDwN/lLxVb8EcM570ojyDw/z0C3wj5Rb Dg7lBcxTWQGXN12w7A8HRxLqCH1QkIufkwub+PsuwaKNG1o/r3yv2r3UWbOMx6buPA3YrhfBqw8 qxcBn0RTX03uOwap18P8bApznZ05JSl849aa+1OUy1hTCd7JmNjFztbbc9G7jeWEFRC/6DmpUzA jcVd8KmL/OHWAstDY7k+M6ufo= X-Received: by 2002:a05:6e02:152a:b0:3a0:8c68:7705 with SMTP id e9e14a558f8ab-3a3451bc28cmr149151735ab.21.1727798386982; Tue, 01 Oct 2024 08:59:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF6zi7QQok5nJey8sLlkc3K21xS/RR0PDZXUOpDiWCzSuNPV1QxvuJCOwNSARtr7Nq0bHmyFNzQFCLV5U6pIt0= X-Received: by 2002:a05:6e02:152a:b0:3a0:8c68:7705 with SMTP id e9e14a558f8ab-3a3451bc28cmr149151565ab.21.1727798386637; Tue, 01 Oct 2024 08:59:46 -0700 (PDT) MIME-Version: 1.0 References: <20241001140245.306087-1-nilay@linux.ibm.com> In-Reply-To: <20241001140245.306087-1-nilay@linux.ibm.com> From: Yi Zhang Date: Tue, 1 Oct 2024 23:59:34 +0800 Message-ID: Subject: Re: [PATCH] mm, slab: fix use of SLAB_SUPPORTS_SYSFS in kmem_cache_release() To: Nilay Shroff Cc: linux-mm@kvack.org, linux-block@vger.kernel.org, vbabka@suse.cz, akpm@linux-foundation.org, cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, roman.gushchin@linux.dev, 42.hyeyoo@gmail.com, shinichiro.kawasaki@wdc.com, axboe@kernel.dk, gjoyce@linux.ibm.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: 7j3gey3x115qci1gehxbf8zjp5hena6p X-Rspamd-Queue-Id: 89318140005 X-Rspamd-Server: rspam11 X-HE-Tag: 1727798389-973218 X-HE-Meta: U2FsdGVkX1/kHxnCYbbYjzRKgjWD4Mj1bIDX13u37/4w6Bh80wiVz5IeRP1v/bY54iF7zMwvF/03FAs91+zhAPmDm7WW3dBxAHaPzgfuCI08Sx89fX6rq20QQyNAokREI8Z/996V/X5PvHLXRdKQhQLcf4JVoL+pDNdd8Dq/Fy8y+gmo8J6o2AWdVfWhChN7m5q620GPsInxeqYIUoViK8glxB3DDqxzqioUzcvYKVlG6bkXk03+FckHbgBAnjtZFTeITit2diWRtR47Z57uHy+LmtvVdcfHK0/QlCDA4FLxT+2uqoF7eqy0lqAUnKmyirGbdHgJIkXQVR9HQypKBG/658+JWjzB9nPYul3Ev1iah5ltkWKSb3JR35X75YlVSYJgZaulbow2Xk2InZOZsminfv1yWZkV3zFEeWJMkv3OpAE9md9YaaJLQDNgNHDwRDkWRicwJLXpQEqc1hVXZIAgwuVMUKJx/dH0iy9G3YcJ86aJQIT5cPkvR+GOa7DD0IRAXSvlDSMg95tueDDMcN6TN4DSQy2akwKdPCU4UjfH89Joa7T3bb1FE2szkQGULcd3zYNJtuw71/4eRmhTAzLiGhUP9pAPsNmxKxdnfeHFV/a20X/g8HUTfuhvFwowTfq8bEwNs/ZeyuFbU87BTBeE16VHSDNL5Kt2LVw4CtzkRldakSFxCP4yd7747oIwZ+aRZ9vKwIzEgR6gTwhzyFGndC//R1mLGz5qkRG7Kv0dCb3mu6LC2Sf64sAPPqQFp+WXGoAyXoiThnR+9KfslZTIICnbo7dHEYKLqB00vABe8eJsBK+LbTeJPqneCh+/SKh1QrHwKjEsl0b9jCYE36Q3EpQ5WJdj8/VDSaXZc5E22ITkK1m0I2duS41aakx9jn/e8TaoxAzGZuSudtQSFPueNOQz7P7F0nueZ+kPa6AY2CsctE7I8A0HLIQpCX2qaildvmzEc+8uroO+//f MdtBnlGn rBAR81eqFqAUJMvqKLRuXN2d79WOsRkvEpPQ5AzsvLYrm0jjUuIyZ/jj5kJPNPd7w1eDbMxSt8h18rgKBVW7Wpt/iEf1jKT6Wv8FMy7gQWJFu5dgNhoRZrL76rnKE86rxygT7BPymCKINAD5aYw+66ZVY9tHALPEOD3MBosvg7vyyRMYzkxzBG8VvnQypDvn4aep9Yv/2xoB9I9jOnSTGMzA16e5q5+XMlW/aEFpeMDEBJDzR04yvFNET05tsv5FA6GTTJkd68qTg0rnCGqBDi67ukWsYcoZTwGmjFsB3GX1wwS1LyOMxR0gNnNWSp0LbqRsRWXrLNExMDaoh47mACuZ7HLjO9yG5AgkNu8z3y9jgQhj6/qOrBi7KdMkJosxpfWPfMy545IA7O4l12Ip+A9BnKx2zgouc3/oV9HZym3jV7OVKtsFP3Pew4chP4MPhxi1ee7BgZSRePmUmPmdUCCF/uBHXzBX1j9BeMrXOKp/R+ysUiOc6IzU44BOPnHAaWAP6t39iSe1+VnwYsXrH8DoP8ptf7CvoL4X57MS2GnIGL1zEUeXoKuh+STCudUFU3Tam282XBCT0B2VWQNFgYqfOnA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Oct 1, 2024 at 10:03=E2=80=AFPM Nilay Shroff = wrote: > > The fix implemented in commit 4ec10268ed98 ("mm, slab: unlink slabinfo, > sysfs and debugfs immediately") caused a subtle side effect due to which > while destroying the kmem cache, the code path would never get into > sysfs_slab_release() function even though SLAB_SUPPORTS_SYSFS is defined > and slab state is FULL. Due to this side effect, we would never release > kobject defined for kmem cache and leak the associated memory. > > The issue here's with the use of __is_defined() macro in kmem_cache_ > release(). The __is_defined() macro expands to __take_second_arg( > arg1_or_junk 1, 0). If "arg1_or_junk" is defined to 1 then it expands to > __take_second_arg(0, 1, 0) and returns 1. If "arg1_or_junk" is NOT define= d > to any value then it expands to __take_second_arg(... 1, 0) and returns 0= . > > In this particular issue, SLAB_SUPPORTS_SYSFS is defined without any > associated value and that causes __is_defined(SLAB_SUPPORTS_SYSFS) to > always evaluate to 0 and hence it would never invoke sysfs_slab_release()= . > > This patch helps fix this issue by defining SLAB_SUPPORTS_SYSFS to 1. > > Fixes: 4ec10268ed98 ("mm, slab: unlink slabinfo, sysfs and debugfs immedi= ately") > Reported-by: Yi Zhang > Closes: https://lore.kernel.org/all/CAHj4cs9YCCcfmdxN43-9H3HnTYQsRtTYw1Kz= q-L468GfLKAENA@mail.gmail.com/ > Signed-off-by: Nilay Shroff Tested-by: Yi Zhang > --- > mm/slab.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/slab.h b/mm/slab.h > index f22fb760b286..3e0a08ea4c42 100644 > --- a/mm/slab.h > +++ b/mm/slab.h > @@ -310,7 +310,7 @@ struct kmem_cache { > }; > > #if defined(CONFIG_SYSFS) && !defined(CONFIG_SLUB_TINY) > -#define SLAB_SUPPORTS_SYSFS > +#define SLAB_SUPPORTS_SYSFS 1 > void sysfs_slab_unlink(struct kmem_cache *s); > void sysfs_slab_release(struct kmem_cache *s); > #else > -- > 2.45.2 > --=20 Best Regards, Yi Zhang