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 CD90CD1CA0E for ; Tue, 5 Nov 2024 02:21:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 454186B009A; Mon, 4 Nov 2024 21:21:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 404206B009B; Mon, 4 Nov 2024 21:21:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2CBCF6B009E; Mon, 4 Nov 2024 21:21:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 0E3C06B009A for ; Mon, 4 Nov 2024 21:21:33 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B526A160D25 for ; Tue, 5 Nov 2024 02:21:32 +0000 (UTC) X-FDA: 82750439730.14.C3A04D4 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) by imf22.hostedemail.com (Postfix) with ESMTP id 974B3C000D for ; Tue, 5 Nov 2024 02:20:48 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf22.hostedemail.com: domain of sunke@kylinos.cn designates 124.126.103.232 as permitted sender) smtp.mailfrom=sunke@kylinos.cn ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730773167; a=rsa-sha256; cv=none; b=t+DNhG6ehusiTWcRsz7/g0U+FquAfvJfclWHXNkHjfEsEptZHiGYFVPxxKDpegmOKyLOQ/ o4hqKFBxZhRjqcySxkM1rqWzEMW10TxVOhZJf61fPoQO+qf6uQMjZjgX58cuUAhu2fvqko wJOuPSXYmQnzNeohT5wRktr4LsrVoJk= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf22.hostedemail.com: domain of sunke@kylinos.cn designates 124.126.103.232 as permitted sender) smtp.mailfrom=sunke@kylinos.cn ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730773167; h=from:from:sender:reply-to: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; bh=aOqBuY/nt/MUwAdKEa+uboNDGuq6hF1Md2JUUEPmksw=; b=Dp6N60YTLdeOreOGv8CKpiazQItXkTV/cgbyivuSPNRiWdJ+3BgzF478NopgxkBbU73TkO AUVbzIzJuWiYmB0+w7SbFq/GaSrzYHz5aaBXxZAcSm85udimeYlWHzwlYpXyvGMM+3Q4rt VL6E0mPMgILTyZlJAadPrPcWBR4l9wY= X-UUID: a45e23729b1c11efa216b1d71e6e1362-20241105 X-CID-O-RULE: Release_Ham X-CID-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.38,REQID:3f50dbfd-aebe-4dde-9309-d5e0deaad043,IP:10, URL:0,TC:0,Content:-5,EDM:0,RT:0,SF:1,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:6 X-CID-INFO: VERSION:1.1.38,REQID:3f50dbfd-aebe-4dde-9309-d5e0deaad043,IP:10,UR L:0,TC:0,Content:-5,EDM:0,RT:0,SF:1,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:6 X-CID-META: VersionHash:82c5f88,CLOUDID:41f218d515c21b3d985aa517eb8212db,BulkI D:2411042127161SBUJMNA,BulkQuantity:2,Recheck:0,SF:19|42|74|841|66|23|100| 72|101|64|102,TC:0,Content:0,EDM:-3,IP:1,URL:0,File:nil,RT:nil,Bulk:40,QS: nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_FSD,TF_CID_SPAM_IBB,TF_CID_SPAM_SNR X-UUID: a45e23729b1c11efa216b1d71e6e1362-20241105 X-User: sunke@kylinos.cn Received: from mail-lf1-f50.google.com [(209.85.167.50)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA with TLSv1.3 TLS_AES_128_GCM_SHA256 128/128) with ESMTP id 262381539; Tue, 05 Nov 2024 10:21:19 +0800 Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-539f6e1f756so5124053e87.0 for ; Mon, 04 Nov 2024 18:21:18 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCX2mASgoRJgV0kTRZDnHlRQdLZtQW5SaXJQFoEb8mFakehh47XRhiTNZracQGB3bE2znz71nqVeCg==@kvack.org X-Gm-Message-State: AOJu0YyKMKt0F+KszGO9HlYbSU+QxtjmWIlzVSc6DayygBQBPg2K/4lf ZpNlFTKiov8nsz0hj5cgV4rQvU/Yv8KGhYfQSFzzif7sN9QCPqiO+pkjDG77fw/qFwgytk/1L2d hDad90GAxYNS6OnlMyI6wHUZ2MoM= X-Google-Smtp-Source: AGHT+IGD4x/3NrzHyJUdMyKi8sXlrnR/RjhAjPym7GWRtKAbKpQA9CzEqCYUksjqWD0KpnVDMP9AZvbG/cAn4UJsJnA= X-Received: by 2002:a05:6512:3b25:b0:539:e9b4:7ff6 with SMTP id 2adb3069b0e04-53b34a18f2fmr17353271e87.45.1730773271736; Mon, 04 Nov 2024 18:21:11 -0800 (PST) MIME-Version: 1.0 References: <20241104061617.450907-1-sunke@kylinos.cn> In-Reply-To: Reply-To: sunke@kylinos.cn From: Ke Sun Date: Tue, 5 Nov 2024 10:21:00 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] maple_tree: use KMEM_CACHE to create maple_node caches To: Matthew Wilcox Cc: Andrew Morton , "Liam R. Howlett" , maple-tree@lists.infradead.org, linux-mm@kvack.org Content-Type: multipart/alternative; boundary="0000000000000c7e770626210ea2" X-Rspamd-Queue-Id: 974B3C000D X-Stat-Signature: h6ign1phexhht8kbe176w3qzrw1hb711 X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1730773248-879065 X-HE-Meta: U2FsdGVkX1+pHCDt6jfzO/oYiFplU28Dq38DGBESGkOiPgE7PokEaswNhOWlSFTwbHw1MAAmFtaEIodqX2OBnW6zLd5Wd5pBS4yGfu9y6yPrLORBOhio2LrKXjnn8Pcucfd3+Gh2gGosIdMBswBqPd0Vc6R8OaA8bY7fK/C+wHqmZUEzReUZc6oIQiLXi9NiiJlkhdYdCsvUfpv7t5Mo1bv//ZyUfrgaKeK8RLB4Y1q/gLdXRC8l/4iUVwW6ULuEDbZ3+V0QOYVkTmkquMSho+v6VwsjsA4gPMDG0dH1G2wqcsTM2H7u/3jZBRLFCKMVzNCdEUYESeI+HVll6dlsLgPpYiSGXSjhSHMDxYWOcbjBTKXjy/1hQIwx5OZYRwy5eNV5niSO/6DDDP2PgPogak3NFGasT2zslEt00DpFygILdrGaZ1vmEpym5aZN5D4eS638CSxEyAntjshq7s4gBghyWZSBgidMlXV2h5CQH7qTKt33lF5gB/4gGgxq6rqPRPfwluWhlvJA040QXt2Uh+xYbWH0KI3viUyYJj2HTNreZ/PptvIIUBLSK8iJcpU0HCi1mqoCUHRaYS7sOK7PMXnqg/A+7BjWklOh9ueH+dKAkt9rtb22Br661SKnD3vwFE0Hc5vPRKAHoedDVuG8nay4cD5eqxT5fVJTfcQ7EXSSIitE4hFPqAmvaNPLN/0ZHHt6SPXyIlcJQjXIscWC6zR0i4a2aBdlLMD6pcHsenx8uUET5sDpZjOuW/QjBRwqnUSFsp2dawmRbgPiqQ47swlaCjKvBqH0vEvQJWT5YzgYro7qTnlvki+R7ZxIuq2HdrmVoZdeSQkckb/8646OWbdjclFlJdgVg5g9AH92dLR9z1cz1cWLMmCyssybnI3NHXZ/r+igrgstIwGZ5XnpJs2on1sxtd9GIlaI83WxL98eE2db1P6Z1SNvnGQm+pIlTF0VQja5z0g34UHQEQc U6rQd3YK gpfvBTDRXW2FO1LYcbSHkNK8wOO6G0x4pEO7myAB0r661k1GfJNGBc0jBxd6hmVcSh4DD9Il49ezuA9Esst7/H4iYBLkliuT5JjAyyGjWM05sTva4tLf9reThsJShyNgJtQlKUEqYHGe2LFwZ4ayro0LC0JAcKWMpkIaHuteA3UavLvkRRBj/hhUt9nDGQ7f9wtpy8Bk5u7/+BC1hKqPd7nYJil89yngFR2lCd+SwTtNa4sKyBxexDTuXCxr6qUYmYA68S87Y/mEnaYOF6ahSndxLk4d0iThNm6C2xGazCt8nsbezBSlU4zhe4FNx4uxgsFlKY6Tpjz87q0Tgw28onffcLnXtsLUw8Digi6Rbsl+ssSyLtPpi1tzQKiW4HIeKpov3H4qt71EgG+Z9lAZU9v50PMV4FADE2q19 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: --0000000000000c7e770626210ea2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Matthew Wilcox =E4=BA=8E2024=E5=B9=B411=E6=9C=884=E6= =97=A5=E5=91=A8=E4=B8=80 21:27=E5=86=99=E9=81=93=EF=BC=9A > On Mon, Nov 04, 2024 at 02:16:17PM +0800, Ke Sun wrote: > > Use the KMEM_CACHE() macro instead of kmem_cache_create() to simplify > > the creation of SLAB caches. > > Did you even test this? It is REQUIRED that maple_node be aligned to > I have tests on an ARM64 QEMU VM and enabled some Maple Tree debugging configs: CONFIG_DEBUG_VM_MAPLE_TREE=3Dy CONFIG_DEBUG_MAPLE_TREE=3Dy CONFIG_TEST_MAPLE_TREE=3Dy The results show: [ 1.434017][ T1] TEST STARTING [ 1.434017][ T1] [ 78.257756][ T1] maple_tree: 172860522 of 172860522 tests passed [ 78.271770][ T1] atomic64_test: passed > its size (eg 256 bytes) as the bottom bits of pointers to nodes are used > for other purposes. KMEM_CACHE() does not give us this guarantee. > The code comments of kmem_cache say: 'The alignment of the struct determines object alignment.' #define KMEM_CACHE(__struct, __flags) \ __kmem_cache_create_args(#__struct, sizeof(struct __struct), \ &(struct kmem_cache_args) { \ .align =3D __alignof__(struct __struct), \ }, (__flags)) > > NACK. > > --0000000000000c7e770626210ea2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
Matthew Wilcox <willy@infradead.org> =E4=BA=8E2024=E5=B9=B411= =E6=9C=884=E6=97=A5=E5=91=A8=E4=B8=80 21:27=E5=86=99=E9=81=93=EF=BC=9A
<= /div>
On Mon, Nov 04, 2024= at 02:16:17PM +0800, Ke Sun wrote:
> Use the KMEM_CACHE() macro instead of kmem_cache_create() to simplify<= br> > the creation of SLAB caches.

Did you even test this?=C2=A0 It is REQUIRED that maple_node be aligned to<= br>

I have tests= on an ARM64 QEMU VM and enabled some Maple Tree debugging configs:
CO= NFIG_DEBUG_VM_MAPLE_TREE=3Dy
CONFIG_DEBUG_MAPLE_TREE=3Dy
CONFIG_TEST_= MAPLE_TREE=3Dy

The results show:
[ =C2=A0 =C2=A01= .434017][ =C2=A0 =C2=A0T1] TEST STARTING
[ =C2=A0 =C2=A01.434017][ =C2= =A0 =C2=A0T1]
[ =C2=A0 78.257756][ =C2=A0 =C2=A0T1] maple_tree: 17286052= 2 of 172860522 tests passed
[ =C2=A0 78.271770][ =C2=A0 =C2= =A0T1] atomic64_test: passed
=C2=A0
its size (eg 256 bytes) as the bottom bits of pointers to nodes are used for other purposes.=C2=A0 KMEM_CACHE() does not give us this guarantee.
=

The code comments of kmem_cache say: '= The alignment of the struct determines object alignment.'
=C2=A0#def= ine KMEM_CACHE(__struct, __flags) =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 \
__kmem_cache_create_args(#__struct, sizeof(struct __struct), =C2= =A0 =C2=A0\
&(struct kmem_cache_args) { \
.align =3D __alignof__(= struct __struct), \
}, (__flags))
=C2=A0

NACK.

--0000000000000c7e770626210ea2--