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 4C3B7EE6456 for ; Fri, 15 Sep 2023 10:59:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DCD5C8D0011; Fri, 15 Sep 2023 06:59:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D7BDE6B0356; Fri, 15 Sep 2023 06:59:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C20118D0011; Fri, 15 Sep 2023 06:59:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AE46C6B0354 for ; Fri, 15 Sep 2023 06:59:56 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 78659C0FC5 for ; Fri, 15 Sep 2023 10:59:56 +0000 (UTC) X-FDA: 81238536792.18.731B478 Received: from mail-ej1-f74.google.com (mail-ej1-f74.google.com [209.85.218.74]) by imf12.hostedemail.com (Postfix) with ESMTP id 9508140005 for ; Fri, 15 Sep 2023 10:59:54 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JcNeLdAG; spf=pass (imf12.hostedemail.com: domain of 3KTkEZQsKCNoI6PPAKNEVVKCKKCHA.8KIHEJQT-IIGR68G.KNC@flex--matteorizzo.bounces.google.com designates 209.85.218.74 as permitted sender) smtp.mailfrom=3KTkEZQsKCNoI6PPAKNEVVKCKKCHA.8KIHEJQT-IIGR68G.KNC@flex--matteorizzo.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694775594; 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=h/q3ouMwQ7IDAIohC0sCavv+JpOlHz5JpjrFwf8Yaow=; b=hKdTBOxIe3D+IAOBadzDymvvX4URsi0AmggUYmmBPWjVdfaHBttnyY+HAX1yteBqguWvu4 eK/QzJsjNMR6J4IaFDda331KPH6sJXKjMYB9JlMP/M0yvdNtPaRJ8IwEibk/dQC20xZlwj 7xpwombp4uVYRDLj5H9s6PVaW/44BH0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694775594; a=rsa-sha256; cv=none; b=agiQgGrD5aI2dVdYlKOsDiKLF5XN/QjSj/VIRQ4OQcKXP/mHNE/FAir70NIr3B4roA5O8N /NDWdXRUHzFRy/5WEG+zvCspd1nicGqag6aL/wSlXNz2jDjV1SP4vvBC2tSz2H7iaSAl48 lfnTw91brFbcZjvi27G+qTgFqE/W81k= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JcNeLdAG; spf=pass (imf12.hostedemail.com: domain of 3KTkEZQsKCNoI6PPAKNEVVKCKKCHA.8KIHEJQT-IIGR68G.KNC@flex--matteorizzo.bounces.google.com designates 209.85.218.74 as permitted sender) smtp.mailfrom=3KTkEZQsKCNoI6PPAKNEVVKCKKCHA.8KIHEJQT-IIGR68G.KNC@flex--matteorizzo.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ej1-f74.google.com with SMTP id a640c23a62f3a-9a9e12a3093so319230966b.0 for ; Fri, 15 Sep 2023 03:59:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694775593; x=1695380393; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=h/q3ouMwQ7IDAIohC0sCavv+JpOlHz5JpjrFwf8Yaow=; b=JcNeLdAGSwvUYmO2u/DzrtSpfNB0qxHd6SqaoHXmF1nTJInBOKX/gWAPwoUR5ak7wR MZWRukC4dFHC86orq2TRPuVzOoxHXs4EqAj7K4eAfWM/arR3fQi83qfXen5Rq7yILaq2 KeW7nVlGJ1PkMbq4xndM1fE6piH34RG3CYPNM4fYfnBSgiDVw02uDPxUnTB0eJarB9ZE 69wpAFQSqjCTqJeTrSW2SvRVCY+EVe1GYSQRg2C74TEFjgCoIqNUBG3T93O7QJv44EkV vcDo0CNJxtY0VAlIdTJBDi8bMQq96AeEHqBTZrtnFQfZrAbPx1z1LFztrJH68I1MjKZ1 y7EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694775593; x=1695380393; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=h/q3ouMwQ7IDAIohC0sCavv+JpOlHz5JpjrFwf8Yaow=; b=O4zkj7z0ccXCQBDeh9Afut5wVAL7eOtUiO9CbQqxJTCZuGly2AtzT+NT4ZiGh9H/SU K0kJadsYQ+z2Pr3QDts/89RmPDx6vNIJ8+9z+xhTzL3JD+5MlXjpv/18mqmWR+YxFj5+ 4HKgAE7biIUVv0wL76+xv5MduImyd8qpDSzGtYoqGUxwKFfg4deGNEnIb07J+swmbGr5 XlwMmh8SMJYRuC+0WuqS4GAYPmEwqZkXr7nEB7IfLPnloyC6aLiS9Wh7oLj/A1EMAgYX w2E9LJXDRV1483m+8MVOIPws2t8RpUaWQAhTUkO/+DpH+r7Rn+bXf8/ZiJYAQHFTQ7ZR EQhQ== X-Gm-Message-State: AOJu0Yxs94M0+btfP2IliRZq0VVwvYVUeCakSseZGECoPe77oKzEVT2g Q3iXu8qeugq4sHhlTgYH1LJFTYLdm0dVUyEIyQ== X-Google-Smtp-Source: AGHT+IGzGcqa6kGNtl+Zbc2lxfKKH+MRmw22LvMY2Bcl+linrh96N5epPcLI/8cSAKDbzrfQBk304rpFFgdGLDJl5w== X-Received: from mr-cloudtop2.c.googlers.com ([fda3:e722:ac3:cc00:31:98fb:c0a8:2a6]) (user=matteorizzo job=sendgmr) by 2002:a17:907:c9aa:b0:9ad:c79d:2a20 with SMTP id uj42-20020a170907c9aa00b009adc79d2a20mr11116ejc.1.1694775593399; Fri, 15 Sep 2023 03:59:53 -0700 (PDT) Date: Fri, 15 Sep 2023 10:59:25 +0000 In-Reply-To: <20230915105933.495735-1-matteorizzo@google.com> Mime-Version: 1.0 References: <20230915105933.495735-1-matteorizzo@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230915105933.495735-7-matteorizzo@google.com> Subject: [RFC PATCH 06/14] mm/slub: pass additional args to alloc_slab_page From: Matteo Rizzo To: cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, vbabka@suse.cz, roman.gushchin@linux.dev, 42.hyeyoo@gmail.com, keescook@chromium.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-hardening@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, corbet@lwn.net, luto@kernel.org, peterz@infradead.org Cc: jannh@google.com, matteorizzo@google.com, evn@google.com, poprdi@google.com, jordyzomer@google.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 9508140005 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: zes8ykg74dbz73ukhpy38ni9kq6g7af3 X-HE-Tag: 1694775594-344761 X-HE-Meta: U2FsdGVkX1+0wG9N+UuCaEulLTaLIoWHesKaw6ItDsOBRxXihgOdI0D5dBs+NsA+FXCKukmwj9vvhM9ZGcMVbizJoLQ4bomjQl/yibfplO4zIN9s+aUiyQkFy1PIxbPpcVFBeeljYV6Z2ETS04olJgxiWN6Z+fY8PDe239cWR/L5krOmdvs3NuAzeB6BBv39Leu5fkvreCqmSVd2UYiAhKkeT8ypuSSkdSdzVQqd3ph3h62DAX7x8D3JBnoTf8d84llFMODC4DTJ/u74VnEBFa9VhclXpKGeaPewcxyl39HrQ0d2ttzB31d/t3oBtE6p9J7FfiaS32Ma2OFmAy0+G7cvLdm2nfZ2SRnFuojm/Ocr3D3i2/yFzpkbkdKGpOZQ5M1xQeP3qxj/bUtlo6kgh2mYYSS9nxOLnEld1bwCEc8oB32uZ/CYgb9omcw/ZDypiuiuPhVqVx4hTzYIrsJ428QPbRqk3Y/HvKjFVq2qZjEpVSDTT9+gwtUDgGPfUG6z/3/ukDNw6RZINbhRX0hjo8n2kMMDICaUp6bm2u1yQ8akLzb3Tsm/WKD4MP7jCOqMLK9yKlE3Ij/R9FSiwhWdqTa3XtATw8SZAeZ56Eqhu1GxL2wuqAGOkSyFKCXLHDkFKIBlhc50fWF/pUv6TTQgRSTE58igQiAs4OVTlQFy+HjcRfEMPfIJkBli2fEYwOEwGykcZwGpHHAWvvUa5xwIvikUbUwRwMhY37eRy4g3FKbjhbZIuosUGhIFIHuyaxO/sNZvo1X/IeAd0E9A21lRT0WnWKgX+6RpIquoHGxw6OkRab6tOhlRB5GwsNGSBhjpjo8JauPLY3o/coEsPe4rM13F1XHyxJBihO3lDaPQZDQG3qSCfkIRVr8MxCXhohoavIt9X9+tKe38zfY1CvbTyfYrYLb2btRgbYjA2tXFO50LOhNO5PpWDypuSXN+hchIVFwzgR8qBafDliqFj8m L5qYjoD+ z33L0CJORbO9qvW1KaRX3mCe9YSyV4b5b8Rpaaxw/4Cwb8HZtL0Iuz0p9rTLr4knwQTAjzn881WarZtTIh4cnLfNioilWE6OusJ1z+EHI6U3JHK6yWX5292XUO69vXTHwDDUiSobprS7A34pHubJb1V8SGFGGaFe2UbDe6Aoz+1Qf0lMZJVvyy7Bi1KigkdANQxofSQ6pQcf4eiZ8fMOEzHcVvF91Vtn5/G20svO76dQkkdkny+3gzC/rOoyckvLWKy9ytY3sGKPtgPK9TGJIVanTEnrzNZKAoouz0lKRM5zuCVd1jlrLyWQkiUwVTtQLN4Vbam4GvK1bG/vrSmZuMqlpjvI9pELJeMclDPIgK12N2pY562fOTzEJecBqmgTh8KFHsmWXArx7pfYtXMZUzhpAzrtNX79OsgU+E419fw/soAIdjDYD49X2gi1Ni839I7xYeqSrmm8YtbvmSO4pF7vNQeHHizoYwdVMqCmKeONkN44bHCR3JqOSbANaL0vri2Ptbq9TmM2eJx3T2cjvlAXmbVIEaKmN4/O79gT64VJBh2o/2XQ5uDnLnNjUTUcbOT5mIOC5u7O3xTWEHxvBUs+blPXZlTWUhRYNJbIPlpWlLICU97oqhDFiULxiQaGo+rCPoNQDiOsOmKq3wZiSAhU2HOvhLJLNk3opcp6GI70m1t7KaG1bbStUiyNa1Vj2Yt8y+qUt5wjg2g4Vp/KhQka+KQ== 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: From: Jann Horn This is refactoring in preparation for SLAB_VIRTUAL. The implementation of SLAB_VIRTUAL needs access to struct kmem_cache in alloc_slab_page in order to take unused slabs from the slab freelist, which is per-cache. In addition to that it passes two different sets of GFP flags. meta_gfp_flags is used for the memory backing the metadata region and page tables, and gfp_flags for the data memory. Signed-off-by: Jann Horn Co-developed-by: Matteo Rizzo Signed-off-by: Matteo Rizzo --- mm/slub.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index 9b87afade125..eaa1256aff89 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1869,7 +1869,8 @@ static void folio_clear_slab(struct folio *folio, struct slab *slab) __folio_clear_slab(folio); } -static inline struct slab *alloc_slab_page(gfp_t flags, int node, +static inline struct slab *alloc_slab_page(struct kmem_cache *s, + gfp_t meta_flags, gfp_t flags, int node, struct kmem_cache_order_objects oo) { struct folio *folio; @@ -2020,7 +2021,7 @@ static struct slab *allocate_slab(struct kmem_cache *s, gfp_t flags, int node) if ((alloc_gfp & __GFP_DIRECT_RECLAIM) && oo_order(oo) > oo_order(s->min)) alloc_gfp = (alloc_gfp | __GFP_NOMEMALLOC) & ~__GFP_RECLAIM; - slab = alloc_slab_page(alloc_gfp, node, oo); + slab = alloc_slab_page(s, flags, alloc_gfp, node, oo); if (unlikely(!slab)) { oo = s->min; alloc_gfp = flags; @@ -2028,7 +2029,7 @@ static struct slab *allocate_slab(struct kmem_cache *s, gfp_t flags, int node) * Allocation may have failed due to fragmentation. * Try a lower order alloc if possible */ - slab = alloc_slab_page(alloc_gfp, node, oo); + slab = alloc_slab_page(s, flags, alloc_gfp, node, oo); if (unlikely(!slab)) return NULL; stat(s, ORDER_FALLBACK); -- 2.42.0.459.ge4e396fd5e-goog