All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Matt Fleming <matt.fleming@intel.com>
Cc: "mjg59@srcf.ucam.org" <mjg59@srcf.ucam.org>,
	bhe@redhat.com, greg@kroah.com, kexec@lists.infradead.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"bp@alien8.de" <bp@alien8.de>,
	ebiederm@xmission.com, "jkosina@suse.cz" <jkosina@suse.cz>,
	chaowang@redhat.com, Dave Young <dyoung@redhat.com>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [RFC PATCH 00/13][V3] kexec: A new system call to allow in kernel loading
Date: Fri, 06 Jun 2014 14:00:49 -0700	[thread overview]
Message-ID: <53922C01.4040800@zytor.com> (raw)
In-Reply-To: <CAL01qpsf_-Ae_P-mfmqfu6DYavcb866YUnE4XM_7vdhfcAvMGg@mail.gmail.com>

On 06/06/2014 01:58 PM, Matt Fleming wrote:
> On 6 June 2014 21:37, H. Peter Anvin <hpa@zytor.com> wrote:
>>
>> OK... this is seriously problematic.
>>
>> #if defined(CONFIG_RELOCATABLE) && defined(CONFIG_X86_64) && \
>>         !defined(CONFIG_EFI_MIXED)
>>    /* kernel/boot_param/ramdisk could be loaded above 4g */
>> # define XLF1 XLF_CAN_BE_LOADED_ABOVE_4G
>> #else
>> # define XLF1 0
>> #endif
>>
>> The fact that even compiling with CONFIG_EFI_MIXED disables
>> XLF_CAN_BE_LOADED_ABOVE_4G is really not going to fly.  We should expect
>> CONFIG_EFI_MIXED to be the norm, but *also* should expect that there is
>> a legitimate need to load above 4G.
>>
>> Matt, could you explain why this is necessary?  We need to figure out a
>> way around this.
>>
>> My thinking is that disabling this flag is unnecessary, since a 32-bit
>> EFI loader should not load above the 4G mark anyway, but if I'm confused
>> and there is a more fundamental requirement, then we need to consider
>> that more carefully.
> 
> No, your comments are absolutely correct. I was the one who was
> confused. I found this in the git history,
> 
> commit 7d453eee36ae
> Author: Matt Fleming <matt.fleming@intel.com>
> Date:   Fri Jan 10 18:52:06 2014 +0000
> 
>     x86/efi: Wire up CONFIG_EFI_MIXED
> 
>     Add the Kconfig option and bump the kernel header version so that boot
>     loaders can check whether the handover code is available if they want.
> 
>     The xloadflags field in the bzImage header is also updated to reflect
>     that the kernel supports both entry points by setting both of
>     XLF_EFI_HANDOVER_32 and XLF_EFI_HANDOVER_64 when CONFIG_EFI_MIXED=y.
>     XLF_CAN_BE_LOADED_ABOVE_4G is disabled so that the kernel text is
>     guaranteed to be addressable with 32-bits.
> 
> As you've pointed out above, a 32-bit loader is never going to load
> the kernel above 4G, so we don't need to disable it.
> 
> What's the best way to fix this up? Just undo the change from the above commit?
> 

Yes, presumably (as a separate patch since the actual commit is quite
large.)  The patch needs to have a good description why the original
patch was wrong.

	-hpa


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: "H. Peter Anvin" <hpa@zytor.com>
To: Matt Fleming <matt.fleming@intel.com>
Cc: Dave Young <dyoung@redhat.com>, Vivek Goyal <vgoyal@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	kexec@lists.infradead.org, ebiederm@xmission.com,
	"mjg59@srcf.ucam.org" <mjg59@srcf.ucam.org>,
	greg@kroah.com, "bp@alien8.de" <bp@alien8.de>,
	"jkosina@suse.cz" <jkosina@suse.cz>,
	chaowang@redhat.com, bhe@redhat.com,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Subject: Re: [RFC PATCH 00/13][V3] kexec: A new system call to allow in kernel loading
Date: Fri, 06 Jun 2014 14:00:49 -0700	[thread overview]
Message-ID: <53922C01.4040800@zytor.com> (raw)
In-Reply-To: <CAL01qpsf_-Ae_P-mfmqfu6DYavcb866YUnE4XM_7vdhfcAvMGg@mail.gmail.com>

On 06/06/2014 01:58 PM, Matt Fleming wrote:
> On 6 June 2014 21:37, H. Peter Anvin <hpa@zytor.com> wrote:
>>
>> OK... this is seriously problematic.
>>
>> #if defined(CONFIG_RELOCATABLE) && defined(CONFIG_X86_64) && \
>>         !defined(CONFIG_EFI_MIXED)
>>    /* kernel/boot_param/ramdisk could be loaded above 4g */
>> # define XLF1 XLF_CAN_BE_LOADED_ABOVE_4G
>> #else
>> # define XLF1 0
>> #endif
>>
>> The fact that even compiling with CONFIG_EFI_MIXED disables
>> XLF_CAN_BE_LOADED_ABOVE_4G is really not going to fly.  We should expect
>> CONFIG_EFI_MIXED to be the norm, but *also* should expect that there is
>> a legitimate need to load above 4G.
>>
>> Matt, could you explain why this is necessary?  We need to figure out a
>> way around this.
>>
>> My thinking is that disabling this flag is unnecessary, since a 32-bit
>> EFI loader should not load above the 4G mark anyway, but if I'm confused
>> and there is a more fundamental requirement, then we need to consider
>> that more carefully.
> 
> No, your comments are absolutely correct. I was the one who was
> confused. I found this in the git history,
> 
> commit 7d453eee36ae
> Author: Matt Fleming <matt.fleming@intel.com>
> Date:   Fri Jan 10 18:52:06 2014 +0000
> 
>     x86/efi: Wire up CONFIG_EFI_MIXED
> 
>     Add the Kconfig option and bump the kernel header version so that boot
>     loaders can check whether the handover code is available if they want.
> 
>     The xloadflags field in the bzImage header is also updated to reflect
>     that the kernel supports both entry points by setting both of
>     XLF_EFI_HANDOVER_32 and XLF_EFI_HANDOVER_64 when CONFIG_EFI_MIXED=y.
>     XLF_CAN_BE_LOADED_ABOVE_4G is disabled so that the kernel text is
>     guaranteed to be addressable with 32-bits.
> 
> As you've pointed out above, a 32-bit loader is never going to load
> the kernel above 4G, so we don't need to disable it.
> 
> What's the best way to fix this up? Just undo the change from the above commit?
> 

Yes, presumably (as a separate patch since the actual commit is quite
large.)  The patch needs to have a good description why the original
patch was wrong.

	-hpa


  reply	other threads:[~2014-06-06 21:01 UTC|newest]

Thread overview: 214+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-03 13:06 [RFC PATCH 00/13][V3] kexec: A new system call to allow in kernel loading Vivek Goyal
2014-06-03 13:06 ` Vivek Goyal
2014-06-03 13:06 ` [PATCH 01/13] bin2c: Move bin2c in scripts/basic Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-03 16:01   ` Borislav Petkov
2014-06-03 16:01     ` Borislav Petkov
2014-06-03 17:13     ` Vivek Goyal
2014-06-03 17:13       ` Vivek Goyal
2014-06-03 13:06 ` [PATCH 02/13] kernel: Build bin2c based on config option CONFIG_BUILD_BIN2C Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-04  9:13   ` Borislav Petkov
2014-06-04  9:13     ` Borislav Petkov
2014-06-03 13:06 ` [PATCH 03/13] kexec: Move segment verification code in a separate function Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-04  9:32   ` Borislav Petkov
2014-06-04  9:32     ` Borislav Petkov
2014-06-04 18:47     ` Vivek Goyal
2014-06-04 18:47       ` Vivek Goyal
2014-06-04 20:30       ` Borislav Petkov
2014-06-04 20:30         ` Borislav Petkov
2014-06-05 14:05         ` Vivek Goyal
2014-06-05 14:05           ` Vivek Goyal
2014-06-05 14:07           ` Borislav Petkov
2014-06-05 14:07             ` Borislav Petkov
2014-06-03 13:06 ` [PATCH 04/13] resource: Provide new functions to walk through resources Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-04 10:24   ` Borislav Petkov
2014-06-04 10:24     ` Borislav Petkov
2014-06-05 13:58     ` Vivek Goyal
2014-06-05 13:58       ` Vivek Goyal
2014-06-03 13:06 ` [PATCH 05/13] kexec: Make kexec_segment user buffer pointer a union Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-04 10:34   ` Borislav Petkov
2014-06-04 10:34     ` Borislav Petkov
2014-06-03 13:06 ` [PATCH 06/13] kexec: New syscall kexec_file_load() declaration Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-04 15:18   ` Borislav Petkov
2014-06-04 15:18     ` Borislav Petkov
2014-06-05  9:56   ` WANG Chao
2014-06-05  9:56     ` WANG Chao
2014-06-05 15:16     ` Vivek Goyal
2014-06-05 15:16       ` Vivek Goyal
2014-06-05 15:22       ` Vivek Goyal
2014-06-05 15:22         ` Vivek Goyal
2014-06-06  6:34         ` WANG Chao
2014-06-06  6:34           ` WANG Chao
2014-06-03 13:06 ` [PATCH 07/13] kexec: Implementation of new syscall kexec_file_load Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-05 11:15   ` Borislav Petkov
2014-06-05 11:15     ` Borislav Petkov
2014-06-05 20:17     ` Vivek Goyal
2014-06-05 20:17       ` Vivek Goyal
2014-06-06  2:11       ` Borislav Petkov
2014-06-06  2:11         ` Borislav Petkov
2014-06-06 18:02         ` Vivek Goyal
2014-06-06 18:02           ` Vivek Goyal
2014-06-11 14:13           ` Borislav Petkov
2014-06-11 14:13             ` Borislav Petkov
2014-06-11 17:04             ` Vivek Goyal
2014-06-11 17:04               ` Vivek Goyal
2014-06-06  6:56   ` WANG Chao
2014-06-06  6:56     ` WANG Chao
2014-06-06 18:19     ` Vivek Goyal
2014-06-06 18:19       ` Vivek Goyal
2014-06-09  2:11       ` Dave Young
2014-06-09  2:11         ` Dave Young
2014-06-09  5:35         ` WANG Chao
2014-06-09  5:35           ` WANG Chao
2014-06-09 15:41           ` Vivek Goyal
2014-06-09 15:41             ` Vivek Goyal
2014-06-13  7:50             ` Borislav Petkov
2014-06-13  7:50               ` Borislav Petkov
2014-06-13  8:00               ` WANG Chao
2014-06-13  8:00                 ` WANG Chao
2014-06-13  8:10                 ` Borislav Petkov
2014-06-13  8:10                   ` Borislav Petkov
2014-06-13  8:24                   ` WANG Chao
2014-06-13  8:24                     ` WANG Chao
2014-06-13  8:30                     ` Borislav Petkov
2014-06-13  8:30                       ` Borislav Petkov
2014-06-13 12:49                 ` Vivek Goyal
2014-06-13 12:49                   ` Vivek Goyal
2014-06-13 12:46               ` Vivek Goyal
2014-06-13 12:46                 ` Vivek Goyal
2014-06-13 15:36                 ` Borislav Petkov
2014-06-13 15:36                   ` Borislav Petkov
2014-06-16 17:38                   ` Vivek Goyal
2014-06-16 17:38                     ` Vivek Goyal
2014-06-16 20:05                     ` Borislav Petkov
2014-06-16 20:05                       ` Borislav Petkov
2014-06-16 20:53                       ` Vivek Goyal
2014-06-16 20:53                         ` Vivek Goyal
2014-06-16 21:09                         ` Borislav Petkov
2014-06-16 21:09                           ` Borislav Petkov
2014-06-16 21:25                           ` H. Peter Anvin
2014-06-16 21:25                             ` H. Peter Anvin
2014-06-16 21:43                             ` Vivek Goyal
2014-06-16 21:43                               ` Vivek Goyal
2014-06-16 22:10                               ` Borislav Petkov
2014-06-16 22:10                                 ` Borislav Petkov
2014-06-16 22:49                               ` H. Peter Anvin
2014-06-16 22:49                                 ` H. Peter Anvin
2014-06-09 15:30         ` Vivek Goyal
2014-06-09 15:30           ` Vivek Goyal
2014-06-03 13:06 ` [PATCH 08/13] purgatory/sha256: Provide implementation of sha256 in purgaotory context Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-03 13:06 ` [PATCH 09/13] purgatory: Core purgatory functionality Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-05 20:05   ` Borislav Petkov
2014-06-05 20:05     ` Borislav Petkov
2014-06-06 19:51     ` Vivek Goyal
2014-06-06 19:51       ` Vivek Goyal
2014-06-13 10:17       ` Borislav Petkov
2014-06-13 10:17         ` Borislav Petkov
2014-06-16 17:25         ` Vivek Goyal
2014-06-16 17:25           ` Vivek Goyal
2014-06-16 20:10           ` Borislav Petkov
2014-06-16 20:10             ` Borislav Petkov
2014-06-03 13:06 ` [PATCH 10/13] kexec: Load and Relocate purgatory at kernel load time Vivek Goyal
2014-06-03 13:06   ` Vivek Goyal
2014-06-10 16:31   ` Borislav Petkov
2014-06-10 16:31     ` Borislav Petkov
2014-06-11 19:24     ` Vivek Goyal
2014-06-11 19:24       ` Vivek Goyal
2014-06-13 16:14       ` Borislav Petkov
2014-06-13 16:14         ` Borislav Petkov
2014-06-03 13:07 ` [PATCH 11/13] kexec-bzImage: Support for loading bzImage using 64bit entry Vivek Goyal
2014-06-03 13:07   ` Vivek Goyal
2014-06-15 16:35   ` Borislav Petkov
2014-06-15 16:35     ` Borislav Petkov
2014-06-15 16:56     ` H. Peter Anvin
2014-06-15 16:56       ` H. Peter Anvin
2014-06-16 20:06     ` Vivek Goyal
2014-06-16 20:06       ` Vivek Goyal
2014-06-16 20:57       ` Borislav Petkov
2014-06-16 20:57         ` Borislav Petkov
2014-06-16 21:15         ` Vivek Goyal
2014-06-16 21:15           ` Vivek Goyal
2014-06-16 21:27           ` Borislav Petkov
2014-06-16 21:27             ` Borislav Petkov
2014-06-16 21:45             ` Vivek Goyal
2014-06-16 21:45               ` Vivek Goyal
2014-06-24 17:31     ` Vivek Goyal
2014-06-24 17:31       ` Vivek Goyal
2014-06-24 18:23       ` Borislav Petkov
2014-06-24 18:23         ` Borislav Petkov
2014-06-03 13:07 ` [PATCH 12/13] kexec: Support for Kexec on panic using new system call Vivek Goyal
2014-06-03 13:07   ` Vivek Goyal
2014-06-17 21:43   ` Borislav Petkov
2014-06-17 21:43     ` Borislav Petkov
2014-06-18 14:20     ` Vivek Goyal
2014-06-18 14:20       ` Vivek Goyal
2014-06-03 13:07 ` [PATCH 13/13] kexec: Support kexec/kdump on EFI systems Vivek Goyal
2014-06-03 13:07   ` Vivek Goyal
2014-06-18 15:43   ` Borislav Petkov
2014-06-18 15:43     ` Borislav Petkov
2014-06-18 16:06   ` Borislav Petkov
2014-06-18 16:06     ` Borislav Petkov
2014-06-18 16:06     ` Borislav Petkov
2014-06-18 17:39     ` Vivek Goyal
2014-06-18 17:39       ` Vivek Goyal
2014-06-18 17:39       ` Vivek Goyal
2014-06-03 13:12 ` [RFC PATCH 00/13][V3] kexec: A new system call to allow in kernel loading Vivek Goyal
2014-06-03 13:12   ` Vivek Goyal
2014-06-04  9:22   ` WANG Chao
2014-06-04  9:22     ` WANG Chao
2014-06-04 17:50     ` Vivek Goyal
2014-06-04 17:50       ` Vivek Goyal
2014-06-04 19:39       ` Michael Kerrisk
2014-06-04 19:39         ` Michael Kerrisk
2014-06-04 19:39         ` Michael Kerrisk
2014-06-05 14:04         ` Vivek Goyal
2014-06-05 14:04           ` Vivek Goyal
2014-06-05 14:04           ` Vivek Goyal
2014-06-06  5:45           ` Michael Kerrisk (man-pages)
2014-06-06  5:45             ` Michael Kerrisk (man-pages)
2014-06-06  5:45             ` Michael Kerrisk (man-pages)
2014-06-06 18:04             ` Vivek Goyal
2014-06-06 18:04               ` Vivek Goyal
2014-06-06 18:04               ` Vivek Goyal
2014-06-05  8:31   ` Dave Young
2014-06-05  8:31     ` Dave Young
2014-06-05 15:01     ` Vivek Goyal
2014-06-05 15:01       ` Vivek Goyal
2014-06-06  7:37       ` Dave Young
2014-06-06  7:37         ` Dave Young
2014-06-06 20:04         ` Vivek Goyal
2014-06-06 20:04           ` Vivek Goyal
2014-06-09  1:57           ` Dave Young
2014-06-09  1:57             ` Dave Young
2014-06-06 20:37         ` H. Peter Anvin
2014-06-06 20:37           ` H. Peter Anvin
2014-06-06 20:58           ` Matt Fleming
2014-06-06 20:58             ` Matt Fleming
2014-06-06 21:00             ` H. Peter Anvin [this message]
2014-06-06 21:00               ` H. Peter Anvin
2014-06-06 21:02               ` Matt Fleming
2014-06-06 21:02                 ` Matt Fleming
2014-06-12  5:42 ` Dave Young
2014-06-12  5:42   ` Dave Young
2014-06-12 12:36   ` Vivek Goyal
2014-06-12 12:36     ` Vivek Goyal
2014-06-17 14:24   ` Vivek Goyal
2014-06-17 14:24     ` Vivek Goyal
2014-06-18  1:45     ` Dave Young
2014-06-18  1:45       ` Dave Young
2014-06-18  1:52       ` Dave Young
2014-06-18  1:52         ` Dave Young
2014-06-18 12:40         ` Vivek Goyal
2014-06-18 12:40           ` Vivek Goyal
2014-06-16 21:13 ` Borislav Petkov
2014-06-16 21:13   ` Borislav Petkov
2014-06-17 13:24   ` Vivek Goyal
2014-06-17 13:24     ` 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=53922C01.4040800@zytor.com \
    --to=hpa@zytor.com \
    --cc=akpm@linux-foundation.org \
    --cc=bhe@redhat.com \
    --cc=bp@alien8.de \
    --cc=chaowang@redhat.com \
    --cc=dyoung@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=greg@kroah.com \
    --cc=jkosina@suse.cz \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.fleming@intel.com \
    --cc=mjg59@srcf.ucam.org \
    --cc=vgoyal@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.