Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751964AbdCHKLB (ORCPT ); Wed, 8 Mar 2017 05:11:01 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48648 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750728AbdCHKK6 (ORCPT ); Wed, 8 Mar 2017 05:10:58 -0500 Date: Wed, 8 Mar 2017 17:45:05 +0800 From: Baoquan He To: Bhupesh Sharma Cc: Dave Young , linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, thgarnie@google.com, Kees Cook , Thomas Gleixner , mingo@redhat.com, hpa@zytor.com, x86@kernel.org, akpm@linux-foundation.org, bp@suse.de Subject: Re: [PATCH 1/2] x86/efi: Correct a tiny mistake in code comment Message-ID: <20170308094505.GC6570@x1> References: <1488959258-4731-1-git-send-email-bhe@redhat.com> <20170308081812.GA12600@dhcp-128-65.nay.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.7.0 (2016-08-17) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 08 Mar 2017 09:45:09 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1820 Lines: 44 On 03/08/17 at 02:30pm, Bhupesh Sharma wrote: > Hi Dave, > > On Wed, Mar 8, 2017 at 1:48 PM, Dave Young wrote: > > On 03/08/17 at 03:47pm, Baoquan He wrote: > >> - * We allocate runtime services regions bottom-up, starting from -4G, i.e. > >> + * We allocate runtime services regions top-down, starting from -4G, i.e. > > > > Baoquan, I think original bottom-up is right, it is just considering > > -68G as up, see the x86_64 mm.txt. We regard vmalloc as higher address > > although from mathematics view it is lower then positive addresses. > > I think you have a valid point, but I think the -4G convention is > probably too confusing to read and may lead to issues when we use this > for future feature addition as well. It would be more useful to use > the macros similar to the MODULES_{} addresses we use currently in > 'arch/x86/include/asm/pgtable_64_types.h': > > #define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE) > #define MODULES_END _AC(0xffffffffff000000, UL) > #define MODULES_LEN (MODULES_END - MODULES_VADDR) > > May be we can use the following convention for the EFI_VA_{} addresses > as per 'http://lxr.free-electrons.com/source/Documentation/x86/x86_64/mm.txt#L19': > > #define EFI_VA_START _AC(0xfffffffeffffffff, UL) > #define EFI_VA_END _AC(0xffffffef00000000, UL) Isn't it like this: #define EFI_VA_START _AC(0xffffffff00000000, UL) #define EFI_VA_END _AC(0xffffffef00000000, UL) Just make them be equal to value which computer stores -4G and -68G? You can see in arch/x86/platform/efi/efi_64.c, it's using efi_va minus size directly, here size should be 4K, page aligned. efi_va -= size; Above formula has considered the open interval attribute of EFI_VA_START. Making EFI_VA_START be 0xfffffffeffffffff could be wrong. Right?