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 6BAC7C61DA4 for ; Thu, 16 Feb 2023 20:05:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A6576B0071; Thu, 16 Feb 2023 15:05:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0564F6B0072; Thu, 16 Feb 2023 15:05:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E60376B0073; Thu, 16 Feb 2023 15:05:02 -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 D644C6B0071 for ; Thu, 16 Feb 2023 15:05:02 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A45EA4077E for ; Thu, 16 Feb 2023 20:05:02 +0000 (UTC) X-FDA: 80474233644.19.97743A2 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) by imf29.hostedemail.com (Postfix) with ESMTP id 0737712001A for ; Thu, 16 Feb 2023 20:05:00 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b="IO7Z/ogd"; spf=pass (imf29.hostedemail.com: domain of pcc@google.com designates 209.85.166.48 as permitted sender) smtp.mailfrom=pcc@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=1676577901; 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=ZXLBzcq5UslgJ00UvUCCU57RnpwIblDHU0uzHLJsyPE=; b=lUs6/BK55R6T0+wHL0xxH1qkJV4Svhj8MgOBowOSBEHyw6kOJ2G6iiRe6tl8mb9oFrX/Vu sKJfNoythnTsbbrtfa0Due+8eChqmsDLcifrDMT8Y+QaxwNLLgjU3pt2ticcRW9DbllIM+ OsSSZyPug2aK75+DF4UN8NllW/N0LLo= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b="IO7Z/ogd"; spf=pass (imf29.hostedemail.com: domain of pcc@google.com designates 209.85.166.48 as permitted sender) smtp.mailfrom=pcc@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676577901; a=rsa-sha256; cv=none; b=7B7pTsND5FgEarNGm8OQHqNMxBJkRh00SEiW7SFf3TIZpoBcWA0NixH/+IuRPMn2B/5QHW hI3If7RNKnCCD1JzCtVVOVTxC7i0RGPA6IwrzPFWeO9MkfzuELvtttXAu1AzF6836wKhOw or1mxX0pFyErE1fEeIfNFx+KV3Z0PyE= Received: by mail-io1-f48.google.com with SMTP id y2so1116419iot.4 for ; Thu, 16 Feb 2023 12:05:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.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=ZXLBzcq5UslgJ00UvUCCU57RnpwIblDHU0uzHLJsyPE=; b=IO7Z/ogdAHlgvj8fIhLgRN9igcWv4R6KSzULjB3hcBvWiu6q8qaLhjGcK/2DMtTY7r W7YN3gnhgiq0dHkjoehWamss4vEWsJDxSjywEHsK3oy+ecYU6C5EwFrTXs7S+j+E3ARH Na0AsPteTUsMvT41i1E9ojhjyA40LW/9l4g76yRVo3vQDkbt+TMmmdfQiacINx+ymKbT 216dG0dypoFDmXgqFkt517FOAiF8XG35ClPVWH566HlUmtt4Io7emp1A1OpcdOWMCPJM zrwkfI4sMIOinDJaqaEW3FkBiLtqkm4PSDtlIGyx9rFPNGm30ddrgDrZjzh+49y/JjtQ UcCw== 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=ZXLBzcq5UslgJ00UvUCCU57RnpwIblDHU0uzHLJsyPE=; b=04eur2FVhKXMpAHmvR3yQNgPCuvtSBwtnZobU8u/E2tIbvj2jUSwv5YU5rlMpKq4eR RdQqsJNea1mpXNxT2frMuufdymrtlua+qADmKGSHIdnLqrduQQlGGA6p/v/nM0gBk4vg l4aSQCo5zB7nX4VrtUVBuwYTt0T8DgdD8sLR+9hot+Le8wRkcRYLLbDS5+kig8QZrlT6 dDE9SerBM413dWHJwTaTCAYEXUNcV2NeBQOqmx30aWiKrhq7QN5bDri6wvYxFgwc7uRU mf0SOI6F8IrFqOZsjNyYV+NmCHk6emxbajLhk7QBRqzMmQLW+eNPZWWyB0tQ+gAol0dY FcMA== X-Gm-Message-State: AO0yUKV8s2z4TxlVtqP4cmJu8zn+yZ5LzPgDDbBIuf1zlhoimVJryC52 yM5dPhJ2bTqvHMYP9G+1k3e6WJT5W8BxoJ57WKexpQ== X-Google-Smtp-Source: AK7set/nMkU6eiSDG5rr1hlmI0tRtsQrp3tpPmbciksll66AUkYv6fsyPgohERx3sKtxaw2EXWO2kqZxdDbaGRIfFwg= X-Received: by 2002:a5e:dd0b:0:b0:713:f12d:40ba with SMTP id t11-20020a5edd0b000000b00713f12d40bamr2021885iop.72.1676577899906; Thu, 16 Feb 2023 12:04:59 -0800 (PST) MIME-Version: 1.0 References: <20230216064726.2724268-1-pcc@google.com> In-Reply-To: From: Peter Collingbourne Date: Thu, 16 Feb 2023 12:04:48 -0800 Message-ID: Subject: Re: [PATCH] kasan: call clear_page with a match-all tag instead of changing page tag To: Catalin Marinas Cc: andreyknvl@gmail.com, linux-mm@kvack.org, kasan-dev@googlegroups.com, ryabinin.a.a@gmail.com, linux-arm-kernel@lists.infradead.org, vincenzo.frascino@arm.com, will@kernel.org, eugenis@google.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 0737712001A X-Stat-Signature: 6bf5q9yi7af9ehkoe76ypu9bxew6fz7s X-Rspam-User: X-HE-Tag: 1676577900-563045 X-HE-Meta: U2FsdGVkX188TyYmuXjB/UqkzSD2IXgjr5AzvX8RS5N18eniWv7Ds7+Ot10Z6GmVx20uE2mkTXvV7d4/xPQwoQFSoT1ieCS8GW/NMBCQAVHzYgReuX6ay4EnYAx6YJJW97YojX8HLNjVN0JLeq+NMyutBihYffHm9rOeBjOgQSPruZDJ9QYbnsnCCqabl/k++kHNnX1PRffeea36jgRxZg5UbAYalR6hdhu3N/uLBrM3WgcDgqK3hKfnV0X+WIuOWVzS6No3uVAVpErTJhAO1rEi7xpUDvp0fk1XPW7M95GzCUqJ/iE0QZ+n6/b5WCbkg3GrT26NGqqBHFDXlLCSXuwHj50BWFOviuW9vYCJ4zlmXGIF/75kEBhnQTcNDEBEGnT9TFOZ+wkAupfekTDTtNRWz+4ltNNdT682jCE4+sTix10xcYOD/8rpR1ORAX2CLk7h5H78sBvs0tCgKwRuozvcUWmx/X2tZHQTCnuQqNtiF7f8tUAkvqdzyj+8WYG4cKtDXHCSCDwETfwbu5oMYBcmg6G1v8qSuLbx4kfPHHhwKA21HFfAg502XqClqAYv26+dvEnSJ1rS+MLlSK8kdOQXBxT6+mGLw7NPCsffsJM08kzfZjVGiBX9sxrbM3ARZtUzK3hrYGVD3LL62v1er1LS+Z+tXKIjgdOpRUSigGHvWlJPP1EpGOGg087qz8TgpIOs9WzzRJRNocfvXtKbGyWwGSkk+/ciLXJpfWkEHmYyr9UEfUm7wYobJizjIofXIX/InTOZ3+pxUboZmplWtv4K10A6r/D4vR9oYRdGe1RCQfaWr32kTqLfLcoPKm78Sa4QBjbwY/tPYDdGLHK6XeqnRbmQeIjoZpAlN3qY4CzE53gTv4iN633VWrOuvgPQjcdfhHT6hy5hl5ncp0kuervekZsfurt1fuqMJpIwmkzmte+XU73XltYXPWO6Ou5bITmcaggBIrFOYn6bXqS WV7ScZ95 ZP3b7raX4EFZTnhKSzaWgMoqwld9i5iM1hRqhX9O2XT5L8mucFVmCcc+K065NlspraooVb/khWBY1K2iDFAri4xkVwAX08Zr+K1dbU7J9cp98xpC9xpr+OLDi6BtiQP6elJYhFc6alwx7KaKO4nPXChspw5v//bM+7jCWdG5Lg0LDdDEP65bGAmd+gF2PsqDcUUrOFcLza5YTKBSm27rrYUeS4sUmxHga2e1sacnjywJ/HJXYeQGbjGoWDSWCgFY7aKpgRZz8gloTcCQEHjpIsyMrnpCIgPe1tEgjrIaFy3LwxugX5w4ioF8afwMeZn2ry7v3pYSNacBji7juGbu5A8RK8qxmkT76cAVtbU8KEX9f0+rC+5Ya1+2YgbX4BKvz5sgrUIQamIEsMwnDSrgZdK40jQ6K0GSPUywkBBeZ3IK6ScISZdiXa1cfnaheOJpLP7DOuxANr4fN0v/zB2wHve5lPC9Jplu/qUhjrr98Pr8iRlUBwgMgmuRsFA== 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 Thu, Feb 16, 2023 at 6:27 AM Catalin Marinas wrote: > > On Wed, Feb 15, 2023 at 10:47:26PM -0800, Peter Collingbourne wrote: > > Instead of changing the page's tag solely in order to obtain a pointer > > with a match-all tag and then changing it back again, just convert the > > pointer that we get from kmap_atomic() into one with a match-all tag > > before passing it to clear_page(). > > > > On a certain microarchitecture, this has been observed to cause a > > measurable improvement in microbenchmark performance, presumably as a > > result of being able to avoid the atomic operations on the page tag. > > Yeah, this would likely break the write streaming mode on some ARM CPUs. > > > Signed-off-by: Peter Collingbourne > > Link: https://linux-review.googlesource.com/id/I0249822cc29097ca7a04ad48e8eb14871f80e711 > > --- > > include/linux/highmem.h | 8 +++----- > > 1 file changed, 3 insertions(+), 5 deletions(-) > > > > diff --git a/include/linux/highmem.h b/include/linux/highmem.h > > index 44242268f53b..bbfa546dd602 100644 > > --- a/include/linux/highmem.h > > +++ b/include/linux/highmem.h > > @@ -245,12 +245,10 @@ static inline void clear_highpage(struct page *page) > > > > static inline void clear_highpage_kasan_tagged(struct page *page) > > { > > - u8 tag; > > + void *kaddr = kmap_atomic(page); > > > > - tag = page_kasan_tag(page); > > - page_kasan_tag_reset(page); > > - clear_highpage(page); > > - page_kasan_tag_set(page, tag); > > + clear_page(kasan_reset_tag(kaddr)); > > + kunmap_atomic(kaddr); > > } > > Please don't add kmap_atomic() back. See commit d2c20e51e396 > ("mm/highmem: remove deprecated kmap_atomic"). I'd duplicate the > clear_highpage() logic in here and call clear_page() directly on the > address with the kasan tag reset. Right, that's how I originally developed this patch. As you might have guessed, I was developing against a stable kernel, so I was copying the old version of clear_highpage(). Done in v2. Peter