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]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BEEB8EFB819 for ; Tue, 24 Feb 2026 09:04:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BC8756B0088; Tue, 24 Feb 2026 04:04:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B4B966B0089; Tue, 24 Feb 2026 04:04:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A23B26B008A; Tue, 24 Feb 2026 04:04:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 8DD7E6B0088 for ; Tue, 24 Feb 2026 04:04:58 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 01025B9A73 for ; Tue, 24 Feb 2026 09:04:57 +0000 (UTC) X-FDA: 84478765476.19.DA12A87 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by imf21.hostedemail.com (Postfix) with ESMTP id 868F61C0004 for ; Tue, 24 Feb 2026 09:04:55 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b="Gder/YIx"; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf21.hostedemail.com: domain of venkat88@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=venkat88@linux.ibm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1771923895; a=rsa-sha256; cv=none; b=UDah2ZySo80xJfuehReiPpOc0umZ0lz759beqNGuFwtT3uRoHwxG5qE1uyAJZE9+TKIVB9 atrHcaivuNAU/x1ffb1nF+qXWZ92kmvI0f5m+GHrGao6pexKeEYWHDwxpwID1u8JqJRyCx 8iDaC8dYgTniDNrKeArZUkB3AN9/uwE= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b="Gder/YIx"; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf21.hostedemail.com: domain of venkat88@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=venkat88@linux.ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1771923895; 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=elcVGDXADB6ATou4SMJURL6SYr1e1xq9kOIssIYuBFE=; b=8MlbJQZyBA08bK1TtiHoEpSEfCWX+Ry50/5I479ycMKRf4T/AHjQYBT9sx1nYQMVd0F2a5 4carl8agZQIkKYwBJBJvKQfvQz2OdGbOnLVnb6bNm1HIWK9U0OD+2FIJWivH6fdkSFW0V7 OQpnuEhYPwG7Vmk2+4RKN+B1e8T7Qak= Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61O40HCF1659923; Tue, 24 Feb 2026 09:04:51 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=elcVGD XADB6ATou4SMJURL6SYr1e1xq9kOIssIYuBFE=; b=Gder/YIxBZDQXR9+Ry1Isj 20gPyMguG94Ksb00pZtkro3+4cfiUxK60KfX9HHdQJ5I6kWdG+pvE2gVyW5qAJAF qnztDnQL3hkws00k3SJKAuF9hoBpj5BnWL5F/8/T/HZcyGXcldqh93YUf2RNNlUp 6A4MwL4NS5oht7iCo1IKfEl4Q1NLFvFiN7XMTM7N1dZRyKILJq8eGRJIx4WAxYL5 Mo1YshQHoroFmnguTdWuZU84QVWtHx7IQNece4jnALNU9Z3PSBWdLPh6RFLBj5Vb ayEaIHSFPP40quvWrDVpH9NqO9rHpqZDll1ezKVqhr4Um1C2lKq4FfOPiFp+ZaWA == Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4cf4brt69k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 09:04:50 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 61O6vwIi013419; Tue, 24 Feb 2026 09:04:49 GMT Received: from smtprelay02.wdc07v.mail.ibm.com ([172.16.1.69]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4cfqdy0a53-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 09:04:49 +0000 Received: from smtpav03.wdc07v.mail.ibm.com (smtpav03.wdc07v.mail.ibm.com [10.39.53.230]) by smtprelay02.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 61O94nBI57606520 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 24 Feb 2026 09:04:49 GMT Received: from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6331A580FA; Tue, 24 Feb 2026 09:04:49 +0000 (GMT) Received: from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 91D72580FB; Tue, 24 Feb 2026 09:04:43 +0000 (GMT) Received: from [9.61.255.62] (unknown [9.61.255.62]) by smtpav03.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 24 Feb 2026 09:04:43 +0000 (GMT) Message-ID: <2d106583-4ec6-4da0-87ea-4ecad893b24f@linux.ibm.com> Date: Tue, 24 Feb 2026 14:34:41 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/slab: initialize slab->stride early to avoid memory ordering issues Content-Language: en-GB To: Harry Yoo , Vlastimil Babka , Andrew Morton Cc: Christoph Lameter , David Rientjes , Roman Gushchin , Alexei Starovoitov , Hao Li , Suren Baghdasaryan , Shakeel Butt , Muchun Song , Johannes Weiner , Michal Hocko , cgroups@vger.kernel.org, linux-mm@kvack.org References: <20260223075809.19265-1-harry.yoo@oracle.com> From: Venkat Rao Bagalkote In-Reply-To: <20260223075809.19265-1-harry.yoo@oracle.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: Z5nSWCu63VrFa_2fiJdaA71YPDtpVQGk X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDA3MiBTYWx0ZWRfXxveHu2FahzTA eQ+f+ksa90RYxDbUoLfiaupxah+g6FZOLGAOMh77ZV7PooOvlgPuiTjqsvWJ1GJOgW42mA3OZPd EnN67QEzEfGFiUupGZbW3YF2SuzHiRXYhTCCsutfmgEG9SaZTG+/5L9m8XxuALKaoxYin5gkqit lcTp53+9UBtCUWQC+iO17Vt2U8xwkQ/FLMwKz0aDgZhCosTvFVa9LHctLMfFAGfauW+ENUjUtOG S3bzZjE8uW7Pn9r4Cqodec2yusERb6uszM0mo0/6CwcGNtoPnfe5e6Tr8yJT3zjhl6RDu2X+o1f /9S2+3gNEl1EzyqgTJgHiR3/n0RdEx8U6YLaF+aG4l0IkC6LEnZpw0wubfcVuw3Jif4fhysw93U lsEL6DCtJnN2tRzE5yxvPRFfZWdHUWFJlzPRAf4W4QHTgMNwCvDmQWmSnd0+PodGvCV+GqXfnQ/ gImlBDAmzqKj7UCSo1w== X-Authority-Analysis: v=2.4 cv=eNceTXp1 c=1 sm=1 tr=0 ts=699d69b2 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=_LULtc8Kd5tF9QE_vaIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: zbF5URYQJdRdQDJ5THosgT2RZEH91lM4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-24_01,2026-02-23_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 priorityscore=1501 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602240072 X-Stat-Signature: msuq8h3my3og6tfmn44pd4fqwpfmye4g X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 868F61C0004 X-HE-Tag: 1771923895-448395 X-HE-Meta: U2FsdGVkX1/eTOHVwtytbJMnhfnKN6Zi6mv9kYztB37gkkPEzGEeVsknri3C8HFdADS5sh82VzOWP/5kjaUH4qDkgtH5arBLg94ym41crxuNKDvtjKgIX7x3Me4m4deHDoX4dadSpbVDZaygdoITCtn+cfH3/HAGtFexMUfU5k58rgkkdpvJDVijv9GdoJoc9AsQhaqsEwysCSDmBvnAK02OESIJQe9sjZQquOGFvFk5DsyWhwD6nLPArS1PxA/dMUPlVYucHmvf/2kdmk64+6ZqXoBx8uDK3EPHNwb3nqBSTOIW+LZSeiT+qQur8bKP+XoHAAeUWRguC5w45qynMtWiaYhnsKGr0vJuWO/9vHqBkC3BSTKZo5rVHh91Cncu5VEt644DHQ50MBUiLuv1+iR/lTUZfw4UMI/s+Tkkel1X0hbzfDNWtpdMYjX/tRKnMvT+3aU7AklMvNmNzrUAJ9vKF2NRqjN/iNEPLPU5kMTBXKnBrWyF2ezEZ+FZ47m+lWeM9fmyAJHV72jbY83xcp9gSi4ClAyTuX0EUHZYq3j+XEDdGcgpFQdt7IQ+JH8RAYdY/JsDNxUlc8ME1QjroQ7inAyHwQ7cMRZIZD2BtaXdOHdrTivLAKwBdEGhqjcUIDl1A+Ii0daWEzcLluDygBlPL0Tzw/UFtbNzeeZMbUhOi8rPradEqgvEqSdr3gVzKgVXBISIRW+xEpWXB+j4MTYzkpbSbpHJP57AXtUVoyXOOKgyX0G17TxqMqcYoMbzVB8sabZyE+AY/iMXou9U8sRivhYzN+jwY0tCkrsd2BtSVdiUC3pQmL9xn4MVnx8kcvtAJEQI5FIZ/6ahA82TFzDx0C96KHSLcjs7OgpsBFjURgUq9zhTuKV/NkVKQlsin+zUaUpakAeEtAMT2skmF7A5cIpHQXroHER+TfG1AzPeQUDvKemWf4n8vj4BawaItDAZ4lpv7tzz6jSv/LA DOY2OILU G7JqtVvNm07foVbliBH+4Nl8rULc6R40MBpSMXz24yjQnYpH3t61rAfZHag7Heztk6sIuxnZk4KWeY6MEv6JVIa//1csUyEPWY1FsbY8INkrqktso1K4iskMXVkwl/xJngllg6lGTBohDoRy5BEptOvJ3RSlYw4ZEQQ8wPYxT5ynxC9umkpdEyNnmTS2Siifi2RXtcSCzF4l1LvsdBiC28I56OByxhJ8VahGfX+E/JiCp+a8WzqMKTdD51sChORVQXYTWGYfoCV2njOs3+cKHGt34Q0mrbMeQ0tPPc9BiG06LOpsTZEtD+tYG1hQWaV6V5JBC 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: On 23/02/26 1:28 pm, Harry Yoo wrote: > When alloc_slab_obj_exts() is called later in time (instead of at slab > allocation & initialization step), slab->stride and slab->obj_exts are > set when the slab is already accessible by multiple CPUs. > > The current implementation does not enforce memory ordering between > slab->stride and slab->obj_exts. However, for correctness, slab->stride > must be visible before slab->obj_exts, otherwise concurrent readers > may observe slab->obj_exts as non-zero while stride is still stale, > leading to incorrect reference counting of object cgroups. > > There has been a bug report [1] that showed symptoms of incorrect > reference counting of object cgroups, which could be triggered by > this memory ordering issue. > > Fix this by unconditionally initializing slab->stride in > alloc_slab_obj_exts_early(), before the need_slab_obj_exts() check. > In case of SLAB_OBJ_EXT_IN_OBJ, it is overridden in the same function. > > This ensures stride is set before the slab becomes visible to > other CPUs via the per-node partial slab list (protected by spinlock > with acquire/release semantics), preventing them from observing > inconsistent stride value. > > Thanks to Shakeel Butt for pointing out this issue [2]. > > Fixes: 7a8e71bc619d ("mm/slab: use stride to access slabobj_ext") > Reported-by: Venkat Rao Bagalkote > Closes: https://lore.kernel.org/lkml/ca241daa-e7e7-4604-a48d-de91ec9184a5@linux.ibm.com [1] > Link: https://lore.kernel.org/linux-mm/aZu9G9mVIVzSm6Ft@hyeyoo [2] > Signed-off-by: Harry Yoo > --- > > I tested this patch, but I could not confirm that this actually fixes > the issue reported by [1]. It would be nice if Venkat could help > confirm; but perhaps it's challenging to reliably reproduce... Thanks for the patch. I did ran the complete test suite, and unfortunately issue is reproducing. I applied this patch on mainline repo for testing. Traces: [ 9316.514161] BUG: Kernel NULL pointer dereference on read at 0x00000000 [ 9316.514169] Faulting instruction address: 0xc0000000008b2ff4 [ 9316.514176] Oops: Kernel access of bad area, sig: 7 [#1] [ 9316.514182] LE PAGE_SIZE=64K MMU=Radix  SMP NR_CPUS=8192 NUMA pSeries [ 9316.514189] Modules linked in: overlay dm_zero dm_thin_pool dm_persistent_data dm_bio_prison dm_snapshot dm_bufio dm_flakey xfs loop dm_mod nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set bonding nf_tables tls sunrpc rfkill nfnetlink pseries_rng vmx_crypto dax_pmem fuse ext4 crc16 mbcache jbd2 nd_pmem papr_scm sd_mod libnvdimm sg ibmvscsi ibmveth scsi_transport_srp pseries_wdt [last unloaded: scsi_debug] [ 9316.514295] CPU: 16 UID: 0 PID: 0 Comm: swapper/16 Kdump: loaded Tainted: G        W           7.0.0-rc1+ #1 PREEMPTLAZY [ 9316.514306] Tainted: [W]=WARN [ 9316.514311] Hardware name: IBM,9080-HEX Power11 (architected) 0x820200 0xf000007 of:IBM,FW1110.01 (NH1110_069) hv:phyp pSeries [ 9316.514318] NIP:  c0000000008b2ff4 LR: c0000000008b2fec CTR: c00000000036d680 [ 9316.514326] REGS: c000000d0dcb7870 TRAP: 0300   Tainted: G   W            (7.0.0-rc1+) [ 9316.514333] MSR:  8000000000009033   CR: 84042802  XER: 20040000 [ 9316.514356] CFAR: c000000000862e94 DAR: 0000000000000000 DSISR: 00080000 IRQMASK: 0 [ 9316.514356] GPR00: c0000000008b2fec c000000d0dcb7b10 c00000000243a500 0000000000000001 [ 9316.514356] GPR04: 0000000000000008 0000000000000001 c0000000008b2fec 0000000000000001 [ 9316.514356] GPR08: a80e000000000000 0000000000000001 0000000000000007 a80e000000000000 [ 9316.514356] GPR12: c00e00000e7b6cd5 c000000d0ddf4700 c000000129a98e00 0000000000000006 [ 9316.514356] GPR16: c000000007012fa0 c000000007012fa4 c000000005160980 c000000007012f88 [ 9316.514356] GPR20: c00c000000021bec c000000d0d07f008 0000000000000001 ffffffffffffff78 [ 9316.514356] GPR24: 0000000000000005 c000000d0d58f180 c0000000032cf000 c000000d0ddf4700 [ 9316.514356] GPR28: 0000000000000088 0000000000000000 c000000129a98e00 c000000d0d07f000 [ 9316.514457] NIP [c0000000008b2ff4] refill_obj_stock+0x5b4/0x680 [ 9316.514467] LR [c0000000008b2fec] refill_obj_stock+0x5ac/0x680 [ 9316.514476] Call Trace: [ 9316.514481] [c000000d0dcb7b10] [c0000000008b2fec] refill_obj_stock+0x5ac/0x680 (unreliable) [ 9316.514494] [c000000d0dcb7b90] [c0000000008b9598] __memcg_slab_free_hook+0x238/0x3ec [ 9316.514505] [c000000d0dcb7c60] [c0000000007f3d90] __rcu_free_sheaf_prepare+0x314/0x3e8 [ 9316.514516] [c000000d0dcb7d10] [c0000000007fc2ec] rcu_free_sheaf+0x38/0x170 [ 9316.514528] [c000000d0dcb7d50] [c000000000334570] rcu_do_batch+0x2ec/0xfa8 [ 9316.514538] [c000000d0dcb7e50] [c000000000339a08] rcu_core+0x22c/0x48c [ 9316.514548] [c000000d0dcb7ec0] [c0000000001cfeac] handle_softirqs+0x1f4/0x74c [ 9316.514559] [c000000d0dcb7fe0] [c00000000001b0cc] do_softirq_own_stack+0x60/0x7c [ 9316.514570] [c0000000096c7930] [c00000000001b0b8] do_softirq_own_stack+0x4c/0x7c [ 9316.514581] [c0000000096c7960] [c0000000001cf168] __irq_exit_rcu+0x268/0x308 [ 9316.514592] [c0000000096c79a0] [c0000000001d0be4] irq_exit+0x20/0x38 [ 9316.514602] [c0000000096c79c0] [c0000000000315f4] interrupt_async_exit_prepare.constprop.0+0x18/0x2c [ 9316.514614] [c0000000096c79e0] [c000000000009ffc] decrementer_common_virt+0x28c/0x290 [ 9316.514626] ---- interrupt: 900 at plpar_hcall_norets_notrace+0x18/0x2c [ 9316.514635] NIP:  c00000000012d9f0 LR: c00000000135c0a8 CTR: 0000000000000000 [ 9316.514642] REGS: c0000000096c7a10 TRAP: 0900   Tainted: G   W            (7.0.0-rc1+) [ 9316.514649] MSR:  800000000280b033   CR: 24000804  XER: 00000000 [ 9316.514678] CFAR: 0000000000000000 IRQMASK: 0 [ 9316.514678] GPR00: 0000000000000000 c0000000096c7cb0 c00000000243a500 0000000000000000 [ 9316.514678] GPR04: 0000000000000000 800400002fe6fc10 0000000000000000 0000000000000001 [ 9316.514678] GPR08: 0000000000000030 0000000000000000 0000000000000090 0000000000000001 [ 9316.514678] GPR12: 800400002fe6fc00 c000000d0ddf4700 0000000000000000 000000002ef01a00 [ 9316.514678] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 9316.514678] GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000001 [ 9316.514678] GPR24: 0000000000000000 c000000004d7a760 000008792ad04b82 0000000000000000 [ 9316.514678] GPR28: 0000000000000000 0000000000000001 c0000000032b18d8 c0000000032b18e0 [ 9316.514774] NIP [c00000000012d9f0] plpar_hcall_norets_notrace+0x18/0x2c [ 9316.514782] LR [c00000000135c0a8] cede_processor.isra.0+0x1c/0x34 [ 9316.514792] ---- interrupt: 900 [ 9316.514797] [c0000000096c7cb0] [c0000000096c7cf0] 0xc0000000096c7cf0 (unreliable) [ 9316.514808] [c0000000096c7d10] [c0000000019af170] dedicated_cede_loop+0x90/0x170 [ 9316.514819] [c0000000096c7d60] [c0000000019aeb20] cpuidle_enter_state+0x394/0x480 [ 9316.514830] [c0000000096c7e00] [c00000000135864c] cpuidle_enter+0x64/0x9c [ 9316.514840] [c0000000096c7e50] [c000000000284b0c] call_cpuidle+0x7c/0xf8 [ 9316.514852] [c0000000096c7e90] [c0000000002903e8] cpuidle_idle_call+0x1c4/0x2b4 [ 9316.514862] [c0000000096c7f00] [c00000000029060c] do_idle+0x134/0x208 [ 9316.514872] [c0000000096c7f50] [c000000000290a5c] cpu_startup_entry+0x60/0x64 [ 9316.514882] [c0000000096c7f80] [c000000000074738] start_secondary+0x3fc/0x400 [ 9316.514894] [c0000000096c7fe0] [c00000000000e258] start_secondary_prolog+0x10/0x14 [ 9316.514904] Code: eba962a0 4bfffe40 60000000 387e0008 4bfae7c1 60000000 ebbe0008 38800008 7fa3eb78 4bfafe85 60000000 39200001 <7d40e8a8> 7d495214 7d40e9ad 40c2fff4 [ 9316.514941] ---[ end trace 0000000000000000 ]--- Regards, Venkat. > > Since this logically makes sense, it would be worth fix it anyway. > > mm/slub.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/mm/slub.c b/mm/slub.c > index 18c30872d196..afa98065d74f 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -2196,7 +2196,6 @@ int alloc_slab_obj_exts(struct slab *slab, struct kmem_cache *s, > retry: > old_exts = READ_ONCE(slab->obj_exts); > handle_failed_objexts_alloc(old_exts, vec, objects); > - slab_set_stride(slab, sizeof(struct slabobj_ext)); > > if (new_slab) { > /* > @@ -2272,6 +2271,9 @@ static void alloc_slab_obj_exts_early(struct kmem_cache *s, struct slab *slab) > void *addr; > unsigned long obj_exts; > > + /* Initialize stride early to avoid memory ordering issues */ > + slab_set_stride(slab, sizeof(struct slabobj_ext)); > + > if (!need_slab_obj_exts(s)) > return; > > @@ -2288,7 +2290,6 @@ static void alloc_slab_obj_exts_early(struct kmem_cache *s, struct slab *slab) > obj_exts |= MEMCG_DATA_OBJEXTS; > #endif > slab->obj_exts = obj_exts; > - slab_set_stride(slab, sizeof(struct slabobj_ext)); > } else if (s->flags & SLAB_OBJ_EXT_IN_OBJ) { > unsigned int offset = obj_exts_offset_in_object(s); >