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 53DBBC77B7C for ; Wed, 24 May 2023 05:54:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B0A086B0074; Wed, 24 May 2023 01:54:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ABB3C900002; Wed, 24 May 2023 01:54:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9A8F06B0078; Wed, 24 May 2023 01:54:21 -0400 (EDT) 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 8AB556B0074 for ; Wed, 24 May 2023 01:54:21 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 5C16F1A0617 for ; Wed, 24 May 2023 05:54:21 +0000 (UTC) X-FDA: 80824083522.21.4F885E9 Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) by imf19.hostedemail.com (Postfix) with ESMTP id 787DB1A0013 for ; Wed, 24 May 2023 05:54:19 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="Ll/kZY4z"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.215.174 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684907659; a=rsa-sha256; cv=none; b=zATrF40QnYh+FKeLvPO0oVrHLiwJT9k+IYHo1BSZmLBZdiyWNBhk6gDoS/PmO9lQZwdyAD nKzH3R6QGI0w0ziTEo8PDVsbdTgNm0eTdRqMXerFK7foobk9vzoWUy2Pid4L+NiFS/bobC omEqelIMIY/QNHJJCr+O0XxnewnyKNs= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="Ll/kZY4z"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.215.174 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=1684907659; 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=qmpQ8CZWBqNpjBXlf/vqm5PoXrDI3CUBIg7+r/yPqX4=; b=OAQOAEcw2DPwSCzqdlTTfrApq3xDECEoiBKd7Z9ZgiOexziKYNzUuexpOy6CQt50S4R+dH AjW7BZrMBJ5kpVnSrBqeQvPFAd5VsI46TKBhK5FrBvGILU+dM4tZhSkXnoyh7rm+ljgrWD 1ZSZ1EA5tuNXc/H4AMqfllVeRSMQJ04= Received: by mail-pg1-f174.google.com with SMTP id 41be03b00d2f7-52cb78647ecso420580a12.1 for ; Tue, 23 May 2023 22:54:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684907658; x=1687499658; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=qmpQ8CZWBqNpjBXlf/vqm5PoXrDI3CUBIg7+r/yPqX4=; b=Ll/kZY4z6GmbqweRRDzeefXlVdAGFZlUdDBFJEEMbnx3h+Ai+c8cqNCxSTkGFketNw C+DGOb0/ZJZRjKYhfBlEOR2yoc2OBWfvsq0i/+9Zev4wmSL3MPPsq29MahVf9CRjSJEh ojsW9Q5vHIve/zDAZ12KN3ozwikW/7+QNf5Lgw/IJCVPBZnFAhikIxygmuWMi7bdaKyk r/rI6PMOlYB1WLK/WOu3cw+D9+hYWYzwubMDCINnWIjDc+FbUqKiiMUQoROl6pqKpbcD UZ3FkgMtjT6fd8zloBWdktCLFkjIo4tsryrYxDI4kfTTKW4LePLeEg2fCje+8yGW+EMU E5HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684907658; x=1687499658; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qmpQ8CZWBqNpjBXlf/vqm5PoXrDI3CUBIg7+r/yPqX4=; b=e/hY08wvjY54b39B1biEYvUNjON0b/j5kWeUttjps3b2aEZx7plwVuIOgxpcRESRww 99Hb3iphCYbZvXPPH7X/KoHyS6Gb23pGBOsFuopnJQAwCykdH5/ifgEbwWlAPaojjnZM n3mlJx0YQuHY2x9uptFPxahGP7RkbWgTZ+4OkfIbFPlY+UM4ZjbHnbJPQo0Zd7AvJt+3 Frj/fGIJ/iQHsvD4BDMftxH3LBclK92IeStQXenOrvD3MoljGaDnSgKj79Y7OUHcXtA5 V0JFY9ChyH9xWmT0Ycioz2SwIl38gPikoAYWqPznIQBrtAPptDX5+P2KDSf/GIzN6s9s 1qBw== X-Gm-Message-State: AC+VfDxtku0DDBHKKj6iHdg0J8L6Setoxxmuz5e73Nfn0gDSBAzcOkbW mdCGm+wih1aNPpQSuZb0628= X-Google-Smtp-Source: ACHHUZ76vGdzaPECnMi7UdUsqTthz47m8It48b8hGnCFJV0vnlbq9vB/sfF/1XsTkmmCIr3dHhHU3A== X-Received: by 2002:a17:903:188:b0:1ae:600d:3d07 with SMTP id z8-20020a170903018800b001ae600d3d07mr18751108plg.4.1684907658072; Tue, 23 May 2023 22:54:18 -0700 (PDT) Received: from debian-BULLSEYE-live-builder-AMD64 ([211.216.218.61]) by smtp.gmail.com with ESMTPSA id m10-20020a170902bb8a00b001aaeeeebaf1sm7723002pls.201.2023.05.23.22.54.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 22:54:17 -0700 (PDT) Date: Wed, 24 May 2023 14:54:33 +0900 From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: "GONG, Ruiqi" Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, Alexander Lobakin , kasan-dev@googlegroups.com, Wang Weiyang , Xiu Jianfeng , Vlastimil Babka , Christoph Lameter , David Rientjes , Roman Gushchin , Joonsoo Kim , Andrew Morton , Pekka Enberg , Kees Cook , Paul Moore , James Morris , "Serge E. Hallyn" , "Gustavo A. R. Silva" , Gong Ruiqi Subject: Re: [PATCH RFC v2] Randomized slab caches for kmalloc() Message-ID: References: <20230508075507.1720950-1-gongruiqi1@huawei.com> <5f5a858a-7017-5424-0fa0-db3b79e5d95e@huawei.com> <19707cc6-fa5e-9835-f709-bc8568e4c9cd@huawei.com> <1cec95d5-5cd4-fbf9-754b-e6a1229d45c3@huaweicloud.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1cec95d5-5cd4-fbf9-754b-e6a1229d45c3@huaweicloud.com> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 787DB1A0013 X-Stat-Signature: 1arw5ddpc3gpq85sd998qxoko7fqx913 X-HE-Tag: 1684907659-763381 X-HE-Meta: U2FsdGVkX19UdDJN+WtUvUHM6E8iysL041zifUHTKN4e9J9Zi+weWWX3kUj3WmWGMyBD5QSjZHDex6kUBKBlijmQCRj9G4W+9m+f7NfMMm8ngZLki1LeKnwa1xNKqMscxuzkTGP7tuy4AfIKR4BmUsLOdK2+4SY7XislgnMQFnkL1jEoA3j4sKIKLgMI+w7p6b8DE8acVo72EUeqvkUMhiO/fY2hYOWHDDa3gNGsEWjYG8CwcrtkeBEG10q+N5BNJnVP9RE5Iyt7uxLYZhcAzruUiKfJbYzToR+uFmrJ6BHIueGEZYa4ULXDhyGChDIMaVc7G/CSR6pRsJm8iY2M+FRmV2PrdwKVB6L20dahUEgk88pKHk2TlaBoZnDGrJuK30C6gihf67sT90dRRA95OhWW5jlbZ2jMJsbNa4Us+a/ES5bJHrp/JtrnpxgA/fYErgOU8MPSTjCHryHyz3REMQ88Nh4m0DHh/kMlhRrTK2m5wH1BGCFCOJOrd02qn1j3yjnxt26YAE97Wmc1LTvgZfdD6CI28YB5+rp4oW5aA+djHAAO6sl9SH0EBCgj4Qx9JrnviQwtIxe0KIIg7o6178K2ra2TqMbc2GNsXeVKe+vL5WQtzlNc80k3WRh7k116sc8+/nV9MlVyeDaFXsQ5bhy8TTJTrvoRTevVgmremePil2DPhNj4+y4/U1ulFJRzOgQF49ddhHYwx4RTvbRXpyi/Km04faYhoZXN9NuN9/l9e7/NEjQenv9nZX0Ic++S/8G4fqVDNMga4svuVbTo5xPvuq/oPSr8NFljCcq9AI1ewFoVPtqDb9wXzHuTVwcCSo7ANO7UsGZv2cvO9+zn0Qf3MJpy6zEtUvpMyIFR6V0TbSQ19fET/1YUqYJJRd3p7IqU/QZpKTicigUBM3C4cOSoaHcpUHxD0/46WhaUhYMtPw9mKIGuCVyha+HrAMRnTAP2bLraZlif/PNoYNs zi1gVyNH AuzwT/zjUpLFuqPVcStR1KHhuK5N0opmgT0u2g5kVrq0hxqHJghXSIvz0n1mldOAgbuQhZSFW5bcpNGE5PlpfVA+TU8/5XechUyFXAf3yGTGN+qtexmu1bnRFkeTo/N+2nh7ekrPbLOZujbYD4KZFEmgtwY+EfNnqOULZ1oaHvD42TSJDWR9UuHJXWB+2PMhFNEe1JggVlGwM3mNoltXSDhBD7ko9aoKCMzwtSnTgRPlW98EsFHSTwOVkkRF1lkAxCpxHt+zH0KAFIkgsdQ7u5Eee8xRlYtoy9U1xrbzmlqr+8LBO5H6ydgIJ7VOTZd4fNxlHGuiG57RHWolt21feBETuglFi0q5YuhxXdaqnMMfQp0v5+dvh20egKexfFpTmqcVd1dS3oXatC11kbFvRwOeBMnEppcDzWjBctVUeaBMw/8nyHzBN3HgN6BP0+Uf/m+lZcECVVRkdTXe3NLa27TAxYvO8fBhlkwBD0VIjgR+Gj2m+qSlH85MPAslWfFq7KH5RLRgJEjKvE3ILMQ5sZyjEsg== 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: On Mon, May 22, 2023 at 04:58:25PM +0800, GONG, Ruiqi wrote: > > > On 2023/05/22 16:03, Hyeonggon Yoo wrote: > > On Mon, May 22, 2023 at 4:35 PM Gong Ruiqi wrote: > >> On 2023/05/17 6:35, Hyeonggon Yoo wrote: > > [...] > >>>>>> +#ifdef CONFIG_RANDOM_KMALLOC_CACHES > >>>>>> +# define SLAB_RANDOMSLAB ((slab_flags_t __force)0x01000000U) > >>>>>> +#else > >>>>>> +# define SLAB_RANDOMSLAB 0 > >>>>>> +#endif > >>> > >>> There is already the SLAB_KMALLOC flag that indicates if a cache is a > >>> kmalloc cache. I think that would be enough for preventing merging > >>> kmalloc caches? > >> > >> After digging into the code of slab merging (e.g. slab_unmergeable(), > >> find_mergeable(), SLAB_NEVER_MERGE, SLAB_MERGE_SAME etc), I haven't > >> found an existing mechanism that prevents normal kmalloc caches with > >> SLAB_KMALLOC from being merged with other slab caches. Maybe I missed > >> something? > >> > >> While SLAB_RANDOMSLAB, unlike SLAB_KMALLOC, is added into > >> SLAB_NEVER_MERGE, which explicitly indicates the no-merge policy. > > > > I mean, why not make slab_unmergable()/find_mergeable() not to merge kmalloc > > caches when CONFIG_RANDOM_KMALLOC_CACHES is enabled, instead of a new flag? > > > > Something like this: > > > > diff --git a/mm/slab_common.c b/mm/slab_common.c > > index 607249785c07..13ac08e3e6a0 100644 > > --- a/mm/slab_common.c > > +++ b/mm/slab_common.c > > @@ -140,6 +140,9 @@ int slab_unmergeable(struct kmem_cache *s) > > if (slab_nomerge || (s->flags & SLAB_NEVER_MERGE)) > > return 1; > > > > + if (IS_ENALBED(CONFIG_RANDOM_KMALLOC_CACHES) && (flags & SLAB_KMALLOC)) > > + return 1; > > + > > if (s->ctor) > > return 1; > > > > @@ -176,6 +179,9 @@ struct kmem_cache *find_mergeable(unsigned int > > size, unsigned int align, > > if (flags & SLAB_NEVER_MERGE) > > return NULL; > > > > + if (IS_ENALBED(CONFIG_RANDOM_KMALLOC_CACHES) && (flags & SLAB_KMALLOC)) > > + return NULL; > > + > > list_for_each_entry_reverse(s, &slab_caches, list) { > > if (slab_unmergeable(s)) > > continue; > > Ah I see. My concern is that it would affect not only normal kmalloc > caches, but kmalloc_{dma,cgroup,rcl} as well: since they were all marked > with SLAB_KMALLOC when being created, this code could potentially change > their mergeablity. I think it's better not to influence those irrelevant > caches. I see. no problem at all as we're not running out of cache flags. By the way, is there any reason to only randomize normal caches and not dma/cgroup/rcl caches? Thanks, -- Hyeonggon Yoo Doing kernel stuff as a hobby Undergraduate | Chungnam National University Dept. Computer Science & Engineering