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 1CAADC4167B for ; Tue, 5 Dec 2023 04:48:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC8EC6B0089; Mon, 4 Dec 2023 23:48:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A78EE6B0092; Mon, 4 Dec 2023 23:48:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 940A26B0095; Mon, 4 Dec 2023 23:48: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 82A406B0089 for ; Mon, 4 Dec 2023 23:48:21 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 5F695A0EF3 for ; Tue, 5 Dec 2023 04:48:21 +0000 (UTC) X-FDA: 81531533202.07.106986A Received: from mail-ua1-f52.google.com (mail-ua1-f52.google.com [209.85.222.52]) by imf10.hostedemail.com (Postfix) with ESMTP id 9F26AC0006 for ; Tue, 5 Dec 2023 04:48:19 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=c1RoAH7z; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.222.52 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701751699; a=rsa-sha256; cv=none; b=lJpyy2ZRAZ3AyC5OpeSxDNA2H1lvmoJFM+nmcoLB5RasBYPsvDS4aCftzu4PVxkz9VmGSG UgI/nY7MuRKui1yNEMLVg7DBPpkXcfg6wQHuUJ6cCjJEdoU9q+To0nndO/vbG4R2DhaPTa px1z8IGm0m2JT3qR9ONwXwFIGmYztnc= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=c1RoAH7z; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.222.52 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701751699; 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=l6U7HYB+MMDXs4im/MnwOh3wT6+xRnbqGtkbQLiIJbE=; b=cpEGpZZOKsikV8Jrv7qwTscz6VGTWm6Jw3lUiuC2B5fjsq08COHqf7aclC3Z7dPtkLuX/C P2HjyjoVvvTN/EX+IUeQDg/MFbznpnOUHNd1C1/n7n5FZWNxdjBbM083zJJV3Huzkr2NBv V3lpIJvmBhLGg6kU7HlPOdCjx+kavi0= Received: by mail-ua1-f52.google.com with SMTP id a1e0cc1a2514c-7c59ac49f12so1640357241.1 for ; Mon, 04 Dec 2023 20:48:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701751698; x=1702356498; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=l6U7HYB+MMDXs4im/MnwOh3wT6+xRnbqGtkbQLiIJbE=; b=c1RoAH7zefD9iN6zGNQ1rYBHoKmo6PI5m150QomvUKyTjP9z3kT7Yhqyi4bY41Zo89 GiZRGJFRTDNHEKXp7ky2GXGfrhyoPdPCq0My+aJKS0tPUvD7ydho4pQE6QOZj8iUsrqm 3d/TlldWSWwOjQurmeUqjx2+cEUZ76Q7DoPFoCYfmVssNfHtMCCgf0l176j9RTrvq2i2 Ifk240SnL5A0KhzqqN0zRmRe9WUtjMgBfR1jJbqM4NE7dzBnH31dGoeVWuaBqVhmKK4l Av6UCutGX81JB05zWxwKUF57AJHSSJVEE6i7UHzzJ/vWtaW7OsmZ4NJIiPCt/1v/jfOC iOOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701751698; x=1702356498; 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=l6U7HYB+MMDXs4im/MnwOh3wT6+xRnbqGtkbQLiIJbE=; b=fev6MuApA4F8YJDQ0ayffEPZn55j0em8mKvO+4Ttto8CJ4L46UrMnj0lZEnww2rPta 5U/DJjjJnfjEGqV/G1+D3XaTFGnlZGZrXFtDxFShhkaLiJcfO8p4fT2NPMYbxjx5yNnB JbyF1ie/S14Um9417B4JupWshkWnKFJoAtFoejvTqDeJTwvxjxkiKpvNw7W6vUrue9BW 86ihYj1/Fmng9R1SIghxISc+IxTecoM+blS/nQ1Lg2zcfIso/5lo299KOCAjDVUDR8Hs XXrOoy9lbhCjv7AWW21v+d9R3sCcE2/OGaSDQDsTf4hrig+ofuFYHE9PoCstc50s9qG2 9y/Q== X-Gm-Message-State: AOJu0YxvDSRiIOgpFrZgHBVqtSBBL6DoiaCs4l2U+p8/L4K9nE2/4CZF i/m1H8jockpWHW45BmxGqMvs5jhEdHxK5lV06bQ= X-Google-Smtp-Source: AGHT+IHhiPX7qYso93UYGFEAvtKnVFmjurUEPV8H0b76lJVRAkF5m5mLg9HHSDTrpxGGrM2rareCQf4N1EafMBxIQN0= X-Received: by 2002:a05:6102:2dc:b0:464:77f1:f34e with SMTP id h28-20020a05610202dc00b0046477f1f34emr651042vsh.28.1701751698506; Mon, 04 Dec 2023 20:48:18 -0800 (PST) MIME-Version: 1.0 References: <20231120-slab-remove-slab-v2-0-9c9c70177183@suse.cz> <20231120-slab-remove-slab-v2-3-9c9c70177183@suse.cz> In-Reply-To: From: Hyeonggon Yoo <42.hyeyoo@gmail.com> Date: Tue, 5 Dec 2023 13:48:07 +0900 Message-ID: Subject: Re: [PATCH v2 03/21] KASAN: remove code paths guarded by CONFIG_SLAB To: Vlastimil Babka Cc: David Rientjes , Christoph Lameter , Pekka Enberg , Joonsoo Kim , Andrew Morton , Roman Gushchin , Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Marco Elver , Johannes Weiner , Michal Hocko , Shakeel Butt , Muchun Song , Kees Cook , linux-mm@kvack.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, cgroups@vger.kernel.org, linux-hardening@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 9F26AC0006 X-Stat-Signature: 6jzfqf4shqfw6jbh49isjjdcphkcdawi X-HE-Tag: 1701751699-738199 X-HE-Meta: U2FsdGVkX1+xOm5KaRZMinOh0YJUneVr9HlaS7XUezgjlgF162esUs1c8CqjeN4JCQc9sPit/wOkJGI0W4j/4dW02vA1Rr98l8mIWgwjswI97VXqHVvAN7G3N7+0UttzpsBKjY6JSQ67dOKkSoh63ItLQWCdCbbpFm4wdri7jRo294QfNctnNeLibfMEeMe2pkOV8l+xs2aVTC6kba+/xnh9gDAOYnPLIPK2brp0+n5ZZcXeF671YTVvVOuWcqjNLr7t9ihYXUli3O9zSKZnIAmRXiU4lZuGRebH7a1xkYJYPrHIni7+oOwFVcbEDfMukghto6v8iHi3Rzflrk2IC4+6bypayWJ8HTp7eXbfVAa3bdB6d94kz1hdfkCQzr7fX7Yny5hCmk9L02G9gtxuD2wh6gCC4A2OZJQNGVPEml2vDOEFevM+LYTUAFG0/FIdtCn2oSf+7tiXCYFVCsookj6A5C4OycqXiCA7pcEUs+vHW7KoALSr6sRQlbEegcxe2cpsAkoaRegexJANC94ZlI1RQytJAN12tHpdqbOHuf9qOdnkL0Mr8P8LyW6CwSlfFwcmkeU+/hBRx8dkzaDvfce9lk7nciMDwa0af1R6Wp9/L+u9rIMdhpLch9tf7XEErTufMKGyEnEEJDDteaty/SJoxhhDkdSI73A4jTYlzRVP5QoZjxTPrrPs6EjRPVfGr1GpzH+DLu1njpYXxpbBVA/4W+Ggd2Wwzb/+r9fh5QXUIJhcJfgltOf8A8lonyF8NaRz4Dp3EAERyTMmHoWxvC5i6MV61YdWTGgKh2PCv7Z+D/+os5jT4DAqj6GSzdeBgF3GcXgknY2D5suCh6qgdLlHgxuqMFFSbUD9HRQrJhGzUCgcFHfr5a7645y9T4uWwvxlqZw4bEKE1UJ8kPrIilNfjMLdmwK4Lb92IO2ABD7xuZ5h8fYffRUdtAfbB82FhAqKAWFOTk0m4l02zBu dN/rJudn 79awOMfp82zCq14TmR3by46YWlx6y3zfLV8sLA1igAK8xInlkqSuZ5yYthSYtcTmNufSBuTQYZvmPNQPe0ZM8zavutgYNm19LClWlcSEPbTwYaWMmmp+49D0mcrXjoDym6BdaECX2e+SVksNe+BSRltwvMyWdJz1Q0FaPRo+Dft/bckgttfQ/gTVSIQIxnGBpfZgKUfBx6Vl7p2P8ok9mN77oBIias3AHROe5EFYF93bDBP11a3bt28xTnKUCTffXTwQR2vtFqNmjHlxm1KLYU2LsJHMhEhIrX35tD7jAvZ3Zj2RwTQ99hYFXviAOnjpYp7vEQTk+BHHqGX9An2r0m3LKzP/BT+muJbTo3aWARETtZupA8U8Pnmwldkulc7Fo1KqmuJwsxSwyZJv2qAj0h+aivHZiz/SjjgayImWykmzGalYqaWucX/08+dfcUXMVTwSB2APl5JhhEoj6Gp+56Jvpb6BOSUca2Xx1td4s7iXQ4F9yh0tz55u5Nv55YFq9Uy5fj4AGyBzLeHE= 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 Tue, Dec 5, 2023 at 1:27=E2=80=AFPM Hyeonggon Yoo <42.hyeyoo@gmail.com> = wrote: > > On Mon, Nov 20, 2023 at 07:34:14PM +0100, Vlastimil Babka wrote: > > With SLAB removed and SLUB the only remaining allocator, we can clean u= p > > some code that was depending on the choice. > > > > Reviewed-by: Kees Cook > > Reviewed-by: Marco Elver > > Signed-off-by: Vlastimil Babka > > --- > > mm/kasan/common.c | 13 ++----------- > > mm/kasan/kasan.h | 3 +-- > > mm/kasan/quarantine.c | 7 ------- > > 3 files changed, 3 insertions(+), 20 deletions(-) > > > > diff --git a/mm/kasan/common.c b/mm/kasan/common.c > > index 256930da578a..5d95219e69d7 100644 > > --- a/mm/kasan/common.c > > +++ b/mm/kasan/common.c > > @@ -153,10 +153,6 @@ void __kasan_poison_object_data(struct kmem_cache = *cache, void *object) > > * 2. A cache might be SLAB_TYPESAFE_BY_RCU, which means objects can b= e > > * accessed after being freed. We preassign tags for objects in the= se > > * caches as well. > > - * 3. For SLAB allocator we can't preassign tags randomly since the fr= eelist > > - * is stored as an array of indexes instead of a linked list. Assig= n tags > > - * based on objects indexes, so that objects that are next to each = other > > - * get different tags. > > */ > > static inline u8 assign_tag(struct kmem_cache *cache, > > const void *object, bool init) > > @@ -171,17 +167,12 @@ static inline u8 assign_tag(struct kmem_cache *ca= che, > > if (!cache->ctor && !(cache->flags & SLAB_TYPESAFE_BY_RCU)) > > return init ? KASAN_TAG_KERNEL : kasan_random_tag(); > > > > - /* For caches that either have a constructor or SLAB_TYPESAFE_BY_= RCU: */ > > -#ifdef CONFIG_SLAB > > - /* For SLAB assign tags based on the object index in the freelist= . */ > > - return (u8)obj_to_index(cache, virt_to_slab(object), (void *)obje= ct); > > -#else > > /* > > - * For SLUB assign a random tag during slab creation, otherwise r= euse > > + * For caches that either have a constructor or SLAB_TYPESAFE_BY_= RCU, > > + * assign a random tag during slab creation, otherwise reuse > > * the already assigned tag. > > */ > > return init ? kasan_random_tag() : get_tag(object); > > -#endif > > } > > > > void * __must_check __kasan_init_slab_obj(struct kmem_cache *cache, > > diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h > > index 8b06bab5c406..eef50233640a 100644 > > --- a/mm/kasan/kasan.h > > +++ b/mm/kasan/kasan.h > > @@ -373,8 +373,7 @@ void kasan_set_track(struct kasan_track *track, gfp= _t flags); > > void kasan_save_alloc_info(struct kmem_cache *cache, void *object, gfp= _t flags); > > void kasan_save_free_info(struct kmem_cache *cache, void *object); > > > > -#if defined(CONFIG_KASAN_GENERIC) && \ > > - (defined(CONFIG_SLAB) || defined(CONFIG_SLUB)) > > +#ifdef CONFIG_KASAN_GENERIC > > bool kasan_quarantine_put(struct kmem_cache *cache, void *object); > > void kasan_quarantine_reduce(void); > > void kasan_quarantine_remove_cache(struct kmem_cache *cache); > > diff --git a/mm/kasan/quarantine.c b/mm/kasan/quarantine.c > > index ca4529156735..138c57b836f2 100644 > > --- a/mm/kasan/quarantine.c > > +++ b/mm/kasan/quarantine.c > > @@ -144,10 +144,6 @@ static void qlink_free(struct qlist_node *qlink, s= truct kmem_cache *cache) > > { > > void *object =3D qlink_to_object(qlink, cache); > > struct kasan_free_meta *meta =3D kasan_get_free_meta(cache, objec= t); > > - unsigned long flags; > > - > > - if (IS_ENABLED(CONFIG_SLAB)) > > - local_irq_save(flags); > > > > /* > > * If init_on_free is enabled and KASAN's free metadata is stored= in > > @@ -166,9 +162,6 @@ static void qlink_free(struct qlist_node *qlink, st= ruct kmem_cache *cache) > > *(u8 *)kasan_mem_to_shadow(object) =3D KASAN_SLAB_FREE; > > > > ___cache_free(cache, object, _THIS_IP_); > > - > > - if (IS_ENABLED(CONFIG_SLAB)) > > - local_irq_restore(flags); > > } > > > > static void qlist_free_all(struct qlist_head *q, struct kmem_cache *ca= che) > > Looks good to me, > Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> nit: Some KASAN tests depends on SLUB, but as now it's the only allocator KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_SLUB); in mm/kasan/kasan_test.c can be removed > > > > > -- > > 2.42.1 > > > >