Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp234548iob; Mon, 2 May 2022 18:02:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw24wJCpNnJVk5IFyfqDJAtwDWufGkdUBRpWJnfZmtifc7nypptNLIxk0M73v1WGSR36wD+ X-Received: by 2002:a17:903:283:b0:152:157:eb7 with SMTP id j3-20020a170903028300b0015201570eb7mr3700697plr.109.1651539764954; Mon, 02 May 2022 18:02:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651539764; cv=none; d=google.com; s=arc-20160816; b=AbfYAucv6xstWjYwaeWeMi7kLNif73zADiUIMbHigsbqAANnz1TthIoElNSt4U05oB IfjLw8ExSQB2ufwL9pcqujIByYP+tBAF9ijThOopOYVsVfRzbRyJvOnvgmo972AFcRhQ xnzvqc17D9pVuh2ZV6d/NIrGxbfk78d8OEiw2WTEaHKCxGePeIp8RVc+ipAdXedOCpZd ICadfnmTkksqGe/YoUExY3ifu+UoDKDfI/HAo+riRZWMLL7CIIdBT6ibgZkoDIDpjook kcWe4uupZprQ83rbNzWkLcQd/oeby+/NEBf5bP4CBaVzyTAuBMNX4yfek1NNrumdy8KZ nYQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=ykl24436SaU3yo8134eJXPByhNLIxnoisxRIQCMfPNU=; b=qjXTFq+zIyYwPBf1iuAWKbROrkzvFPaOtdyrhM1NKlsBtAkYn57+U42lAUO+mVWk9i 1JKOhKrI9os2VkVAiM28G4IOnx6+A8sdb9o/z1vFDv67AI700aSc5MXhvnV1qxZXa7Wo A2bFn/4GOKOGjvjwSemSHbMS/TtmFSBRxfGWHi6TlgCVVLBWYnO5NmbNsML/Jwja4yGo QuwFguBF/k3T0ruXp2bdWp+oqhdWkKNChyU9kvIFp3JDmgNT6Cb77ab/1tA3PvncI+JY 2CR84+ZCefFLAIrzlUzH/olMvzYf02h0Fre903hCrveRxrJVwbOeZbeVteiK8o+HItdh 9mxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=OYu5UJio; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id r18-20020a170903411200b001586588aa4bsi14026266pld.51.2022.05.02.18.02.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 May 2022 18:02:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=OYu5UJio; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2B78B56408; Mon, 2 May 2022 17:46:36 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352697AbiD1V7U (ORCPT + 99 others); Thu, 28 Apr 2022 17:59:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38126 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348288AbiD1V7T (ORCPT ); Thu, 28 Apr 2022 17:59:19 -0400 Received: from mail-ua1-x934.google.com (mail-ua1-x934.google.com [IPv6:2607:f8b0:4864:20::934]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 875E9580C8 for ; Thu, 28 Apr 2022 14:56:03 -0700 (PDT) Received: by mail-ua1-x934.google.com with SMTP id c15so2271941uav.0 for ; Thu, 28 Apr 2022 14:56:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ykl24436SaU3yo8134eJXPByhNLIxnoisxRIQCMfPNU=; b=OYu5UJiojOCJcf+bfjl+7mPHz/EWWUDTzXAD/6tENRmjCYCZ90t03VyG4kKPUSUIik Tp6T67U+oz784+GfWsihRuRDungG+sOW09ZOInLUUjAJeO2POKKWQrE8f1JrakYe3IYV T/wBJVKrp2c8LiiMg5BWOtletnbd3OjIBOkGOu8TSriEDHvQcsliMsI0Y+gPmFL/fmnY l7r6xLRLmfkNjeLcH4NXNggVpyO3SWIdhB8RX/uBrKtWyonF16GR3Uat1yndrGEsB6yQ QbE9aucSPGz1jBJ6UGo1By1znTJTtiPmFHqpuxypaXfDkmttIcPJuDYhw9GSiF5rrmqO 8sxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ykl24436SaU3yo8134eJXPByhNLIxnoisxRIQCMfPNU=; b=0cryUO3OS3QHePKZUadu49Mrz4ZxCERLUxNu5D1+yCCPYcU7iJDbnnqr9dWL+gXyMM dRMShcM/yOsP7d2eO1pogo49XqLlewc+a2f6z+d7gehOS60CC/brOaOtBeQtfVnGXmiv WSM+Yatdii5JIQeHusMvlyrcnb67n/PsToOiYMDzblWZogjpQa64gW1l3BmJo1/0L484 o/cL12cUnD82did5cfJBDR/umQxMa46Ujevy6XQAQH613ZxdJpyF40sa3R1UhL5hlYgb FNNQdK9gNTbta99nuduz4oatPGBleUV7tjAbRonQOQQ8JCV9/fe4LcVFkW8HQ4QlH7GF m7MQ== X-Gm-Message-State: AOAM533R0cS7QYbW4ceUI9eeEEe1OVNsOEMSJJBjomckna42T11vICVt RQjDeytDNS4v9QVVrQUGDPpwVXG0ahKjbieLtOjncQ== X-Received: by 2002:ab0:7308:0:b0:35f:acfb:c011 with SMTP id v8-20020ab07308000000b0035facfbc011mr10636031uao.51.1651182962546; Thu, 28 Apr 2022 14:56:02 -0700 (PDT) MIME-Version: 1.0 References: <20220427195820.1716975-1-pcc@google.com> <20220427195820.1716975-2-pcc@google.com> <20220427132738.fdca02736b5d067c92185c5b@linux-foundation.org> In-Reply-To: <20220427132738.fdca02736b5d067c92185c5b@linux-foundation.org> From: Peter Collingbourne Date: Thu, 28 Apr 2022 14:55:51 -0700 Message-ID: Subject: Re: [PATCH v5 2/2] mm: make minimum slab alignment a runtime property To: Andrew Morton Cc: Andrey Konovalov , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Catalin Marinas , Linux ARM , Linux Memory Management List , Linux Kernel Mailing List , Vlastimil Babka , Pekka Enberg , roman.gushchin@linux.dev, Joonsoo Kim , David Rientjes , Herbert Xu , Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , kasan-dev , Eric Biederman , Kees Cook Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 27, 2022 at 1:27 PM Andrew Morton wrote: > > On Wed, 27 Apr 2022 12:58:20 -0700 Peter Collingbourne wrote: > > > When CONFIG_KASAN_HW_TAGS is enabled we currently increase the minimum > > slab alignment to 16. This happens even if MTE is not supported in > > hardware or disabled via kasan=off, which creates an unnecessary > > memory overhead in those cases. Eliminate this overhead by making > > the minimum slab alignment a runtime property and only aligning to > > 16 if KASAN is enabled at runtime. > > > > On a DragonBoard 845c (non-MTE hardware) with a kernel built with > > CONFIG_KASAN_HW_TAGS, waiting for quiescence after a full Android > > boot I see the following Slab measurements in /proc/meminfo (median > > of 3 reboots): > > > > ... > > > > --- a/mm/slab.c > > +++ b/mm/slab.c > > @@ -3009,10 +3009,9 @@ static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep, > > objp += obj_offset(cachep); > > if (cachep->ctor && cachep->flags & SLAB_POISON) > > cachep->ctor(objp); > > - if (ARCH_SLAB_MINALIGN && > > - ((unsigned long)objp & (ARCH_SLAB_MINALIGN-1))) { > > - pr_err("0x%px: not aligned to ARCH_SLAB_MINALIGN=%d\n", > > - objp, (int)ARCH_SLAB_MINALIGN); > > + if ((unsigned long)objp & (arch_slab_minalign() - 1)) { > > + pr_err("0x%px: not aligned to arch_slab_minalign()=%d\n", objp, > > + (int)arch_slab_minalign()); > > printf/printk know about size_t. Use %zu, no cast needed. But... > > > } > > return objp; > > } > > diff --git a/mm/slab_common.c b/mm/slab_common.c > > index 2b3206a2c3b5..33cc49810a54 100644 > > --- a/mm/slab_common.c > > +++ b/mm/slab_common.c > > @@ -154,8 +154,7 @@ static unsigned int calculate_alignment(slab_flags_t flags, > > align = max(align, ralign); > > } > > > > - if (align < ARCH_SLAB_MINALIGN) > > - align = ARCH_SLAB_MINALIGN; > > + align = max_t(size_t, align, arch_slab_minalign()); > > max_t/min_t are nature's way of telling us "you screwed up the types". > > So what type _is_ slab alignment? size_t seems sensible, but the code > prefers unsigned int. So how about we stick with that? > > > This compiles. Still some max_t's in slob.c because I was too lazy to > go fix the type of ARCH_KMALLOC_MINALIGN. > > Shrug, I don't know if we can be bothered. You decide :) Hi Andrew, No strong opinions here. I'm happy with the fixup that you added to your tree on top of my patch. Peter