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 8F3D7C4332F for ; Mon, 19 Dec 2022 18:09:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AD8DB8E0002; Mon, 19 Dec 2022 13:09:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A62518E0001; Mon, 19 Dec 2022 13:09:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 903038E0002; Mon, 19 Dec 2022 13:09:14 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 7DC858E0001 for ; Mon, 19 Dec 2022 13:09:14 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 54E1D160AB8 for ; Mon, 19 Dec 2022 18:09:14 +0000 (UTC) X-FDA: 80259842628.25.2A53D76 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf02.hostedemail.com (Postfix) with ESMTP id A87CD8000C for ; Mon, 19 Dec 2022 18:09:11 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=pTBv6akZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1671473351; 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=ztWy+TAPu9znv9bYACdxKCT9vj/i9mvgkta/yxexP28=; b=7ZkElU/IkjQx5/MldriOL/vjAW1cmZGASAiSO8edwM1+1zrxOItD1OOWbAIReEx4j34I29 GODvdeXJfF0cL966aiveM/HCaGICQawdHew9A6VlzymUUkTtqPeFAhBg8P9e/OuXMtLgyx HgFI7lfGCoXAdpsbIhRnZgHQQu1MIAU= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=pTBv6akZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1671473351; a=rsa-sha256; cv=none; b=wEB/otF5TIQPEZzTjaSRuIFxbeYcjOMX55c/MUCDdkSCY6z5fRRaKesnjudL/ds8RmEs1d kascv1GOOOKlpXhW3/mYzq3XFhY2Gxu2DB2thksVqzuzGAr0+9RzHxxNd0MxmVOH3FCMtj oGOa1bqnEMEgPmvMtK5z/FytuAWrw1Y= Received: by mail-pl1-f178.google.com with SMTP id a9so9798288pld.7 for ; Mon, 19 Dec 2022 10:09:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ztWy+TAPu9znv9bYACdxKCT9vj/i9mvgkta/yxexP28=; b=pTBv6akZvvEU1KmR3lTWhi+3A6mHZkvtA62TE2AcTstOKYU539wAchOHfy+v0SUEW+ xkdTxAdg77XkUds2vPLSpBzAMec6QUPSulmLZ2PCWk6bsm6vG8ErJOBw3WUAhqyaivc6 wTIvKONQgxbq8IjgeSjQPqkvQLwGIzYMLd6sHX5MoqrHiEKa9epN647F9AIB3j7gx5gy jxmBQIsfWDS5rsZPN/Noso9S7m/C2WZ5RNigSXo75/VzeCKprIlpeEukGnnXKkxPEhJk 8nScmGo2qiFBbbNaD8Y6R1OuHI5TUPKzxJhdRai8BtOr0MUkRoyC6IUC0b+oMo5S4nPi aUVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=ztWy+TAPu9znv9bYACdxKCT9vj/i9mvgkta/yxexP28=; b=4yRJZSWoZeWaV8j7PTdoIr4AY7mlmdXXSghE0PPLYSeWtlGLuOlVW8thInjcIQp9uE +8AQ6GsWRdJRBwQNl5WoBorQ2N2f592upSQjJRF1SJe/BSI4ne90vypY1EwBgM9YIolT dPBYi9YCESsmkFyI0bkASaartnMupTnZeb7RSEHBM++a7DAiCF6pgyZAc1Z/EPJaCsvJ UQw9kHMWI0vFgH8dJfA3fwEV4meQ5BEcRwelIYddofPi+VFuIZNnG3gSuTayt9YMsbpT vMuxMgq2nMklSFqS2kfMBCxaCjigIHhU/Bo1yPJQpK1lIlVq3/gV/pjSszJYkcylyfDR Q+Dg== X-Gm-Message-State: AFqh2kp6bILpixGAItlSFdwktA2qlyQZyXnCliWB9gFU+SuHWiXV8Ifg U+qg15jkUs0VBact28FFbFLr+GsG3xD5ao3udtc= X-Google-Smtp-Source: AMrXdXvnwoXDbWnLBN4wjnak905mp6IsVC8S3WaMyH0j8Tg3tbWWQmwGY1flD9NHdsYH9sYm8l1xG+FrULQs/pdy0BY= X-Received: by 2002:a17:90a:fb83:b0:219:932c:febe with SMTP id cp3-20020a17090afb8300b00219932cfebemr1875071pjb.47.1671473350453; Mon, 19 Dec 2022 10:09:10 -0800 (PST) MIME-Version: 1.0 References: <323d51d422d497b3783dacb130af245f67d77671.1671228324.git.andreyknvl@google.com> In-Reply-To: From: Andrey Konovalov Date: Mon, 19 Dec 2022 19:08:59 +0100 Message-ID: Subject: Re: [PATCH v3] kasan: allow sampling page_alloc allocations for HW_TAGS To: Marco Elver Cc: andrey.konovalov@linux.dev, Andrew Morton , Alexander Potapenko , Dmitry Vyukov , Andrey Ryabinin , kasan-dev@googlegroups.com, Peter Collingbourne , Evgenii Stepanov , Florian Mayer , Jann Horn , Mark Brand , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: A87CD8000C X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 65j9jdsyx7o7yxc96bk7rq4ujayoh4i3 X-HE-Tag: 1671473351-965121 X-HE-Meta: U2FsdGVkX19ibbUQBxKaY/WM111NVeJFML3POtkSVh3OyspePnNVyRRYw/kIWnpzs0XdrWq0BWob2E7Anlah7+9LXoRCB6Oxi3tM5HyrJclO/LSsnfxZ1FIQ47k596Yx4msRK66E493YvfAIrDRQoSejHvmNPHd5iG8JOAk6i8+ERTYyleksl49CwQe0C9Rj/w/felaIk1uAIRTf6psEYTZfi5rHwUoAWsglC5PXidKjssrorpicR6wfPhjk1gEb1UoplDHYDKwhbqTD/nlwCYM0ITAfZ5bIzCJ1EmMQiUrK/WM780xscUJQrXQRdraL+4cWMeY01KudyZExyTeKoDaIv54lzHJ/QEqCwNI8r1Y6xn+395TW+hZQqzS0jnLOoa8TFVUSqP//tqPmGgT5Jo/8FHJvRG0Jv9SLn6TiwnhNy0nLXpNgrb7QsRgB7MfiJ5ZXXNStBsClsEA7pkGhfzqmPj1RWDNHhq/BpXtYqT5yjGEnmWUld+lXQnE1icXb2jZI5yTIBZ/e0y1V6ziQ4uZSMzOdLIBTqGyOiWR5GfDKpXDHJHfNJmCk+tHEjMBxc5E0dxk14MsqpngxPaq/GRlT528PPaHY17PMGGRdm5/7JfGEf28PvpB29A3tESGDpOcEbxuTS2nJ+FAitta21cvzfhCkqNcaUurxkRGNMd5usqRzCPqzA4C/SUKWX9nk2F417V46IvGzKbiAgYhlRCXEdvXbUaWCwKCZku3b7iGT1m2PwsQDx95/efsve5WXI89JVYQq0RhCiZtuYlN8d4vhG4TMQth3he/ju0NKPmV9CWqZL38RPbW46vfWIS661YBdsrO1WI27yi1BBdgRiIQw//TU+UTiGMViBnitf90NTQiznxI57SJvXb+YrwrzzaGeVcBXFx5EvsOifSR0zUJMcz5jhY+VQoJK/iFgBvALwGA+vi03Sgi7+UEitDIENJ7NN/Lzx2ySv76tn6/ 2oFgPErI r3ny2fC6sxV4f+Un4X+0r8FQzY0sxb9tLOaO60porf0jEyp9qLZ06U7QqewbKqjcyu26yo4NfRP0P7zci99MnVrOMubXAP144IpMsPZxXtlW1+nQTzqUb8Fceuks8GTmMjEg5fD0THfI1JH4LaxD9bKccK7efyVCM31b2rMvpQF0XLT0= 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, Dec 19, 2022 at 12:31 PM Marco Elver wrote: > > On a whole: > > Reviewed-by: Marco Elver > > This looks much better, given it'll automatically do the right thing > without marking costly allocation sites. Agreed, thank you for the suggestion! > > +- ``kasan.page_alloc.sample.order=`` specifies the minimum > > + order of allocations that are affected by sampling (default: ``3``). > > + Only applies when ``kasan.page_alloc.sample`` is set to a non-default value. > > "set to a value greater than 1"? The additional indirection through > "non-default" seems unnecessary. Will fix in v4. > > + This parameter is intended to allow sampling only large page_alloc > > + allocations, which is the biggest source of the performace overhead. > > s/performace/performance/ Will fix in v4. > > --- a/mm/kasan/hw_tags.c > > +++ b/mm/kasan/hw_tags.c > > @@ -59,6 +59,24 @@ EXPORT_SYMBOL_GPL(kasan_mode); > > /* Whether to enable vmalloc tagging. */ > > DEFINE_STATIC_KEY_TRUE(kasan_flag_vmalloc); > > > > +#define PAGE_ALLOC_SAMPLE_DEFAULT 1 > > +#define PAGE_ALLOC_SAMPLE_ORDER_DEFAULT 3 > > Why not just set it to PAGE_ALLOC_COSTLY_ORDER? I've been thinking about this, but technically PAGE_ALLOC_COSTLY_ORDER is related to allocations that are costly to service due to fragmentation/reclaim-related issues. We also don't rely on PAGE_ALLOC_COSTLY_ORDER only, but also on SKB_FRAG_PAGE_ORDER. (I guess some clean-up is possible wrt these constants: I suspect both have the same value for the same reason. But I don't want to attempt it with this patch. ) We could add a BUILD_BUG_ON that makes sure that all 3 constants are the same. But then the only thing to do if one of them is changed is to remove the BUG_ON, which doesn't seem very useful. I'll leave the current implementation in v4. Thank you, Marco!