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 67F03C43217 for ; Thu, 24 Nov 2022 14:08:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B36FD6B0072; Thu, 24 Nov 2022 09:08:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AE6FA6B0073; Thu, 24 Nov 2022 09:08:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D5EA6B0074; Thu, 24 Nov 2022 09:08:55 -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 8E4D66B0072 for ; Thu, 24 Nov 2022 09:08:55 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5CD2E12126A for ; Thu, 24 Nov 2022 14:08:55 +0000 (UTC) X-FDA: 80168517030.28.1095CEA Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by imf16.hostedemail.com (Postfix) with ESMTP id 06C82180013 for ; Thu, 24 Nov 2022 14:08:53 +0000 (UTC) Received: by mail-qk1-f180.google.com with SMTP id k4so1023652qkj.8 for ; Thu, 24 Nov 2022 06:08:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding: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=VObI5tLBfN6ga4cHicIqOhPYeWo9pWJ78AZx786RS9g=; b=YqIr49S94mMgQTwhtARwbzYcschuMQ8dQPsqT40tGU0GE7bwl2/5pWtFSeArwFmo5U nz34OL1XqLYr0d9fh1o4MT7KaX56+4VbMPRRG8C6uJjI3T5aEI5hLuT0YCTjhpaG3wqY Lmu2OyqmcC33hzH3Vm4CnEpLOtWFxi4FB/4pHkkmVBKtRUi7W4U5iS/VxfwEFLUuMCB/ pJKQqeU0XgNIcPaD6JlKxFOyO/vPXhgoStax2cVv5Wuhi7QAgjGBmT+fcmGRZ0t9uTQg P1LdRXWAAhhe4QnLQ38CcOPXylMCPXiLskxVIQqvXMUpVGknqwqtC6Q1I5fDDgRVCHOJ wweA== X-Gm-Message-State: ANoB5pmLMpDZCRuK1dpM95ZzJ2atPKbpdw5SVYUf1wuOZ+9s4eUeiAq+ Za4p3oDReSfrjVufywnqInh7pdXLG+xZ7w== X-Google-Smtp-Source: AA0mqf4/l4UGzQ82vaoDXIUaONF3rVXjgsARlykSPrJEvV8IYiCQdcdpNdoywCCXpxxkGsIXty/Qcw== X-Received: by 2002:ae9:e889:0:b0:6fc:4999:4968 with SMTP id a131-20020ae9e889000000b006fc49994968mr857338qkg.216.1669298933001; Thu, 24 Nov 2022 06:08:53 -0800 (PST) Received: from mail-yw1-f173.google.com (mail-yw1-f173.google.com. [209.85.128.173]) by smtp.gmail.com with ESMTPSA id q5-20020ae9dc05000000b006fa7b5ea2d1sm864453qkf.125.2022.11.24.06.08.50 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 24 Nov 2022 06:08:51 -0800 (PST) Received: by mail-yw1-f173.google.com with SMTP id 00721157ae682-3b48b139b46so16454917b3.12 for ; Thu, 24 Nov 2022 06:08:50 -0800 (PST) X-Received: by 2002:a0d:dc87:0:b0:370:61f5:b19e with SMTP id f129-20020a0ddc87000000b0037061f5b19emr30399460ywe.316.1669298930583; Thu, 24 Nov 2022 06:08:50 -0800 (PST) MIME-Version: 1.0 References: <20221123064510.16225-1-jgross@suse.com> In-Reply-To: <20221123064510.16225-1-jgross@suse.com> From: Geert Uytterhoeven Date: Thu, 24 Nov 2022 15:08:39 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] mm: introduce arch_has_hw_nonleaf_pmd_young() To: Juergen Gross Cc: linux-kernel@vger.kernel.org, x86@kernel.org, linux-mm@kvack.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Andrew Morton , Sander Eikelenboom , Yu Zhao Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1669298934; a=rsa-sha256; cv=none; b=o9EbGwgmN/eK4xbQr6Z8E/gJuy1/CLJ5VUIsPCA/5PFhe3KgOMgSBtkHiT8qKNvUAbHUzN Lg1ugupD6xbj6VzokjRboP9nOjKD1agWDWqABknce4c4ShmIdj7LadcIGvYxAzO3TXps2q RaFkt/gWDfcO6hHO9+wKDyFKo5mNKTc= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of geert.uytterhoeven@gmail.com designates 209.85.222.180 as permitted sender) smtp.mailfrom=geert.uytterhoeven@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1669298934; 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; bh=VObI5tLBfN6ga4cHicIqOhPYeWo9pWJ78AZx786RS9g=; b=gxvuaKd0wtASqg74IBWPXKD5yot4lU4HyMkFylzeQDGLz3Jv8BmlaQgf/xHamR6OdWl1fC fs+kiBbxV5d3NAqLR39xgt6SxbdcvfecFLSw2y25yjIO+n3fok26NWrt744Vgj52EeNmS3 GcbTyfPNzI70lKly74jM/bNe4/rtwgI= X-Rspamd-Queue-Id: 06C82180013 X-Stat-Signature: foiwjgbppsacjqx9ick7eqt4759fxzxa X-Rspam-User: Authentication-Results: imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of geert.uytterhoeven@gmail.com designates 209.85.222.180 as permitted sender) smtp.mailfrom=geert.uytterhoeven@gmail.com X-Rspamd-Server: rspam09 X-HE-Tag: 1669298933-347258 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: Hi J=C3=BCrgen, On Wed, Nov 23, 2022 at 7:53 AM Juergen Gross wrote: > When running as a Xen PV guests commit eed9a328aa1a ("mm: x86: add > CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG") can cause a protection violation > in pmdp_test_and_clear_young(): > > BUG: unable to handle page fault for address: ffff8880083374d0 > #PF: supervisor write access in kernel mode > #PF: error_code(0x0003) - permissions violation > PGD 3026067 P4D 3026067 PUD 3027067 PMD 7fee5067 PTE 8010000008337065 > Oops: 0003 [#1] PREEMPT SMP NOPTI > CPU: 7 PID: 158 Comm: kswapd0 Not tainted 6.1.0-rc5-20221118-doflr+ #1 > RIP: e030:pmdp_test_and_clear_young+0x25/0x40 > > This happens because the Xen hypervisor can't emulate direct writes to > page table entries other than PTEs. > > This can easily be fixed by introducing arch_has_hw_nonleaf_pmd_young() > similar to arch_has_hw_pte_young() and test that instead of > CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG. > > Fixes: eed9a328aa1a ("mm: x86: add CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG") > Reported-by: Sander Eikelenboom > Signed-off-by: Juergen Gross > Acked-by: Yu Zhao > Tested-by: Sander Eikelenboom > --- > V2: > - correct function name in commit message to match patch Thanks for your patch, which is now commit 3f85e711d5af4fb4 ("mm: introduce arch_has_hw_nonleaf_pmd_young()") in next-20221124. noreply@ellerman.id.au reported a build failure for m68k/allmodconfig, which I have bisected to this commit. > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -4073,14 +4073,14 @@ static void walk_pmd_range(pud_t *pud, unsigned l= ong start, unsigned long end, > #endif > walk->mm_stats[MM_NONLEAF_TOTAL]++; > > -#ifdef CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG > - if (get_cap(LRU_GEN_NONLEAF_YOUNG)) { > + if (arch_has_hw_nonleaf_pmd_young() && > + get_cap(LRU_GEN_NONLEAF_YOUNG)) { > if (!pmd_young(val)) mm/vmscan.c:4102:30: error: implicit declaration of function 'pmd_young'; did you mean 'pte_young'? [-Werror=3Dimplicit-function-declaration] pmd_young() seems to be defined only on a handful of architectures. > continue; > > walk_pmd_range_locked(pud, addr, vma, args, bitma= p, &pos); > } > -#endif > + > if (!walk->force_scan && !test_bloom_filter(walk->lruvec,= walk->max_seq, pmd + i)) > continue; > Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k= .org In personal conversations with technical people, I call myself a hacker. Bu= t when I'm talking to journalists I just say "programmer" or something like t= hat. -- Linus Torvalds