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 X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C06CC43381 for ; Mon, 4 Mar 2019 11:56:26 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6B58E2070B for ; Mon, 4 Mar 2019 11:56:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="NkNB6cZQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6B58E2070B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fRvnQB1t3ErgAuOUglJi8WqpBOr2xcpPVla+UfUlAHg=; b=NkNB6cZQqHfhS/ TEzg7inHkBGjeAxRQyJoOB3CETJAwE6H3yVwNcJQAOT/+KIVtKHjygcF1Zhuy+hru8jginuwA0MV4 v/LGll2tiaePn6vYh7AQtV8yp413J3niXpqjcxjvilXuB48z7jV4L1wNwTmQiW3bn+5dwtF0Rsz2T Zyd6bY+Mj0dBEqyqO3M+Mxc93xtWK83JUnkV0Tn7s7LIeJ+IQ5wqQ0Fvi5vMy0mrp/sLjW6XuQT1R 2PtazJD1tK1cq8ZQxHPYWvmEpyhFf81sDx7VEgEYBAUoccTnKVC4ozxWNYeQSpQPd7iWs7d5nsoKE BHfVtnt7W9l0x5C6KZcQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h0mCn-0003n7-I9; Mon, 04 Mar 2019 11:56:25 +0000 Received: from foss.arm.com ([217.140.101.70]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h0mCj-0003md-Ow for linux-arm-kernel@lists.infradead.org; Mon, 04 Mar 2019 11:56:23 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DE573A78; Mon, 4 Mar 2019 03:56:18 -0800 (PST) Received: from [10.1.196.69] (e112269-lin.cambridge.arm.com [10.1.196.69]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9426E3F703; Mon, 4 Mar 2019 03:56:15 -0800 (PST) Subject: Re: [PATCH v3 03/34] arm: mm: Add p?d_large() definitions To: "Kirill A. Shutemov" References: <20190227170608.27963-1-steven.price@arm.com> <20190227170608.27963-4-steven.price@arm.com> <20190301214715.hyzy5tevvwgki4w5@kshutemo-mobl1> From: Steven Price Message-ID: <974310a0-0114-9a0c-9041-4e0394c4b9aa@arm.com> Date: Mon, 4 Mar 2019 11:56:13 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 MIME-Version: 1.0 In-Reply-To: <20190301214715.hyzy5tevvwgki4w5@kshutemo-mobl1> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190304_035621_810258_2E3FCE6E X-CRM114-Status: GOOD ( 14.74 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Dave Hansen , Arnd Bergmann , Ard Biesheuvel , Peter Zijlstra , Catalin Marinas , x86@kernel.org, Will Deacon , linux-kernel@vger.kernel.org, Russell King , linux-mm@kvack.org, =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Ingo Molnar , Borislav Petkov , Andy Lutomirski , "H. Peter Anvin" , James Morse , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, "Liang, Kan" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 01/03/2019 21:47, Kirill A. Shutemov wrote: > On Wed, Feb 27, 2019 at 05:05:37PM +0000, Steven Price wrote: >> walk_page_range() is going to be allowed to walk page tables other than >> those of user space. For this it needs to know when it has reached a >> 'leaf' entry in the page tables. This information will be provided by the >> p?d_large() functions/macros. >> >> For arm, we already provide most p?d_large() macros. Add a stub for PUD >> as we don't have huge pages at that level. > > We do not have PUD for 2- and 3-level paging. Macros from generic header > should cover it, shouldn't it? > I'm not sure of the reasoning behind this, but levels are folded in a slightly strange way. arm/include/asm/pgtable.h defines __ARCH_USE_5LEVEL_HACK which means: PGD has 2048 (2-level) or 4 (3-level) entries which are always considered 'present' (pgd_present() returns 1 defined in asm-generic/pgtables-nop4d-hack.h). P4D has 1 entry which is always present (see asm-generic/5level-fixup.h) PUD has 1 entry (see asm-generic/pgtable-nop4d-hack.h). This is always present for 2-level, and present only if the first level of real page table is present with a 3-level. PMD/PTE are as you might expect. So in terms of tables which are more than one entry you have PGD, (optionally) PMD, PTE. But the levels which actually read the table entries are PUD, PMD, PTE. This means that the corresponding p?d_large() macros are needed for PUD/PMD as that is where the actual entries are read. The asm-generic files provide the definitions for PGD/P4D. Steve _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel