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 F0F08C02181 for ; Tue, 21 Jan 2025 00:56:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 660836B007B; Mon, 20 Jan 2025 19:56:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 610256B0082; Mon, 20 Jan 2025 19:56:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 489A56B0083; Mon, 20 Jan 2025 19:56:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 2D2B16B007B for ; Mon, 20 Jan 2025 19:56:21 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 8D60C120501 for ; Tue, 21 Jan 2025 00:56:20 +0000 (UTC) X-FDA: 83029642920.03.93799BF Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by imf10.hostedemail.com (Postfix) with ESMTP id 8F0CFC0009 for ; Tue, 21 Jan 2025 00:56:16 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=CVA0ATSE; spf=pass (imf10.hostedemail.com: domain of hyesoo.yu@samsung.com designates 203.254.224.25 as permitted sender) smtp.mailfrom=hyesoo.yu@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737420978; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=T3FJLsTnpKvKuV3f28huVnQSKvVZSaEFGX8fAg7Y/Cc=; b=C+eHQetloYEtHrGBrA/4JbhM9grqa+d9WnOU+x87Yk0cyTxGDyKi+CgsU5ZxdPe5lBY0xP z2FzcscsRXVIZeTjshtv1Qoa6LWKDMKFUJF2nokxjC7CGK5lXUuen/mqnK8XVrDMMLIkuw g5XVWPFjA+RudU/s8FMvVkdylbxW3tk= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=CVA0ATSE; spf=pass (imf10.hostedemail.com: domain of hyesoo.yu@samsung.com designates 203.254.224.25 as permitted sender) smtp.mailfrom=hyesoo.yu@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737420978; a=rsa-sha256; cv=none; b=IgLbFfoeu938YKl5SIgWWueYveIFIesUxZgtnGPHqyMYwQPiEgzNWajD/oTFdNionuAe87 EhjpbBAwCVsDtCF+hni00dlViO6IQ7JBaHwUo1rbwqOTS87RkRXC54ajGZJuZqnUJNXAz6 gO/UysyUdMEP2sM7OuIExj5C6lsDaYU= Received: from epcas2p2.samsung.com (unknown [182.195.41.54]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20250121005612epoutp0267867fdb0d212a943ab92ca6adbce38e~cjytfG2Dk0334503345epoutp023 for ; Tue, 21 Jan 2025 00:56:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20250121005612epoutp0267867fdb0d212a943ab92ca6adbce38e~cjytfG2Dk0334503345epoutp023 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1737420972; bh=T3FJLsTnpKvKuV3f28huVnQSKvVZSaEFGX8fAg7Y/Cc=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=CVA0ATSEf/wpC9p8POfU81DpC5SMlwXPp9tL84UIV6kwh9+7pj03suUxsjhvr9btR y6avz4eJPWZiIxZ0KjxBUMeT9nbVci5mKAHPEQn2ul4k5j+FyAchymJp9HgLLjMPyp aHvC3Efc1j5TIw2bOQg/p4z2F+5rmnZl/Tqqxdo8= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas2p2.samsung.com (KnoxPortal) with ESMTP id 20250121005612epcas2p2a9b1c18e9152babfa1745360b573ed71~cjys-kt6E2212922129epcas2p2h; Tue, 21 Jan 2025 00:56:12 +0000 (GMT) Received: from epsmges2p2.samsung.com (unknown [182.195.36.98]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4YcTKl3Rfbz4x9QN; Tue, 21 Jan 2025 00:56:11 +0000 (GMT) Received: from epcas2p4.samsung.com ( [182.195.41.56]) by epsmges2p2.samsung.com (Symantec Messaging Gateway) with SMTP id E0.8B.22094.BA0FE876; Tue, 21 Jan 2025 09:56:11 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas2p4.samsung.com (KnoxPortal) with ESMTPA id 20250121005610epcas2p403c258212557f8660fe5f8a8221399c1~cjyrYUOGl2420824208epcas2p4V; Tue, 21 Jan 2025 00:56:10 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20250121005610epsmtrp2f01daa645291984f97ea5b2374378dd0~cjyrWWIN31625416254epsmtrp2_; Tue, 21 Jan 2025 00:56:10 +0000 (GMT) X-AuditID: b6c32a46-484397000000564e-95-678ef0ab2bb9 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id C7.64.18949.AA0FE876; Tue, 21 Jan 2025 09:56:10 +0900 (KST) Received: from tiffany (unknown [10.229.95.142]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20250121005610epsmtip23d8b7caab7f6a5209eab12d02e4883da~cjyrK1TUT1764517645epsmtip2Z; Tue, 21 Jan 2025 00:56:10 +0000 (GMT) Date: Tue, 21 Jan 2025 09:54:52 +0900 From: Hyesoo Yu To: Hyeonggon Yoo <42.hyeyoo@gmail.com> Cc: janghyuck.kim@samsung.com, Andrew Morton , Jonathan Corbet , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Vlastimil Babka , Roman Gushchin , linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: slub: Panic if the object corruption is checked. Message-ID: <20250121005452.GB610565@tiffany> MIME-Version: 1.0 In-Reply-To: X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrMJsWRmVeSWpSXmKPExsWy7bCmhe7qD33pBp8WilhM7DGwmLN+DZvF 9W9vGC2eHGhntFjZ3cxmsXlOscXCtiUsFpd3zWGzuLfmP6tF2+d/QGLJRiaLiWtELWY39jE6 8HrsnHWX3WPBplKPTas62Tw2fZrE7tH19gqTx4kZv1k8nlyZzuSxsGEqs8fivsmsHn1bVjF6 nFlwhN3j8ya5AJ6obJuM1MSU1CKF1Lzk/JTMvHRbJe/geOd4UzMDQ11DSwtzJYW8xNxUWyUX nwBdt8wcoB+UFMoSc0qBQgGJxcVK+nY2RfmlJakKGfnFJbZKqQUpOQXmBXrFibnFpXnpenmp JVaGBgZGpkCFCdkZizumMBYcNKrYu/ICYwPjS5UuRk4OCQETiT+HtjGC2EICOxglbq9i7mLk ArI/MUrM2TcHyvnGKPH380FGmI5JDV+hOvYySnR1OUAUPWWUOP7sNViCRUBVYvO8acwgNpuA usSJLcvA4iJA9pLbc1lBGpgF5jNLzDy7lh0kISzgKbHq/QqgBAcHr4CuREs7G0iYV0BQ4uTM JywgNqdAoMS/g5uYQHolBG5wSGzp62GCuMhF4umzF1DXCUu8Or6FHcKWkvj8bi8bhF0ssW3x YajmBkaJzR33mSESxhKznrWDNTMLZEo8uv+aCeQICQFliSO3WCDCfBIdh/+yQ4R5JTrahCA6 lSX2L5vHAmFLSjxa284KYXtIvJ71hQUSKNcZJTbM62CawCg3C8k/s5BsmwU0lllAU2L9Ln2I sLxE89bZzBBhaYnl/ziQVCxgZFvFKJZaUJybnlpsVGAEj+vk/NxNjODUreW2g3HK2w96hxiZ OBgPMUpwMCuJ8Ip+6EkX4k1JrKxKLcqPLyrNSS0+xGgKjKeJzFKiyfnA7JFXEm9oYmlgYmZm aG5kamCuJM5bvaMlXUggPbEkNTs1tSC1CKaPiYNTqoHJ4cfXojfpzy9pvjPVa6mxmrpfL8tO U202J4tZ0uzT/QXXZugUPLpaUPB+hW95UK6Zm/F55Wdr9FrndNhn2T7jEOWZYbX3pfqHX81W ZnvX7Glwqbs3kTFdfe6aBTNa8o4e/mZzpNLzS5qeja72LO13if03vhxP/yZ4qz8u97WG5Zm+ 6voWtx+qxW53a+5V8TDUBpjue+Hxz6MlW3zmn0dPHqV0T1A+stfpeLt3wBSFj+/bV9enHOne ZjwxKfj91pQVYTui5i9syb83ydBfTl5+dWnmJv7kzn0Wu7jWX+q8nzNf2uqj6rZje0y3eny3 zK8wiBJ/etyt8qHlq9t3lVclXOdQeck382fOT8GwqNVKLMUZiYZazEXFiQDn9ZCjZgQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrGIsWRmVeSWpSXmKPExsWy7bCSvO6qD33pBn37RSwm9hhYzFm/hs3i +rc3jBZPDrQzWqzsbmaz2Dyn2GJh2xIWi8u75rBZ3Fvzn9Wi7fM/ILFkI5PFxDWiFrMb+xgd eD12zrrL7rFgU6nHplWdbB6bPk1i9+h6e4XJ48SM3yweT65MZ/JY2DCV2WNx32RWj74tqxg9 ziw4wu7xeZNcAE8Ul01Kak5mWWqRvl0CV8aL5gfMBQ/0K55uX8LUwLhEqYuRk0NCwERiUsNX RhBbSGA3o8TnI3oQcUmJWZ9PMkHYwhL3W46wdjFyAdU8ZpSY8uA+G0iCRUBVYvO8acwgNpuA usSJLcvABokA2UtuzwVrYBZYzCzRtX47O0hCWMBTYtX7FUAJDg5eAV2JlnY2iKHXGSWu33jK ClLDKyAocXLmExYQmxlo0J95l5hB6pkFpCWW/+OACMtLNG+dDbaXUyBQ4t/BTUwTGAVnIeme haR7FkL3LCTdCxhZVjFKphYU56bnFhsWGOWllusVJ+YWl+al6yXn525iBEelltYOxj2rPugd YmTiYDzEKMHBrCTCK/qhJ12INyWxsiq1KD++qDQntfgQozQHi5I477fXvSlCAumJJanZqakF qUUwWSYOTqkGJpu93/c3xnRcTHl8V9dT7hHjDbMbXJ3l7bdqRBo3nK9JFxEWurXhXeKmg2sc vsnfSt/E/3rVlZn8Cunu+nu9w5y4Lv7gUHjJrrfXuFC0Skfo+lrmMibrFxwCD2c//rSZP2uD 9gWZaZVuO9oWvDUxYbnnGLntiEbn3nmvAlcLWYdMeL+z8ZuzkvujHJNOzoPP2/+p6N0suaFQ anuvc2+Dr5pN1aXvW2N8mGfyGkXnbV0Xt/C9j2r9bo3vGw1Lzz9JYpnxrqFsWgYPQxNvs/xm Fc8D1X9tl3TdMLnNJ+ioEau86/V1YekvOrPXby27ef67vcNh1+28rQ339v09mnSQ/dqj6xG6 jotFPkYeu7U6X4mlOCPRUIu5qDgRACWT+rs5AwAA X-CMS-MailID: 20250121005610epcas2p403c258212557f8660fe5f8a8221399c1 X-Msg-Generator: CA Content-Type: multipart/mixed; boundary="----towzVgSuTVdusMkY7C8F0FOQR20F6gGzFb5zsZ2iSfPj18ga=_2a5a57_" X-Sendblock-Type: AUTO_CONFIDENTIAL CMS-TYPE: 102P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20250120083041epcas2p30d61ee801c1db5a7ebdf26fdc642883f References: <20250120082908.4162780-1-hyesoo.yu@samsung.com> X-Rspamd-Queue-Id: 8F0CFC0009 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: cqybt5i4j9ifp6pckqgstxbra8nkpaqh X-HE-Tag: 1737420976-283126 X-HE-Meta: U2FsdGVkX1/oIJB+d4OwFuTTMRVNEH73Hr0iE2RfQnZVkrd74kNIavjJjMTwODpcLkL+/FmGERhJyj+Nd9PUA0Od2l5+BNycBI0u8UAFd364NBd4l6YOvFF1uElJl+pXbetA95xH0I8CNliInGfsG3iQ1aUeLcpQ6sLYKq06dbdXRPQoPyv6V55OfzS/fxNejjiBr2ukN6Fsq5QUOwQe4DHR3dh9neGKEDlRT167xm+fx+uK8Gw4Jr/HT31fB3LH2bVWCPf1uR7JGqOg2S4G/YYT15MtUw2HhtsXlYtodpvG2kc8PHH/+1FwzUbiu6p7M7hKVi0Sl78tQH/+E/JQ7un5R6ounfWus6tKhK68HN9jeaOtQ+kgHB1wpLqYXE+zpGxOWIgYWo4JAevadgPRzhMg5rq7wyaN/0Xr7p+gBmpmgUgb8tYnsoIJxXev8EtcZKhiz5wx2v4kKm6WyJfj/pwGkYtMD323eZV/yQlVmmzSgBKSPHMhzll1aI42cHqXLttcMQfjrxDNSU3id3P0VJMJ/5Si/wgOfBm7zXLKS2jWKm5Wgg1Tb54mACSfXTHs3WN64v2uuolR8fcjTl16z6xp6yUIvBqufvabyitG1X9qmJP99vIdHV7vPYLLwStWS0TjqYMtbwXAuxivrpefzlGiIIjbODANDsv8E9O7YKeAztggPlmrGAzD7XmM6VcFU4g+3MRrPKAMylvnUNDjmLvDJ1GP/DQaZl9tO0+P76FPPNV5hGao3iP9p46EpZinrEnw9to+J/WmJqkZWo1FA4ssL/pDB0g4WMzwaigHMIQo9nIwcT0ACBOuzu4UioadaqmkuoE6aLxwpgKWt5uj771nnntNIbkoCVRlhu2+0/sC5yjrC9ylGcnZv0X/aJmUqr6zstwCh8+mkBhQxOdavXmGT4V8Uj1fwS6S9PYBMGUZQk0/3t4DoZFT0lqkP42SMMYYKIbMXNUH+VxAPpq BHA/MGHR Fq/0e+3IClAL2JlsyoJ6w+kVD/IVoHAOHXV3Mu3OH4lrbjMxfJgnnuTZzlp9PmWpQUoCbwm0FVtxNTjcmRKVs3OUJnhHp81JhFvA6Ksex+tf9LNN4MDSRlodQD6I3cKgoYiF5zwjEkdc7mGg8jRD28JT7RsKBi9sEy774eQjow2wlj9J/rkschL8uca5LBoBekSrKI5juiVtV7E9Wvr4MA96HUKsUZxZYiGNi+DJWvIsrrKLUJcRWpFv3P4/KMt/OP0K4Z0JMfktKx/Q= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: ------towzVgSuTVdusMkY7C8F0FOQR20F6gGzFb5zsZ2iSfPj18ga=_2a5a57_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Content-Disposition: inline On Tue, Jan 21, 2025 at 12:41:01AM +0900, Hyeonggon Yoo wrote: > On Mon, Jan 20, 2025 at 5:30 PM Hyesoo Yu wrote: > > > > If a slab object is corrupted or an error occurs in its internal > > value, continuing after restoration may cause other side effects. > > At this point, it is difficult to debug because the problem occurred > > in the past. A flag has been added that can cause a panic when there > > is a problem with the object. > > Hi Hyesoo, > > I'm concerned about this because it goes against the effort to avoid > introducing new BUG() calls [1]. > > And I think it would be more appropriate to use existing panic_on_warn > functionality [2] which causes > a panic on WARN(), rather than introducing a SLUB-specific knob to do > the same thing. > > However SLUB does not call WARN() and uses pr_err() instead when > reporting an error. > Vlastimil and I talked about changing it to use WARN() a while ago > [3], but neither of us > have done that yet. > > Probably you may want to look at it, as it also aligns with your purpose? > FYI, if you would like to work on it, please make sure that it WARN() > is suppressed during kunit test. > > [1] https://docs.kernel.org/process/deprecated.html#bug-and-bug-on > [2] https://www.kernel.org/doc/html/v6.9/admin-guide/sysctl/kernel.html#panic-on-warn > [3] https://lore.kernel.org/linux-mm/d4219cd9-32d3-4697-93b9-6a44bf77d50c@suse.cz > > Best, > Hyeonggon Thanks for response. Using warn() instead of panic, is a great idea. Thanks for pointing out what I missed. The next patch will be changed to use warn(). Thanks. > > > Signed-off-by: Hyesoo Yu > > Change-Id: I4e7e5e0ec3421a7f6c84d591db052f79d3775493 > > --- > > Documentation/mm/slub.rst | 2 ++ > > include/linux/slab.h | 4 ++++ > > mm/slub.c | 14 ++++++++++++++ > > 3 files changed, 20 insertions(+) > > > > diff --git a/Documentation/mm/slub.rst b/Documentation/mm/slub.rst > > index 84ca1dc94e5e..ce58525db93d 100644 > > --- a/Documentation/mm/slub.rst > > +++ b/Documentation/mm/slub.rst > > @@ -53,6 +53,7 @@ Possible debug options are:: > > U User tracking (free and alloc) > > T Trace (please only use on single slabs) > > A Enable failslab filter mark for the cache > > + C Panic if object corruption is checked. > > O Switch debugging off for caches that would have > > caused higher minimum slab orders > > - Switch all debugging off (useful if the kernel is > > @@ -113,6 +114,7 @@ options from the ``slab_debug`` parameter translate to the following files:: > > U store_user > > T trace > > A failslab > > + C corruption_panic > > > > failslab file is writable, so writing 1 or 0 will enable or disable > > the option at runtime. Write returns -EINVAL if cache is an alias. > > diff --git a/include/linux/slab.h b/include/linux/slab.h > > index 10a971c2bde3..4391c30564d6 100644 > > --- a/include/linux/slab.h > > +++ b/include/linux/slab.h > > @@ -31,6 +31,7 @@ enum _slab_flag_bits { > > _SLAB_CACHE_DMA32, > > _SLAB_STORE_USER, > > _SLAB_PANIC, > > + _SLAB_CORRUPTION_PANIC, > > _SLAB_TYPESAFE_BY_RCU, > > _SLAB_TRACE, > > #ifdef CONFIG_DEBUG_OBJECTS > > @@ -97,6 +98,9 @@ enum _slab_flag_bits { > > #define SLAB_STORE_USER __SLAB_FLAG_BIT(_SLAB_STORE_USER) > > /* Panic if kmem_cache_create() fails */ > > #define SLAB_PANIC __SLAB_FLAG_BIT(_SLAB_PANIC) > > +/* Panic if object corruption is checked */ > > +#define SLAB_CORRUPTION_PANIC __SLAB_FLAG_BIT(_SLAB_CORRUPTION_PANIC) > > + > > /** > > * define SLAB_TYPESAFE_BY_RCU - **WARNING** READ THIS! > > * > > diff --git a/mm/slub.c b/mm/slub.c > > index 48cefc969480..36a8dabf1349 100644 > > --- a/mm/slub.c > > +++ b/mm/slub.c > > @@ -1306,6 +1306,8 @@ slab_pad_check(struct kmem_cache *s, struct slab *slab) > > fault, end - 1, fault - start); > > print_section(KERN_ERR, "Padding ", pad, remainder); > > > > + BUG_ON(s->flags & SLAB_CORRUPTION_PANIC); > > + > > restore_bytes(s, "slab padding", POISON_INUSE, fault, end); > > } > > > > @@ -1389,6 +1391,8 @@ static int check_object(struct kmem_cache *s, struct slab *slab, > > if (!ret && !slab_in_kunit_test()) { > > print_trailer(s, slab, object); > > add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE); > > + > > + BUG_ON(s->flags & SLAB_CORRUPTION_PANIC); > > } > > > > return ret; > > @@ -1689,6 +1693,9 @@ parse_slub_debug_flags(char *str, slab_flags_t *flags, char **slabs, bool init) > > case 'a': > > *flags |= SLAB_FAILSLAB; > > break; > > + case 'c': > > + *flags |= SLAB_CORRUPTION_PANIC; > > + break; > > case 'o': > > /* > > * Avoid enabling debugging on caches if its minimum > > @@ -6874,6 +6881,12 @@ static ssize_t store_user_show(struct kmem_cache *s, char *buf) > > > > SLAB_ATTR_RO(store_user); > > > > +static ssize_t corruption_panic_show(struct kmem_cache *s, char *buf) > > +{ > > + return sysfs_emit(buf, "%d\n", !!(s->flags & SLAB_CORRUPTION_PANIC)); > > +} > > +SLAB_ATTR_RO(corruption_panic); > > + > > static ssize_t validate_show(struct kmem_cache *s, char *buf) > > { > > return 0; > > @@ -7092,6 +7105,7 @@ static struct attribute *slab_attrs[] = { > > &red_zone_attr.attr, > > &poison_attr.attr, > > &store_user_attr.attr, > > + &corruption_panic_attr.attr, > > &validate_attr.attr, > > #endif > > #ifdef CONFIG_ZONE_DMA > > -- > > 2.48.0 > > > ------towzVgSuTVdusMkY7C8F0FOQR20F6gGzFb5zsZ2iSfPj18ga=_2a5a57_ Content-Type: text/plain; charset="utf-8" ------towzVgSuTVdusMkY7C8F0FOQR20F6gGzFb5zsZ2iSfPj18ga=_2a5a57_--