From: "Magnus Damm" <magnus.damm@gmail.com>
To: vgoyal@in.ibm.com
Cc: "linux kernel mailing list" <linux-kernel@vger.kernel.org>,
"Reloc Kernel List" <fastboot@lists.osdl.org>,
ebiederm@xmission.com, akpm@osdl.org, ak@suse.de, hpa@zytor.com,
lwang@redhat.com, dzickus@redhat.com, pavel@suse.cz, rjw@sisk.pl
Subject: Re: [PATCH 17/20] x86_64: Remove CONFIG_PHYSICAL_START
Date: Mon, 20 Nov 2006 19:02:42 +0900 [thread overview]
Message-ID: <aec7e5c30611200202j77c9e20cgd89ca782ac73e58b@mail.gmail.com> (raw)
In-Reply-To: <20061118024529.GC25205@in.ibm.com>
On 11/18/06, Vivek Goyal <vgoyal@in.ibm.com> wrote:
> On Sat, Nov 18, 2006 at 10:14:31AM +0900, Magnus Damm wrote:
> > On 11/18/06, Vivek Goyal <vgoyal@in.ibm.com> wrote:
> > >I am about to add relocatable kernel support which has essentially
> > >no cost so there is no point in retaining CONFIG_PHYSICAL_START
> > >and retaining CONFIG_PHYSICAL_START makes implementation of and
> > >testing of a relocatable kernel more difficult.
> > >
> > >Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
> > >Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
> > >---
[snip]
>linux-2.6.19-rc6-reloc/arch/x86_64/mm/fault.c~x86_64-Remove-CONFIG_PHYSICAL_START
2006-11-17 00:12:50.000000000 -0500
> > >+++ linux-2.6.19-rc6-reloc-root/arch/x86_64/mm/fault.c 2006-11-17
> > >00:12:50.000000000 -0500
> > >@@ -644,9 +644,9 @@ void vmalloc_sync_all(void)
> > > start = address + PGDIR_SIZE;
> > > }
> > > /* Check that there is no need to do the same for the modules
> > > area. */
> > >- BUILD_BUG_ON(!(MODULES_VADDR > __START_KERNEL));
> > >+ BUILD_BUG_ON(!(MODULES_VADDR > __START_KERNEL_map));
> > > BUILD_BUG_ON(!(((MODULES_END - 1) & PGDIR_MASK) ==
> > >- (__START_KERNEL & PGDIR_MASK)));
> > >+ (__START_KERNEL_map & PGDIR_MASK)));
> > > }
> >
> > This code looks either like a bugfix or a bug. If it's a fix then
> > maybe it should be broken out and submitted separately for the
> > rc-kernels?
> >
>
> Magnus, Eric got rid of __START_KERNEL because he was compiling kernel
> for physical addr zero which made __START_KERNEL and __START_KERNEL_map
> same, hence he got rid of __START_KERNEL. That's why above change.
>
> But compiling for physical address zero has got drawback that one can
> not directly load a vmlinux as it shall have to be loaded at physical
> addr zero. Hence I changed the behavior back to compile the kernel for
> physical addr 2MB. So now __START_KERNEL = __START_KERNEL_map + 2MB.
>
> Now it makes sense to retain __START_KERNEL. I have done the changes.
I misunderstood and thought __START_KERNEL was a physical address and
__START_KERNEL_map was a virtual one. But now I understand. Thank you.
>
> > >diff -puN include/asm-x86_64/page.h~x86_64-Remove-CONFIG_PHYSICAL_START
> > >include/asm-x86_64/page.h
> > >---
> > >linux-2.6.19-rc6-reloc/include/asm-x86_64/page.h~x86_64-Remove-CONFIG_PHYSICAL_START 2006-11-17 00:12:50.000000000 -0500
> > >+++ linux-2.6.19-rc6-reloc-root/include/asm-x86_64/page.h 2006-11-17
> > >00:12:50.000000000 -0500
> > >@@ -75,8 +75,6 @@ typedef struct { unsigned long pgprot; }
> > >
> > > #endif /* !__ASSEMBLY__ */
> > >
> > >-#define __PHYSICAL_START _AC(CONFIG_PHYSICAL_START,UL)
> > >-#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
> > > #define __START_KERNEL_map _AC(0xffffffff80000000,UL)
> > > #define __PAGE_OFFSET _AC(0xffff810000000000,UL)
> >
> > I understand that you want to remove the Kconfig option
> > CONFIG_PHYSICAL_START and that is fine with me. I don't however like
> > the idea of replacing __PHYSICAL_START and __START_KERNEL with
> > hardcoded values. Is there any special reason behind this?
> >
>
> All the hardcodings for 2MB have disappeared in final version. See next
> patch in the series which actually implements relocatable kernel. Actually
> the whole logic itself has changed hence we did not require these
> hardcodings. This patch retains these hardcodings so that even if somebody
> removes the top patch, kernel can be compiled and booted.
>
> So bottom line, all the hardcodings are not present once all the patches
> have been applied.
My gut feeling said a big no when I saw that you replaced constants
with hardcoded values. But if the hardcoded values disappear when all
patches are applied then I'm happy!
> > The code in page.h already has constants for __START_KERNEL_map and
> > __PAGE_OFFSET (thank god) and none of them are adjustable via Kconfig.
> > Why not change as little as possible and keep __PHYSICAL_START and
> > __START_KERNEL in page.h and the places that use them but remove
> > references to CONFIG_PHYSICAL_START in Kconfig, defconfig, and page.h?
>
> Good suggestion. Now I have retained __START_KERNEL. But did not feel
> the need to retain __PHYSICAL_START. It will be used only at one place
> in page.h
Just to nitpick, isn't the 2M value used both in page.h and head.S? I
don't fully understand the reason why you are hardcoding, but it is
not that important. I think this version of the patch is much better.
Thank you!
/ magnus
next prev parent reply other threads:[~2006-11-20 10:02 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-17 22:34 [RFC][PATCH 0/20] x86_64: Relocatable bzImage (V3) Vivek Goyal
2006-11-17 22:36 ` [PATCH 1/20] x86_64: Align data segment to PAGE_SIZE boundary Vivek Goyal
2006-11-17 22:37 ` [PATCH 2/20] x86_64: Assembly safe page.h and pgtable.h Vivek Goyal
2006-11-18 8:49 ` Andi Kleen
2006-11-18 13:19 ` Vivek Goyal
2006-11-17 22:38 ` [PATCH 3/20] x86_64: Kill temp_boot_pmds Vivek Goyal
2006-11-17 22:39 ` [PATCH 4/20] x86_64: Cleanup the early boot page table Vivek Goyal
2006-11-17 22:40 ` [PATCH 5/20] x86_64: Fix early printk to use standard ISA mapping Vivek Goyal
2006-11-17 22:41 ` [PATCH 6/20] x86_64: Modify copy bootdata to use virtual addresses Vivek Goyal
2006-11-17 22:42 ` [PATCH 7/20] x86_64: cleanup segments Vivek Goyal
2006-11-17 22:44 ` [PATCH 8/20] x86_64: Add EFER to the set registers saved by save_processor_state Vivek Goyal
2006-11-18 0:11 ` Pavel Machek
2006-11-17 22:45 ` [PATCH 9/20] x86_64: 64bit PIC SMP trampoline Vivek Goyal
2006-11-18 0:27 ` Pavel Machek
2006-11-18 0:33 ` Vivek Goyal
2006-11-18 0:38 ` Pavel Machek
2006-11-17 22:47 ` [PATCH 10/20] x86_64: wakeup.S Remove dead code Vivek Goyal
2006-11-18 0:14 ` Pavel Machek
2006-11-17 22:48 ` [PATCH 11/20] x86_64: wakeup.S Rename labels to reflect right register names Vivek Goyal
2006-11-18 0:15 ` Pavel Machek
2006-11-17 22:49 ` [PATCH 12/20] x86_64: wakeup.S Misc cleanup Vivek Goyal
2006-11-18 0:19 ` Pavel Machek
2006-11-18 1:25 ` Vivek Goyal
2006-11-17 22:51 ` [PATCH 13/20] x86_64: 64bit PIC ACPI wakeup trampoline Vivek Goyal
2006-11-18 0:20 ` Pavel Machek
2006-11-17 22:52 ` [PATCH 14/20] x86_64: Modify discover_ebda to use virtual address Vivek Goyal
2006-11-17 22:54 ` [PATCH 15/20] x86_64: Remove the identity mapping as early as possible Vivek Goyal
2006-11-17 22:55 ` [PATCH 16/20] x86_64: __pa and __pa_symbol address space separation Vivek Goyal
2006-11-17 22:56 ` [PATCH 17/20] x86_64: Remove CONFIG_PHYSICAL_START Vivek Goyal
2006-11-18 1:14 ` Magnus Damm
2006-11-18 2:45 ` Vivek Goyal
2006-11-20 10:02 ` Magnus Damm [this message]
2006-11-17 22:57 ` [PATCH 18/20] x86_64: Relocatable kernel support Vivek Goyal
2006-11-18 5:49 ` Oleg Verych
2006-11-18 6:49 ` Andi Kleen
2006-11-17 22:58 ` [PATCH 19/20] x86_64: Extend bzImage protocol for relocatable kernel Vivek Goyal
2006-11-18 0:30 ` H. Peter Anvin
2006-11-18 0:37 ` Vivek Goyal
2006-11-18 0:45 ` H. Peter Anvin
2006-11-18 1:47 ` Vivek Goyal
2006-11-17 22:59 ` [PATCH 20/20] x86_64: Move CPU verification code to common file Vivek Goyal
2006-11-18 5:21 ` Oleg Verych
2006-11-18 6:38 ` Andi Kleen
2006-11-18 6:41 ` H. Peter Anvin
[not found] ` <20061118070101.GA14673@flower.upol.cz>
2006-11-18 6:59 ` H. Peter Anvin
2006-11-18 7:22 ` Oleg Verych
2006-11-18 7:32 ` H. Peter Anvin
2006-11-18 8:10 ` reboot, not loop forever (Re: [PATCH 20/20] x86_64: Move CPU verification code to common file) Oleg Verych
2006-11-18 8:06 ` [PATCH 20/20] x86_64: Move CPU verification code to common file Andi Kleen
2006-11-18 8:16 ` H. Peter Anvin
2006-11-18 8:29 ` Andi Kleen
2006-11-18 10:55 ` Paul Mackerras
2006-11-18 10:58 ` Andi Kleen
2006-11-18 12:59 ` Vivek Goyal
2006-11-18 17:46 ` Pavel Machek
2006-11-18 8:52 ` [RFC][PATCH 0/20] x86_64: Relocatable bzImage (V3) Andi Kleen
2006-11-18 13:14 ` Vivek Goyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aec7e5c30611200202j77c9e20cgd89ca782ac73e58b@mail.gmail.com \
--to=magnus.damm@gmail.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=dzickus@redhat.com \
--cc=ebiederm@xmission.com \
--cc=fastboot@lists.osdl.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lwang@redhat.com \
--cc=pavel@suse.cz \
--cc=rjw@sisk.pl \
--cc=vgoyal@in.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®