* [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-21 6:40 ` dyoung
0 siblings, 0 replies; 28+ messages in thread
From: dyoung-H+wXaHxf7aLQT0dZR+AlfA @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
toshi.kani-VXdhtT5mjnY, matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA
Hi,
This is the v3 patchset for adding efi runtime support on kexec kernel
kernel patches was sent a while ago, not yet updated in archive.
in kexec-tools, this patchset will do below:
1. retrieve efi_info from sysfs boot_params, and fill the
x86 setup header. If kernel does not export sysfs boot_params,
still try to find them in debugfs.
2. collect data efi runtime needed:
/sys/firmware/efi/systab: smbios
/sys/firmware/efi/fw_vendor
/sys/firmware/efi/runtime
/sys/firmware/efi/config_table
/sys/firmware/efi/runtime-map/*, the phys-virt mappings in 1st kernel
3. assemble setup_data based on data get in 2) then pass it to 2nd kernel
Tested on OVMF, dell laptop, lenovo laptop and HP workstation
TODO: add functions for easily adding setup_data, arrange them as link list
because we probably will add e820 memory ranges as setup_data as well.
I do not prefer to bloat this patchset anymore, so I'd likt to address this
issue after the efi runtime issue finished unless people request.
V2 changelog:
Address comments from
Simon:
coding style, fixed a mem leak
HPA:
use type uint64_t instead of __uint64_t
mjg:
do not cause regression for loading old kernel
use xloadflags to check the bzImage support for efi.
in case old kernel, do not pass efi_info and setup_data
for new kernel, do not pass acpi_rsdp
Vivek:
suggest to export a value in bzImage probe for efi support
so it can be used to check if we should pass acpi_rsdp.
V3 changelog:
01/04: new patch of a building fix
try sysfs firstly for boot params
add checking of efi memory range description version, bail out if it's not 1
error handling improvement and some cleanups
--
Thanks
Dave
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-21 6:40 ` dyoung
0 siblings, 0 replies; 28+ messages in thread
From: dyoung @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec
Cc: mjg59, linux-efi, toshi.kani, matt, greg, x86, James.Bottomley,
horms, bp, ebiederm, hpa, vgoyal
Hi,
This is the v3 patchset for adding efi runtime support on kexec kernel
kernel patches was sent a while ago, not yet updated in archive.
in kexec-tools, this patchset will do below:
1. retrieve efi_info from sysfs boot_params, and fill the
x86 setup header. If kernel does not export sysfs boot_params,
still try to find them in debugfs.
2. collect data efi runtime needed:
/sys/firmware/efi/systab: smbios
/sys/firmware/efi/fw_vendor
/sys/firmware/efi/runtime
/sys/firmware/efi/config_table
/sys/firmware/efi/runtime-map/*, the phys-virt mappings in 1st kernel
3. assemble setup_data based on data get in 2) then pass it to 2nd kernel
Tested on OVMF, dell laptop, lenovo laptop and HP workstation
TODO: add functions for easily adding setup_data, arrange them as link list
because we probably will add e820 memory ranges as setup_data as well.
I do not prefer to bloat this patchset anymore, so I'd likt to address this
issue after the efi runtime issue finished unless people request.
V2 changelog:
Address comments from
Simon:
coding style, fixed a mem leak
HPA:
use type uint64_t instead of __uint64_t
mjg:
do not cause regression for loading old kernel
use xloadflags to check the bzImage support for efi.
in case old kernel, do not pass efi_info and setup_data
for new kernel, do not pass acpi_rsdp
Vivek:
suggest to export a value in bzImage probe for efi support
so it can be used to check if we should pass acpi_rsdp.
V3 changelog:
01/04: new patch of a building fix
try sysfs firstly for boot params
add checking of efi memory range description version, bail out if it's not 1
error handling improvement and some cleanups
--
Thanks
Dave
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 1/4 v3] build fix: include x86-linux.h in x86-linux-setup.h
2013-11-21 6:40 ` dyoung
@ 2013-11-21 6:40 ` dyoung
-1 siblings, 0 replies; 28+ messages in thread
From: dyoung-H+wXaHxf7aLQT0dZR+AlfA @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
toshi.kani-VXdhtT5mjnY, matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
Dave Young, vgoyal-H+wXaHxf7aLQT0dZR+AlfA
[-- Attachment #1: build-warning-fix.patch --]
[-- Type: text/plain, Size: 650 bytes --]
There's build warnings about using struct x86_linux_param_header *
in x86-linux-setup.h, it is declared in x86-linux.h
Fix it by include x86-linux.h in x86-linux-setup.h
Signed-off-by: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
kexec/arch/i386/x86-linux-setup.h | 1 +
1 file changed, 1 insertion(+)
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.h
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.h
@@ -1,5 +1,6 @@
#ifndef X86_LINUX_SETUP_H
#define X86_LINUX_SETUP_H
+#include <x86/x86-linux.h>
void init_linux_parameters(struct x86_linux_param_header *real_mode);
void setup_linux_bootloader_parameters_high(
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 1/4 v3] build fix: include x86-linux.h in x86-linux-setup.h
@ 2013-11-21 6:40 ` dyoung
0 siblings, 0 replies; 28+ messages in thread
From: dyoung @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec
Cc: mjg59, linux-efi, toshi.kani, matt, greg, x86, James.Bottomley,
horms, bp, ebiederm, hpa, Dave Young, vgoyal
[-- Attachment #1: build-warning-fix.patch --]
[-- Type: text/plain, Size: 766 bytes --]
There's build warnings about using struct x86_linux_param_header *
in x86-linux-setup.h, it is declared in x86-linux.h
Fix it by include x86-linux.h in x86-linux-setup.h
Signed-off-by: Dave Young <dyoung@redhat.com>
---
kexec/arch/i386/x86-linux-setup.h | 1 +
1 file changed, 1 insertion(+)
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.h
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.h
@@ -1,5 +1,6 @@
#ifndef X86_LINUX_SETUP_H
#define X86_LINUX_SETUP_H
+#include <x86/x86-linux.h>
void init_linux_parameters(struct x86_linux_param_header *real_mode);
void setup_linux_bootloader_parameters_high(
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 2/4 v3] Add function get_bootparam
2013-11-21 6:40 ` dyoung
@ 2013-11-21 6:40 ` dyoung
-1 siblings, 0 replies; 28+ messages in thread
From: dyoung-H+wXaHxf7aLQT0dZR+AlfA @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
toshi.kani-VXdhtT5mjnY, matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
Dave Young, vgoyal-H+wXaHxf7aLQT0dZR+AlfA
[-- Attachment #1: 01-kexec-add-function-get-boot-param.patch --]
[-- Type: text/plain, Size: 2437 bytes --]
Not only setup_subarch will get data from debugfs file
boot_params/data, later code for adding efi_info will
also need do same thing. Thus add a common function here
for later use.
v1->v2: make get_bootparam() static
v2->v3: return error code when get_bootparam fails because
later patch to collect efi runtime maps will not
necessary if get_bootparam fails.
switch to use /sys/kernel/boot_params if possible.
return error code for later use in setup_efi_info.
Signed-off-by: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
kexec/arch/i386/x86-linux-setup.c | 42 ++++++++++++++++++++++++++++----------
1 file changed, 31 insertions(+), 11 deletions(-)
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.c
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.c
@@ -436,28 +436,48 @@ char *find_mnt_by_fsname(char *fsname)
return mntdir;
}
-void setup_subarch(struct x86_linux_param_header *real_mode)
+static int get_bootparam(void *buf, off_t offset, size_t size)
{
int data_file;
- const off_t offset = offsetof(typeof(*real_mode), hardware_subarch);
- char *debugfs_mnt;
+ char *debugfs_mnt, *sysfs_mnt;
char filename[PATH_MAX];
+ int err, has_sysfs_params = 0;
+
+ sysfs_mnt = find_mnt_by_fsname("sysfs");
+ if (sysfs_mnt) {
+ snprintf(filename, PATH_MAX, "%s/%s", sysfs_mnt,
+ "kernel/boot_params/data");
+ free(sysfs_mnt);
+ err = access(filename, F_OK);
+ if (!err)
+ has_sysfs_params = 1;
+ }
- debugfs_mnt = find_mnt_by_fsname("debugfs");
- if (!debugfs_mnt)
- return;
- snprintf(filename, PATH_MAX, "%s/%s", debugfs_mnt, "boot_params/data");
- filename[PATH_MAX-1] = 0;
- free(debugfs_mnt);
+ if (!has_sysfs_params) {
+ debugfs_mnt = find_mnt_by_fsname("debugfs");
+ if (!debugfs_mnt)
+ return 1;
+ snprintf(filename, PATH_MAX, "%s/%s", debugfs_mnt,
+ "boot_params/data");
+ free(debugfs_mnt);
+ }
data_file = open(filename, O_RDONLY);
if (data_file < 0)
- return;
+ return 1;
if (lseek(data_file, offset, SEEK_SET) < 0)
goto close;
- read(data_file, &real_mode->hardware_subarch, sizeof(uint32_t));
+ read(data_file, buf, size);
close:
close(data_file);
+ return 0;
+}
+
+void setup_subarch(struct x86_linux_param_header *real_mode)
+{
+ off_t offset = offsetof(typeof(*real_mode), hardware_subarch);
+
+ get_bootparam(&real_mode->hardware_subarch, offset, sizeof(uint32_t));
}
void setup_linux_system_parameters(struct kexec_info *info,
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 2/4 v3] Add function get_bootparam
@ 2013-11-21 6:40 ` dyoung
0 siblings, 0 replies; 28+ messages in thread
From: dyoung @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec
Cc: mjg59, linux-efi, toshi.kani, matt, greg, x86, James.Bottomley,
horms, bp, ebiederm, hpa, Dave Young, vgoyal
[-- Attachment #1: 01-kexec-add-function-get-boot-param.patch --]
[-- Type: text/plain, Size: 2553 bytes --]
Not only setup_subarch will get data from debugfs file
boot_params/data, later code for adding efi_info will
also need do same thing. Thus add a common function here
for later use.
v1->v2: make get_bootparam() static
v2->v3: return error code when get_bootparam fails because
later patch to collect efi runtime maps will not
necessary if get_bootparam fails.
switch to use /sys/kernel/boot_params if possible.
return error code for later use in setup_efi_info.
Signed-off-by: Dave Young <dyoung@redhat.com>
---
kexec/arch/i386/x86-linux-setup.c | 42 ++++++++++++++++++++++++++++----------
1 file changed, 31 insertions(+), 11 deletions(-)
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.c
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.c
@@ -436,28 +436,48 @@ char *find_mnt_by_fsname(char *fsname)
return mntdir;
}
-void setup_subarch(struct x86_linux_param_header *real_mode)
+static int get_bootparam(void *buf, off_t offset, size_t size)
{
int data_file;
- const off_t offset = offsetof(typeof(*real_mode), hardware_subarch);
- char *debugfs_mnt;
+ char *debugfs_mnt, *sysfs_mnt;
char filename[PATH_MAX];
+ int err, has_sysfs_params = 0;
+
+ sysfs_mnt = find_mnt_by_fsname("sysfs");
+ if (sysfs_mnt) {
+ snprintf(filename, PATH_MAX, "%s/%s", sysfs_mnt,
+ "kernel/boot_params/data");
+ free(sysfs_mnt);
+ err = access(filename, F_OK);
+ if (!err)
+ has_sysfs_params = 1;
+ }
- debugfs_mnt = find_mnt_by_fsname("debugfs");
- if (!debugfs_mnt)
- return;
- snprintf(filename, PATH_MAX, "%s/%s", debugfs_mnt, "boot_params/data");
- filename[PATH_MAX-1] = 0;
- free(debugfs_mnt);
+ if (!has_sysfs_params) {
+ debugfs_mnt = find_mnt_by_fsname("debugfs");
+ if (!debugfs_mnt)
+ return 1;
+ snprintf(filename, PATH_MAX, "%s/%s", debugfs_mnt,
+ "boot_params/data");
+ free(debugfs_mnt);
+ }
data_file = open(filename, O_RDONLY);
if (data_file < 0)
- return;
+ return 1;
if (lseek(data_file, offset, SEEK_SET) < 0)
goto close;
- read(data_file, &real_mode->hardware_subarch, sizeof(uint32_t));
+ read(data_file, buf, size);
close:
close(data_file);
+ return 0;
+}
+
+void setup_subarch(struct x86_linux_param_header *real_mode)
+{
+ off_t offset = offsetof(typeof(*real_mode), hardware_subarch);
+
+ get_bootparam(&real_mode->hardware_subarch, offset, sizeof(uint32_t));
}
void setup_linux_system_parameters(struct kexec_info *info,
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 3/4 v3] Add efi_info in x86 setup header
2013-11-21 6:40 ` dyoung
@ 2013-11-21 6:40 ` dyoung
-1 siblings, 0 replies; 28+ messages in thread
From: dyoung-H+wXaHxf7aLQT0dZR+AlfA @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A,
mjg59-1xO5oi07KQx4cg9Nei1l7Q, hpa-YMNOUZJC4hwAvxtiuMwx3w,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
greg-U8xfFu+wG4EAvxtiuMwx3w,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy, toshi.kani-VXdhtT5mjnY,
Dave Young
[-- Attachment #1: 02-kexec-padd-efi_info.patch --]
[-- Type: text/plain, Size: 3866 bytes --]
For supporting efi runtime on kexec kernel we need to
fill the efi_info struct in setup_header. I just get
the info in kernel exported boot_params data in debugfs.
v1->v2:
update comment for offset of reserved4_1[] in x87_linux_param_header
Address comment from mjg59: do not break old kernel when use newer kexec-tools.
add checking for xloadflags bit 4 XLF_EFI_KEXEC. Only fill
efi_info and pass acpi_rsdp when the kexec kernel support efi boot.
coding style fix, change internal function to be static
Signed-off-by: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
include/x86/x86-linux.h | 3 ++-
kexec/arch/i386/crashdump-x86.c | 4 +++-
kexec/arch/i386/x86-linux-setup.c | 9 +++++++++
kexec/arch/i386/x86-linux-setup.h | 1 +
kexec/arch/x86_64/kexec-bzImage64.c | 6 ++++++
5 files changed, 21 insertions(+), 2 deletions(-)
--- kexec-tools.orig/include/x86/x86-linux.h
+++ kexec-tools/include/x86/x86-linux.h
@@ -113,7 +113,8 @@ struct x86_linux_param_header {
uint32_t ext_ramdisk_image; /* 0xc0 */
uint32_t ext_ramdisk_size; /* 0xc4 */
uint32_t ext_cmd_line_ptr; /* 0xc8 */
- uint8_t reserved4_1[0x1e0 - 0xcc]; /* 0xcc */
+ uint8_t reserved4_1[0x1c0 - 0xcc]; /* 0xe4 */
+ uint8_t efi_info[32]; /* 0x1c0 */
uint32_t alt_mem_k; /* 0x1e0 */
uint8_t reserved5[4]; /* 0x1e4 */
uint8_t e820_map_nr; /* 0x1e8 */
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.c
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.c
@@ -480,6 +480,13 @@ void setup_subarch(struct x86_linux_para
get_bootparam(&real_mode->hardware_subarch, offset, sizeof(uint32_t));
}
+static void setup_efi_info(struct x86_linux_param_header *real_mode)
+{
+ off_t offset = offsetof(typeof(*real_mode), efi_info);
+
+ get_bootparam(&real_mode->efi_info, offset, 32);
+}
+
void setup_linux_system_parameters(struct kexec_info *info,
struct x86_linux_param_header *real_mode)
{
@@ -489,6 +496,8 @@ void setup_linux_system_parameters(struc
/* get subarch from running kernel */
setup_subarch(real_mode);
+ if (bzImage_support_efi_boot)
+ setup_efi_info(real_mode);
/* Default screen size */
real_mode->orig_x = 0;
--- kexec-tools.orig/kexec/arch/i386/crashdump-x86.c
+++ kexec-tools/kexec/arch/i386/crashdump-x86.c
@@ -41,6 +41,7 @@
#include "../../crashdump.h"
#include "kexec-x86.h"
#include "crashdump-x86.h"
+#include "x86-linux-setup.h"
#ifdef HAVE_LIBXENCTRL
#ifdef HAVE_XC_GET_MACHINE_MEMORY_MAP
@@ -1046,7 +1047,8 @@ int load_crashdump_segments(struct kexec
if (delete_memmap(memmap_p, elfcorehdr, memsz) < 0)
return -1;
cmdline_add_memmap(mod_cmdline, memmap_p);
- cmdline_add_efi(mod_cmdline);
+ if (!bzImage_support_efi_boot)
+ cmdline_add_efi(mod_cmdline);
cmdline_add_elfcorehdr(mod_cmdline, elfcorehdr);
/* Inform second kernel about the presence of ACPI tables. */
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.h
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.h
@@ -29,5 +29,6 @@ void setup_linux_system_parameters(struc
/* command line parameter may be appended by purgatory */
#define PURGATORY_CMDLINE_SIZE 64
+extern int bzImage_support_efi_boot;
#endif /* X86_LINUX_SETUP_H */
--- kexec-tools.orig/kexec/arch/x86_64/kexec-bzImage64.c
+++ kexec-tools/kexec/arch/x86_64/kexec-bzImage64.c
@@ -42,6 +42,7 @@
#include <arch/options.h>
static const int probe_debug = 0;
+int bzImage_support_efi_boot;
int bzImage64_probe(const char *buf, off_t len)
{
@@ -82,6 +83,11 @@ int bzImage64_probe(const char *buf, off
/* Must be KERNEL_64 and CAN_BE_LOADED_ABOVE_4G */
return -1;
}
+
+#define XLF_EFI_KEXEC (1 << 4)
+ if ((header->xloadflags & XLF_EFI_KEXEC) == XLF_EFI_KEXEC)
+ bzImage_support_efi_boot = 1;
+
/* I've got a relocatable bzImage64 */
if (probe_debug)
fprintf(stderr, "It's a relocatable bzImage64\n");
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 3/4 v3] Add efi_info in x86 setup header
@ 2013-11-21 6:40 ` dyoung
0 siblings, 0 replies; 28+ messages in thread
From: dyoung @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec
Cc: mjg59, linux-efi, toshi.kani, matt, greg, x86, James.Bottomley,
horms, bp, ebiederm, hpa, Dave Young, vgoyal
[-- Attachment #1: 02-kexec-padd-efi_info.patch --]
[-- Type: text/plain, Size: 3982 bytes --]
For supporting efi runtime on kexec kernel we need to
fill the efi_info struct in setup_header. I just get
the info in kernel exported boot_params data in debugfs.
v1->v2:
update comment for offset of reserved4_1[] in x87_linux_param_header
Address comment from mjg59: do not break old kernel when use newer kexec-tools.
add checking for xloadflags bit 4 XLF_EFI_KEXEC. Only fill
efi_info and pass acpi_rsdp when the kexec kernel support efi boot.
coding style fix, change internal function to be static
Signed-off-by: Dave Young <dyoung@redhat.com>
---
include/x86/x86-linux.h | 3 ++-
kexec/arch/i386/crashdump-x86.c | 4 +++-
kexec/arch/i386/x86-linux-setup.c | 9 +++++++++
kexec/arch/i386/x86-linux-setup.h | 1 +
kexec/arch/x86_64/kexec-bzImage64.c | 6 ++++++
5 files changed, 21 insertions(+), 2 deletions(-)
--- kexec-tools.orig/include/x86/x86-linux.h
+++ kexec-tools/include/x86/x86-linux.h
@@ -113,7 +113,8 @@ struct x86_linux_param_header {
uint32_t ext_ramdisk_image; /* 0xc0 */
uint32_t ext_ramdisk_size; /* 0xc4 */
uint32_t ext_cmd_line_ptr; /* 0xc8 */
- uint8_t reserved4_1[0x1e0 - 0xcc]; /* 0xcc */
+ uint8_t reserved4_1[0x1c0 - 0xcc]; /* 0xe4 */
+ uint8_t efi_info[32]; /* 0x1c0 */
uint32_t alt_mem_k; /* 0x1e0 */
uint8_t reserved5[4]; /* 0x1e4 */
uint8_t e820_map_nr; /* 0x1e8 */
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.c
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.c
@@ -480,6 +480,13 @@ void setup_subarch(struct x86_linux_para
get_bootparam(&real_mode->hardware_subarch, offset, sizeof(uint32_t));
}
+static void setup_efi_info(struct x86_linux_param_header *real_mode)
+{
+ off_t offset = offsetof(typeof(*real_mode), efi_info);
+
+ get_bootparam(&real_mode->efi_info, offset, 32);
+}
+
void setup_linux_system_parameters(struct kexec_info *info,
struct x86_linux_param_header *real_mode)
{
@@ -489,6 +496,8 @@ void setup_linux_system_parameters(struc
/* get subarch from running kernel */
setup_subarch(real_mode);
+ if (bzImage_support_efi_boot)
+ setup_efi_info(real_mode);
/* Default screen size */
real_mode->orig_x = 0;
--- kexec-tools.orig/kexec/arch/i386/crashdump-x86.c
+++ kexec-tools/kexec/arch/i386/crashdump-x86.c
@@ -41,6 +41,7 @@
#include "../../crashdump.h"
#include "kexec-x86.h"
#include "crashdump-x86.h"
+#include "x86-linux-setup.h"
#ifdef HAVE_LIBXENCTRL
#ifdef HAVE_XC_GET_MACHINE_MEMORY_MAP
@@ -1046,7 +1047,8 @@ int load_crashdump_segments(struct kexec
if (delete_memmap(memmap_p, elfcorehdr, memsz) < 0)
return -1;
cmdline_add_memmap(mod_cmdline, memmap_p);
- cmdline_add_efi(mod_cmdline);
+ if (!bzImage_support_efi_boot)
+ cmdline_add_efi(mod_cmdline);
cmdline_add_elfcorehdr(mod_cmdline, elfcorehdr);
/* Inform second kernel about the presence of ACPI tables. */
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.h
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.h
@@ -29,5 +29,6 @@ void setup_linux_system_parameters(struc
/* command line parameter may be appended by purgatory */
#define PURGATORY_CMDLINE_SIZE 64
+extern int bzImage_support_efi_boot;
#endif /* X86_LINUX_SETUP_H */
--- kexec-tools.orig/kexec/arch/x86_64/kexec-bzImage64.c
+++ kexec-tools/kexec/arch/x86_64/kexec-bzImage64.c
@@ -42,6 +42,7 @@
#include <arch/options.h>
static const int probe_debug = 0;
+int bzImage_support_efi_boot;
int bzImage64_probe(const char *buf, off_t len)
{
@@ -82,6 +83,11 @@ int bzImage64_probe(const char *buf, off
/* Must be KERNEL_64 and CAN_BE_LOADED_ABOVE_4G */
return -1;
}
+
+#define XLF_EFI_KEXEC (1 << 4)
+ if ((header->xloadflags & XLF_EFI_KEXEC) == XLF_EFI_KEXEC)
+ bzImage_support_efi_boot = 1;
+
/* I've got a relocatable bzImage64 */
if (probe_debug)
fprintf(stderr, "It's a relocatable bzImage64\n");
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 4/4 v3] Passing efi related data via setup_data
2013-11-21 6:40 ` dyoung
@ 2013-11-21 6:40 ` dyoung
-1 siblings, 0 replies; 28+ messages in thread
From: dyoung-H+wXaHxf7aLQT0dZR+AlfA @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
toshi.kani-VXdhtT5mjnY, matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
Dave Young, vgoyal-H+wXaHxf7aLQT0dZR+AlfA
[-- Attachment #1: 03-kexec-add-efi-setup-data.patch --]
[-- Type: text/plain, Size: 6504 bytes --]
For supporting efi runtime, several efi physical addresses
fw_vendor, runtime, config tables, smbios and the whole runtime
mapping info need to be used in kexec kernel. Thus introduce
setup_data struct for passing these data.
collect the varialbes from /sys/firmware/efi/systab and
/sys/firmware/efi/runtime-map
Tested on qemu+ovmf, dell laptop, lenovo laptop and HP workstation.
v1->v2:
HPA: use uint*_t instead of __uint*_t
Simon: indention fix; fix a memory leak
move offset change update to previous patch in setup header
only passing setup_data when the bzImage support efi boot
Vivek: export a value in bzImage probe so it can be used
to check if we should pass acpi_rsdp.
coding style
v2->v3:
code cleanup
bail out if efi mm desc_version != 1
bhe: define macro for SETUP_EFI
break loop if find matched string in systab.
Signed-off-by: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
kexec/arch/i386/x86-linux-setup.c | 189 +++++++++++++++++++++++++++++++++++++-
1 file changed, 186 insertions(+), 3 deletions(-)
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.c
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.c
@@ -36,6 +36,8 @@
#include "x86-linux-setup.h"
#include "../../kexec/kexec-syscall.h"
+#define SETUP_EFI 4
+
void init_linux_parameters(struct x86_linux_param_header *real_mode)
{
/* Fill in the values that are usually provided by the kernel. */
@@ -480,11 +482,192 @@ void setup_subarch(struct x86_linux_para
get_bootparam(&real_mode->hardware_subarch, offset, sizeof(uint32_t));
}
-static void setup_efi_info(struct x86_linux_param_header *real_mode)
+struct efi_mem_descriptor {
+ uint32_t type;
+ uint32_t pad;
+ uint64_t phys_addr;
+ uint64_t virt_addr;
+ uint64_t num_pages;
+ uint64_t attribute;
+};
+
+struct efi_setup_data {
+ uint64_t fw_vendor;
+ uint64_t runtime;
+ uint64_t tables;
+ uint64_t smbios;
+ uint64_t reserved[8];
+ struct efi_mem_descriptor map[0];
+};
+
+struct setup_data {
+ uint64_t next;
+ uint32_t type;
+ uint32_t len;
+ uint8_t data[0];
+} __attribute__((packed));
+
+static int __get_efi_value(char *line, const char *pattern, uint64_t *val)
+{
+ char *s, *end;
+ s = strstr(line, pattern);
+ if (s)
+ *val = strtoull(s + strlen(pattern), &end, 16);
+
+ if (!s || *val == ULONG_MAX)
+ return 1;
+ return 0;
+}
+
+static void _get_efi_value(const char *filename,
+ const char *pattern, uint64_t *val)
+{
+ FILE *fp;
+ char line[1024];
+ int ret;
+
+ fp = fopen(filename, "r");
+ if (!fp)
+ return;
+
+ while (fgets(line, sizeof(line), fp) != 0) {
+ ret = __get_efi_value(line, pattern, val);
+ if (!ret)
+ break;
+ }
+
+ fclose(fp);
+}
+
+static void get_efi_values(struct efi_setup_data *esd)
{
+ _get_efi_value("/sys/firmware/efi/systab", "SMBIOS=0x",
+ &esd->smbios);
+ _get_efi_value("/sys/firmware/efi/fw_vendor", "0x",
+ &esd->fw_vendor);
+ _get_efi_value("/sys/firmware/efi/runtime", "0x",
+ &esd->runtime);
+ _get_efi_value("/sys/firmware/efi/config_table", "0x",
+ &esd->tables);
+}
+
+static int get_efi_runtime_map(struct efi_setup_data **esd)
+{
+ DIR *dirp;
+ struct dirent *entry;
+ char filename[1024];
+ struct efi_mem_descriptor md;
+ int nr_maps = 0;
+
+ dirp = opendir("/sys/firmware/efi/runtime-map");
+ if (!dirp)
+ return 0;
+ while ((entry = readdir(dirp)) != NULL) {
+ sprintf(filename,
+ "/sys/firmware/efi/runtime-map/%s",
+ (char *)entry->d_name);
+ if (*entry->d_name == '.')
+ continue;
+ file_scanf(filename, "type", "0x%x", (unsigned int *)&md.type);
+ file_scanf(filename, "phys_addr", "0x%llx",
+ (unsigned long long *)&md.phys_addr);
+ file_scanf(filename, "virt_addr", "0x%llx",
+ (unsigned long long *)&md.virt_addr);
+ file_scanf(filename, "num_pages", "0x%llx",
+ (unsigned long long *)&md.num_pages);
+ file_scanf(filename, "attribute", "0x%llx",
+ (unsigned long long *)&md.attribute);
+ *esd = realloc(*esd, sizeof(struct efi_setup_data) +
+ (nr_maps + 1) * sizeof(struct efi_mem_descriptor));
+ *((*esd)->map + nr_maps) = md;
+ nr_maps++;
+ }
+
+ closedir(dirp);
+ return nr_maps;
+}
+
+static int setup_efi_setup_data(struct kexec_info *info,
+ struct x86_linux_param_header *real_mode)
+{
+ int nr_maps;
+ int64_t setup_data_paddr;
+ struct setup_data *sd;
+ struct efi_setup_data *esd;
+ int size, sdsize;
+ int has_efi = 0;
+
+ has_efi = access("/sys/firmware/efi/systab", F_OK);
+ if (has_efi < 0)
+ return 1;
+
+ esd = malloc(sizeof(struct efi_setup_data));
+ if (!esd)
+ return 1;
+ memset(esd, 0, sizeof(struct efi_setup_data));
+ get_efi_values(esd);
+ nr_maps = get_efi_runtime_map(&esd);
+ if (!nr_maps) {
+ free(esd);
+ return 1;
+ }
+ size = nr_maps * sizeof(struct efi_mem_descriptor) +
+ sizeof(struct efi_setup_data);
+ sd = malloc(sizeof(struct setup_data) + size);
+ if (!sd) {
+ free(esd);
+ return 1;
+ }
+
+ memset(sd, 0, sizeof(struct setup_data) + size);
+ sd->next = 0;
+ sd->type = SETUP_EFI;
+ sd->len = size;
+ memcpy(sd->data, esd, size);
+ free(esd);
+ sdsize = sd->len + sizeof(struct setup_data);
+ setup_data_paddr = add_buffer(info, sd, sdsize, sdsize, getpagesize(),
+ 0x100000, ULONG_MAX, INT_MAX);
+
+ real_mode->setup_data = setup_data_paddr;
+
+ return 0;
+}
+
+struct efi_info {
+ uint32_t pad[3];
+ uint32_t efi_memdesc_version;
+ uint32_t pad1[4];
+};
+
+static int
+get_efi_mem_desc_version(struct x86_linux_param_header *real_mode)
+{
+ struct efi_info *ei = (struct efi_info *)real_mode->efi_info;
+
+ return ei->efi_memdesc_version;
+}
+
+static void setup_efi_info(struct kexec_info *info,
+ struct x86_linux_param_header *real_mode)
+{
+ int ret, desc_version;
off_t offset = offsetof(typeof(*real_mode), efi_info);
- get_bootparam(&real_mode->efi_info, offset, 32);
+ ret = get_bootparam(&real_mode->efi_info, offset, 32);
+ if (ret)
+ return;
+ desc_version = get_efi_mem_desc_version(real_mode);
+ if (desc_version != 1) {
+ fprintf(stderr,
+ "efi memory descriptor version %d is not supported!\n",
+ desc_version);
+ memset(&real_mode->efi_info, 0, 32);
+ return;
+ }
+ ret = setup_efi_setup_data(info, real_mode);
+ if (ret)
+ memset(&real_mode->efi_info, 0, 32);
}
void setup_linux_system_parameters(struct kexec_info *info,
@@ -497,7 +680,7 @@ void setup_linux_system_parameters(struc
/* get subarch from running kernel */
setup_subarch(real_mode);
if (bzImage_support_efi_boot)
- setup_efi_info(real_mode);
+ setup_efi_info(info, real_mode);
/* Default screen size */
real_mode->orig_x = 0;
^ permalink raw reply [flat|nested] 28+ messages in thread
* [patch 4/4 v3] Passing efi related data via setup_data
@ 2013-11-21 6:40 ` dyoung
0 siblings, 0 replies; 28+ messages in thread
From: dyoung @ 2013-11-21 6:40 UTC (permalink / raw)
To: kexec
Cc: mjg59, linux-efi, toshi.kani, matt, greg, x86, James.Bottomley,
horms, bp, ebiederm, hpa, Dave Young, vgoyal
[-- Attachment #1: 03-kexec-add-efi-setup-data.patch --]
[-- Type: text/plain, Size: 6620 bytes --]
For supporting efi runtime, several efi physical addresses
fw_vendor, runtime, config tables, smbios and the whole runtime
mapping info need to be used in kexec kernel. Thus introduce
setup_data struct for passing these data.
collect the varialbes from /sys/firmware/efi/systab and
/sys/firmware/efi/runtime-map
Tested on qemu+ovmf, dell laptop, lenovo laptop and HP workstation.
v1->v2:
HPA: use uint*_t instead of __uint*_t
Simon: indention fix; fix a memory leak
move offset change update to previous patch in setup header
only passing setup_data when the bzImage support efi boot
Vivek: export a value in bzImage probe so it can be used
to check if we should pass acpi_rsdp.
coding style
v2->v3:
code cleanup
bail out if efi mm desc_version != 1
bhe: define macro for SETUP_EFI
break loop if find matched string in systab.
Signed-off-by: Dave Young <dyoung@redhat.com>
---
kexec/arch/i386/x86-linux-setup.c | 189 +++++++++++++++++++++++++++++++++++++-
1 file changed, 186 insertions(+), 3 deletions(-)
--- kexec-tools.orig/kexec/arch/i386/x86-linux-setup.c
+++ kexec-tools/kexec/arch/i386/x86-linux-setup.c
@@ -36,6 +36,8 @@
#include "x86-linux-setup.h"
#include "../../kexec/kexec-syscall.h"
+#define SETUP_EFI 4
+
void init_linux_parameters(struct x86_linux_param_header *real_mode)
{
/* Fill in the values that are usually provided by the kernel. */
@@ -480,11 +482,192 @@ void setup_subarch(struct x86_linux_para
get_bootparam(&real_mode->hardware_subarch, offset, sizeof(uint32_t));
}
-static void setup_efi_info(struct x86_linux_param_header *real_mode)
+struct efi_mem_descriptor {
+ uint32_t type;
+ uint32_t pad;
+ uint64_t phys_addr;
+ uint64_t virt_addr;
+ uint64_t num_pages;
+ uint64_t attribute;
+};
+
+struct efi_setup_data {
+ uint64_t fw_vendor;
+ uint64_t runtime;
+ uint64_t tables;
+ uint64_t smbios;
+ uint64_t reserved[8];
+ struct efi_mem_descriptor map[0];
+};
+
+struct setup_data {
+ uint64_t next;
+ uint32_t type;
+ uint32_t len;
+ uint8_t data[0];
+} __attribute__((packed));
+
+static int __get_efi_value(char *line, const char *pattern, uint64_t *val)
+{
+ char *s, *end;
+ s = strstr(line, pattern);
+ if (s)
+ *val = strtoull(s + strlen(pattern), &end, 16);
+
+ if (!s || *val == ULONG_MAX)
+ return 1;
+ return 0;
+}
+
+static void _get_efi_value(const char *filename,
+ const char *pattern, uint64_t *val)
+{
+ FILE *fp;
+ char line[1024];
+ int ret;
+
+ fp = fopen(filename, "r");
+ if (!fp)
+ return;
+
+ while (fgets(line, sizeof(line), fp) != 0) {
+ ret = __get_efi_value(line, pattern, val);
+ if (!ret)
+ break;
+ }
+
+ fclose(fp);
+}
+
+static void get_efi_values(struct efi_setup_data *esd)
{
+ _get_efi_value("/sys/firmware/efi/systab", "SMBIOS=0x",
+ &esd->smbios);
+ _get_efi_value("/sys/firmware/efi/fw_vendor", "0x",
+ &esd->fw_vendor);
+ _get_efi_value("/sys/firmware/efi/runtime", "0x",
+ &esd->runtime);
+ _get_efi_value("/sys/firmware/efi/config_table", "0x",
+ &esd->tables);
+}
+
+static int get_efi_runtime_map(struct efi_setup_data **esd)
+{
+ DIR *dirp;
+ struct dirent *entry;
+ char filename[1024];
+ struct efi_mem_descriptor md;
+ int nr_maps = 0;
+
+ dirp = opendir("/sys/firmware/efi/runtime-map");
+ if (!dirp)
+ return 0;
+ while ((entry = readdir(dirp)) != NULL) {
+ sprintf(filename,
+ "/sys/firmware/efi/runtime-map/%s",
+ (char *)entry->d_name);
+ if (*entry->d_name == '.')
+ continue;
+ file_scanf(filename, "type", "0x%x", (unsigned int *)&md.type);
+ file_scanf(filename, "phys_addr", "0x%llx",
+ (unsigned long long *)&md.phys_addr);
+ file_scanf(filename, "virt_addr", "0x%llx",
+ (unsigned long long *)&md.virt_addr);
+ file_scanf(filename, "num_pages", "0x%llx",
+ (unsigned long long *)&md.num_pages);
+ file_scanf(filename, "attribute", "0x%llx",
+ (unsigned long long *)&md.attribute);
+ *esd = realloc(*esd, sizeof(struct efi_setup_data) +
+ (nr_maps + 1) * sizeof(struct efi_mem_descriptor));
+ *((*esd)->map + nr_maps) = md;
+ nr_maps++;
+ }
+
+ closedir(dirp);
+ return nr_maps;
+}
+
+static int setup_efi_setup_data(struct kexec_info *info,
+ struct x86_linux_param_header *real_mode)
+{
+ int nr_maps;
+ int64_t setup_data_paddr;
+ struct setup_data *sd;
+ struct efi_setup_data *esd;
+ int size, sdsize;
+ int has_efi = 0;
+
+ has_efi = access("/sys/firmware/efi/systab", F_OK);
+ if (has_efi < 0)
+ return 1;
+
+ esd = malloc(sizeof(struct efi_setup_data));
+ if (!esd)
+ return 1;
+ memset(esd, 0, sizeof(struct efi_setup_data));
+ get_efi_values(esd);
+ nr_maps = get_efi_runtime_map(&esd);
+ if (!nr_maps) {
+ free(esd);
+ return 1;
+ }
+ size = nr_maps * sizeof(struct efi_mem_descriptor) +
+ sizeof(struct efi_setup_data);
+ sd = malloc(sizeof(struct setup_data) + size);
+ if (!sd) {
+ free(esd);
+ return 1;
+ }
+
+ memset(sd, 0, sizeof(struct setup_data) + size);
+ sd->next = 0;
+ sd->type = SETUP_EFI;
+ sd->len = size;
+ memcpy(sd->data, esd, size);
+ free(esd);
+ sdsize = sd->len + sizeof(struct setup_data);
+ setup_data_paddr = add_buffer(info, sd, sdsize, sdsize, getpagesize(),
+ 0x100000, ULONG_MAX, INT_MAX);
+
+ real_mode->setup_data = setup_data_paddr;
+
+ return 0;
+}
+
+struct efi_info {
+ uint32_t pad[3];
+ uint32_t efi_memdesc_version;
+ uint32_t pad1[4];
+};
+
+static int
+get_efi_mem_desc_version(struct x86_linux_param_header *real_mode)
+{
+ struct efi_info *ei = (struct efi_info *)real_mode->efi_info;
+
+ return ei->efi_memdesc_version;
+}
+
+static void setup_efi_info(struct kexec_info *info,
+ struct x86_linux_param_header *real_mode)
+{
+ int ret, desc_version;
off_t offset = offsetof(typeof(*real_mode), efi_info);
- get_bootparam(&real_mode->efi_info, offset, 32);
+ ret = get_bootparam(&real_mode->efi_info, offset, 32);
+ if (ret)
+ return;
+ desc_version = get_efi_mem_desc_version(real_mode);
+ if (desc_version != 1) {
+ fprintf(stderr,
+ "efi memory descriptor version %d is not supported!\n",
+ desc_version);
+ memset(&real_mode->efi_info, 0, 32);
+ return;
+ }
+ ret = setup_efi_setup_data(info, real_mode);
+ if (ret)
+ memset(&real_mode->efi_info, 0, 32);
}
void setup_linux_system_parameters(struct kexec_info *info,
@@ -497,7 +680,7 @@ void setup_linux_system_parameters(struc
/* get subarch from running kernel */
setup_subarch(real_mode);
if (bzImage_support_efi_boot)
- setup_efi_info(real_mode);
+ setup_efi_info(info, real_mode);
/* Default screen size */
real_mode->orig_x = 0;
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-21 6:40 ` dyoung
@ 2013-11-21 6:47 ` Dave Young
-1 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-21 6:47 UTC (permalink / raw)
To: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
toshi.kani-VXdhtT5mjnY, matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA
On 11/21/13 at 02:40pm, Dave Young wrote:
> Hi,
>
> This is the v3 patchset for adding efi runtime support on kexec kernel
> kernel patches was sent a while ago, not yet updated in archive.
Here it is:
https://lkml.org/lkml/2013/11/21/22
>
> in kexec-tools, this patchset will do below:
> 1. retrieve efi_info from sysfs boot_params, and fill the
> x86 setup header. If kernel does not export sysfs boot_params,
> still try to find them in debugfs.
>
> 2. collect data efi runtime needed:
> /sys/firmware/efi/systab: smbios
> /sys/firmware/efi/fw_vendor
> /sys/firmware/efi/runtime
> /sys/firmware/efi/config_table
>
> /sys/firmware/efi/runtime-map/*, the phys-virt mappings in 1st kernel
>
> 3. assemble setup_data based on data get in 2) then pass it to 2nd kernel
>
> Tested on OVMF, dell laptop, lenovo laptop and HP workstation
>
> TODO: add functions for easily adding setup_data, arrange them as link list
> because we probably will add e820 memory ranges as setup_data as well.
> I do not prefer to bloat this patchset anymore, so I'd likt to address this
> issue after the efi runtime issue finished unless people request.
>
> V2 changelog:
> Address comments from
> Simon:
> coding style, fixed a mem leak
> HPA:
> use type uint64_t instead of __uint64_t
> mjg:
> do not cause regression for loading old kernel
> use xloadflags to check the bzImage support for efi.
> in case old kernel, do not pass efi_info and setup_data
> for new kernel, do not pass acpi_rsdp
> Vivek:
> suggest to export a value in bzImage probe for efi support
> so it can be used to check if we should pass acpi_rsdp.
>
> V3 changelog:
> 01/04: new patch of a building fix
> try sysfs firstly for boot params
> add checking of efi memory range description version, bail out if it's not 1
> error handling improvement and some cleanups
>
> --
> Thanks
> Dave
>
> _______________________________________________
> kexec mailing list
> kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
> http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-21 6:47 ` Dave Young
0 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-21 6:47 UTC (permalink / raw)
To: kexec
Cc: mjg59, linux-efi, toshi.kani, matt, greg, x86, James.Bottomley,
horms, bp, ebiederm, hpa, vgoyal
On 11/21/13 at 02:40pm, Dave Young wrote:
> Hi,
>
> This is the v3 patchset for adding efi runtime support on kexec kernel
> kernel patches was sent a while ago, not yet updated in archive.
Here it is:
https://lkml.org/lkml/2013/11/21/22
>
> in kexec-tools, this patchset will do below:
> 1. retrieve efi_info from sysfs boot_params, and fill the
> x86 setup header. If kernel does not export sysfs boot_params,
> still try to find them in debugfs.
>
> 2. collect data efi runtime needed:
> /sys/firmware/efi/systab: smbios
> /sys/firmware/efi/fw_vendor
> /sys/firmware/efi/runtime
> /sys/firmware/efi/config_table
>
> /sys/firmware/efi/runtime-map/*, the phys-virt mappings in 1st kernel
>
> 3. assemble setup_data based on data get in 2) then pass it to 2nd kernel
>
> Tested on OVMF, dell laptop, lenovo laptop and HP workstation
>
> TODO: add functions for easily adding setup_data, arrange them as link list
> because we probably will add e820 memory ranges as setup_data as well.
> I do not prefer to bloat this patchset anymore, so I'd likt to address this
> issue after the efi runtime issue finished unless people request.
>
> V2 changelog:
> Address comments from
> Simon:
> coding style, fixed a mem leak
> HPA:
> use type uint64_t instead of __uint64_t
> mjg:
> do not cause regression for loading old kernel
> use xloadflags to check the bzImage support for efi.
> in case old kernel, do not pass efi_info and setup_data
> for new kernel, do not pass acpi_rsdp
> Vivek:
> suggest to export a value in bzImage probe for efi support
> so it can be used to check if we should pass acpi_rsdp.
>
> V3 changelog:
> 01/04: new patch of a building fix
> try sysfs firstly for boot params
> add checking of efi memory range description version, bail out if it's not 1
> error handling improvement and some cleanups
>
> --
> Thanks
> Dave
>
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-21 6:40 ` dyoung
@ 2013-11-22 22:30 ` Toshi Kani
-1 siblings, 0 replies; 28+ messages in thread
From: Toshi Kani @ 2013-11-22 22:30 UTC (permalink / raw)
To: dyoung-H+wXaHxf7aLQT0dZR+AlfA
Cc: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A,
mjg59-1xO5oi07KQx4cg9Nei1l7Q, hpa-YMNOUZJC4hwAvxtiuMwx3w,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
greg-U8xfFu+wG4EAvxtiuMwx3w,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy
On Thu, 2013-11-21 at 14:40 +0800, dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org wrote:
> Hi,
>
> This is the v3 patchset for adding efi runtime support on kexec kernel
> kernel patches was sent a while ago, not yet updated in archive.
>
> in kexec-tools, this patchset will do below:
> 1. retrieve efi_info from sysfs boot_params, and fill the
> x86 setup header. If kernel does not export sysfs boot_params,
> still try to find them in debugfs.
>
> 2. collect data efi runtime needed:
> /sys/firmware/efi/systab: smbios
> /sys/firmware/efi/fw_vendor
> /sys/firmware/efi/runtime
> /sys/firmware/efi/config_table
>
> /sys/firmware/efi/runtime-map/*, the phys-virt mappings in 1st kernel
>
> 3. assemble setup_data based on data get in 2) then pass it to 2nd kernel
>
> Tested on OVMF, dell laptop, lenovo laptop and HP workstation
Tested on an HP EFI-based 60-way server (prototype). For the series:
Tested-by: Toshi Kani <toshi.kani-VXdhtT5mjnY@public.gmane.org>
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-22 22:30 ` Toshi Kani
0 siblings, 0 replies; 28+ messages in thread
From: Toshi Kani @ 2013-11-22 22:30 UTC (permalink / raw)
To: dyoung
Cc: mjg59, linux-efi, matt, greg, x86, kexec, James.Bottomley, horms,
bp, ebiederm, hpa, vgoyal
On Thu, 2013-11-21 at 14:40 +0800, dyoung@redhat.com wrote:
> Hi,
>
> This is the v3 patchset for adding efi runtime support on kexec kernel
> kernel patches was sent a while ago, not yet updated in archive.
>
> in kexec-tools, this patchset will do below:
> 1. retrieve efi_info from sysfs boot_params, and fill the
> x86 setup header. If kernel does not export sysfs boot_params,
> still try to find them in debugfs.
>
> 2. collect data efi runtime needed:
> /sys/firmware/efi/systab: smbios
> /sys/firmware/efi/fw_vendor
> /sys/firmware/efi/runtime
> /sys/firmware/efi/config_table
>
> /sys/firmware/efi/runtime-map/*, the phys-virt mappings in 1st kernel
>
> 3. assemble setup_data based on data get in 2) then pass it to 2nd kernel
>
> Tested on OVMF, dell laptop, lenovo laptop and HP workstation
Tested on an HP EFI-based 60-way server (prototype). For the series:
Tested-by: Toshi Kani <toshi.kani@hp.com>
Thanks,
-Toshi
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-22 22:30 ` Toshi Kani
@ 2013-11-24 3:12 ` Dave Young
-1 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-24 3:12 UTC (permalink / raw)
To: Toshi Kani
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA
On 11/22/13 at 03:30pm, Toshi Kani wrote:
> On Thu, 2013-11-21 at 14:40 +0800, dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org wrote:
> > Hi,
> >
> > This is the v3 patchset for adding efi runtime support on kexec kernel
> > kernel patches was sent a while ago, not yet updated in archive.
> >
> > in kexec-tools, this patchset will do below:
> > 1. retrieve efi_info from sysfs boot_params, and fill the
> > x86 setup header. If kernel does not export sysfs boot_params,
> > still try to find them in debugfs.
> >
> > 2. collect data efi runtime needed:
> > /sys/firmware/efi/systab: smbios
> > /sys/firmware/efi/fw_vendor
> > /sys/firmware/efi/runtime
> > /sys/firmware/efi/config_table
> >
> > /sys/firmware/efi/runtime-map/*, the phys-virt mappings in 1st kernel
> >
> > 3. assemble setup_data based on data get in 2) then pass it to 2nd kernel
> >
> > Tested on OVMF, dell laptop, lenovo laptop and HP workstation
>
> Tested on an HP EFI-based 60-way server (prototype). For the series:
Hi, Toshi
Thanks for the testing, during my own testing this weekend I found two
issues I need to fix and improve:
1. print original memmap #ifdef EFI_DEBUG does not make sense, will add
a patch to only print runtime maps we saved in case kexec.
2. move e820_reserve_setup_data late after parse early param and setup
the runtime mapping, otherwise kdump kernel will complains about
ioremap a normal ram region.
3. should change the phys_to_virt to ioremap in parse_efi_setup, also
should fix the arch/x86/kernel/kdebugfs.c, move __va to ioremap as
well, because kexec does not works for using memmap=exactmap in
1st kernel, bug like below:
[ 0.153726] BUG: unable to handle kernel paging request at ffff880000100008
[ 0.156666] IP: [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
[ 0.156666] PGD 7e149067 PUD 7e14a067 PMD 7e14b067 PTE 0
[ 0.156666] Oops: 0000 [#1] PREEMPT SMP
[ 0.156666] Modules linked in:
[ 0.156666] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.12.0+ #103
[ 0.156666] task: ffff880037032000 ti: ffff88003706a000 task.ti: ffff88003706a000
[ 0.156666] RIP: 0010:[<ffffffff817beb54>] [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
[ 0.156666] RSP: 0000:ffff88003706be30 EFLAGS: 00010286
[ 0.156666] RAX: ffff880037002a00 RBX: ffff880037002a00 RCX: 0000000000000b90
[ 0.156666] RDX: 0000000000000000 RSI: ffffffff81673a10 RDI: ffff88003706be50
[ 0.156666] RBP: ffff88003706be90 R08: ffff880037002a00 R09: ffff880037002a10
[ 0.156666] R10: 0000000000000000 R11: ffffffff817beb2a R12: ffff8800364033e0
[ 0.156666] R13: 0000000000100000 R14: ffff880036403000 R15: ffff880000100000
[ 0.156666] FS: 0000000000000000(0000) GS:ffff880037400000(0000) knlGS:0000000000000000
[ 0.156666] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 0.156666] CR2: ffff880000100008 CR3: 000000007d6fb000 CR4: 00000000000006f0
[ 0.156666] Stack:
[ 0.156666] ffffffff8176b0b0 ffff8800364030f8 ffff8800364031f0 0000000000000000
[ 0.156666] ffff88003706be60 ffffffff8148e41d 00000000733b54fc ffffffff817bea3a
[ 0.156666] ffffffff81868d90 0000000000000000 0000000000000000 0000000000000000
[ 0.156666] Call Trace:
[ 0.156666] [<ffffffff8148e41d>] ? mutex_unlock+0x9/0xb
[ 0.156666] [<ffffffff817bea3a>] ? topology_init+0x36/0x36
[ 0.156666] [<ffffffff81000296>] do_one_initcall+0xae/0x158
[ 0.156666] [<ffffffff8107750a>] ? parameq+0x1d/0x1f
[ 0.156666] [<ffffffff81077768>] ? parse_args+0x25c/0x33a
[ 0.156666] [<ffffffff817b8e96>] kernel_init_freeable+0x115/0x19b
[ 0.156666] [<ffffffff817b873d>] ? do_early_param+0x88/0x88
[ 0.156666] [<ffffffff8147bfa9>] ? rest_init+0xbd/0xbd
[ 0.156666] [<ffffffff8147bfb2>] kernel_init+0x9/0xcc
[ 0.156666] [<ffffffff81491d8c>] ret_from_fork+0x7c/0xb0
[ 0.156666] [<ffffffff8147bfa9>] ? rest_init+0xbd/0xbd
[ 0.156666] Code: ff 48 85 c0 48 89 c3 0f 84 b9 00 00 00 49 bf 00 00 00 00 00 88 ff ff 4c 89 28 8b 55 bc 48 8d 7d c0 4d 01 ef 48 c7 c6 10 3a 67 81 <41> 8b 47 08 89 43 08 41 8b 47 0c 89 43 0c 31 c0 e8 2c 50 a7 ff
[ 0.156666] RIP [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
[ 0.156666] RSP <ffff88003706be30>
[ 0.156666] CR2: ffff880000100008
[ 0.156666] ---[ end trace 2c6f39ce0b3f50b3 ]---
[ 0.156738] swapper/0 (1) used greatest stack depth: 5240 bytes left
[ 0.160061] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
[ 0.160061]
I think these should be all the remain issue, I will fix them in next version.
Appreciate your testing.
Thanks
Dave
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-24 3:12 ` Dave Young
0 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-24 3:12 UTC (permalink / raw)
To: Toshi Kani
Cc: mjg59, linux-efi, matt, greg, x86, kexec, James.Bottomley, horms,
bp, ebiederm, hpa, vgoyal
On 11/22/13 at 03:30pm, Toshi Kani wrote:
> On Thu, 2013-11-21 at 14:40 +0800, dyoung@redhat.com wrote:
> > Hi,
> >
> > This is the v3 patchset for adding efi runtime support on kexec kernel
> > kernel patches was sent a while ago, not yet updated in archive.
> >
> > in kexec-tools, this patchset will do below:
> > 1. retrieve efi_info from sysfs boot_params, and fill the
> > x86 setup header. If kernel does not export sysfs boot_params,
> > still try to find them in debugfs.
> >
> > 2. collect data efi runtime needed:
> > /sys/firmware/efi/systab: smbios
> > /sys/firmware/efi/fw_vendor
> > /sys/firmware/efi/runtime
> > /sys/firmware/efi/config_table
> >
> > /sys/firmware/efi/runtime-map/*, the phys-virt mappings in 1st kernel
> >
> > 3. assemble setup_data based on data get in 2) then pass it to 2nd kernel
> >
> > Tested on OVMF, dell laptop, lenovo laptop and HP workstation
>
> Tested on an HP EFI-based 60-way server (prototype). For the series:
Hi, Toshi
Thanks for the testing, during my own testing this weekend I found two
issues I need to fix and improve:
1. print original memmap #ifdef EFI_DEBUG does not make sense, will add
a patch to only print runtime maps we saved in case kexec.
2. move e820_reserve_setup_data late after parse early param and setup
the runtime mapping, otherwise kdump kernel will complains about
ioremap a normal ram region.
3. should change the phys_to_virt to ioremap in parse_efi_setup, also
should fix the arch/x86/kernel/kdebugfs.c, move __va to ioremap as
well, because kexec does not works for using memmap=exactmap in
1st kernel, bug like below:
[ 0.153726] BUG: unable to handle kernel paging request at ffff880000100008
[ 0.156666] IP: [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
[ 0.156666] PGD 7e149067 PUD 7e14a067 PMD 7e14b067 PTE 0
[ 0.156666] Oops: 0000 [#1] PREEMPT SMP
[ 0.156666] Modules linked in:
[ 0.156666] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.12.0+ #103
[ 0.156666] task: ffff880037032000 ti: ffff88003706a000 task.ti: ffff88003706a000
[ 0.156666] RIP: 0010:[<ffffffff817beb54>] [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
[ 0.156666] RSP: 0000:ffff88003706be30 EFLAGS: 00010286
[ 0.156666] RAX: ffff880037002a00 RBX: ffff880037002a00 RCX: 0000000000000b90
[ 0.156666] RDX: 0000000000000000 RSI: ffffffff81673a10 RDI: ffff88003706be50
[ 0.156666] RBP: ffff88003706be90 R08: ffff880037002a00 R09: ffff880037002a10
[ 0.156666] R10: 0000000000000000 R11: ffffffff817beb2a R12: ffff8800364033e0
[ 0.156666] R13: 0000000000100000 R14: ffff880036403000 R15: ffff880000100000
[ 0.156666] FS: 0000000000000000(0000) GS:ffff880037400000(0000) knlGS:0000000000000000
[ 0.156666] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 0.156666] CR2: ffff880000100008 CR3: 000000007d6fb000 CR4: 00000000000006f0
[ 0.156666] Stack:
[ 0.156666] ffffffff8176b0b0 ffff8800364030f8 ffff8800364031f0 0000000000000000
[ 0.156666] ffff88003706be60 ffffffff8148e41d 00000000733b54fc ffffffff817bea3a
[ 0.156666] ffffffff81868d90 0000000000000000 0000000000000000 0000000000000000
[ 0.156666] Call Trace:
[ 0.156666] [<ffffffff8148e41d>] ? mutex_unlock+0x9/0xb
[ 0.156666] [<ffffffff817bea3a>] ? topology_init+0x36/0x36
[ 0.156666] [<ffffffff81000296>] do_one_initcall+0xae/0x158
[ 0.156666] [<ffffffff8107750a>] ? parameq+0x1d/0x1f
[ 0.156666] [<ffffffff81077768>] ? parse_args+0x25c/0x33a
[ 0.156666] [<ffffffff817b8e96>] kernel_init_freeable+0x115/0x19b
[ 0.156666] [<ffffffff817b873d>] ? do_early_param+0x88/0x88
[ 0.156666] [<ffffffff8147bfa9>] ? rest_init+0xbd/0xbd
[ 0.156666] [<ffffffff8147bfb2>] kernel_init+0x9/0xcc
[ 0.156666] [<ffffffff81491d8c>] ret_from_fork+0x7c/0xb0
[ 0.156666] [<ffffffff8147bfa9>] ? rest_init+0xbd/0xbd
[ 0.156666] Code: ff 48 85 c0 48 89 c3 0f 84 b9 00 00 00 49 bf 00 00 00 00 00 88 ff ff 4c 89 28 8b 55 bc 48 8d 7d c0 4d 01 ef 48 c7 c6 10 3a 67 81 <41> 8b 47 08 89 43 08 41 8b 47 0c 89 43 0c 31 c0 e8 2c 50 a7 ff
[ 0.156666] RIP [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
[ 0.156666] RSP <ffff88003706be30>
[ 0.156666] CR2: ffff880000100008
[ 0.156666] ---[ end trace 2c6f39ce0b3f50b3 ]---
[ 0.156738] swapper/0 (1) used greatest stack depth: 5240 bytes left
[ 0.160061] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
[ 0.160061]
I think these should be all the remain issue, I will fix them in next version.
Appreciate your testing.
Thanks
Dave
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-24 3:12 ` Dave Young
@ 2013-11-25 15:30 ` Toshi Kani
-1 siblings, 0 replies; 28+ messages in thread
From: Toshi Kani @ 2013-11-25 15:30 UTC (permalink / raw)
To: Dave Young
Cc: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A,
mjg59-1xO5oi07KQx4cg9Nei1l7Q, hpa-YMNOUZJC4hwAvxtiuMwx3w,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
greg-U8xfFu+wG4EAvxtiuMwx3w,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy
On Sun, 2013-11-24 at 11:12 +0800, Dave Young wrote:
> Hi, Toshi
>
> Thanks for the testing, during my own testing this weekend I found two
> issues I need to fix and improve:
> 1. print original memmap #ifdef EFI_DEBUG does not make sense, will add
> a patch to only print runtime maps we saved in case kexec.
>
> 2. move e820_reserve_setup_data late after parse early param and setup
> the runtime mapping, otherwise kdump kernel will complains about
> ioremap a normal ram region.
>
> 3. should change the phys_to_virt to ioremap in parse_efi_setup, also
> should fix the arch/x86/kernel/kdebugfs.c, move __va to ioremap as
> well, because kexec does not works for using memmap=exactmap in
> 1st kernel, bug like below:
>
> [ 0.153726] BUG: unable to handle kernel paging request at ffff880000100008
> [ 0.156666] IP: [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
> [ 0.156666] PGD 7e149067 PUD 7e14a067 PMD 7e14b067 PTE 0
> [ 0.156666] Oops: 0000 [#1] PREEMPT SMP
> [ 0.156666] Modules linked in:
> [ 0.156666] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.12.0+ #103
> [ 0.156666] task: ffff880037032000 ti: ffff88003706a000 task.ti: ffff88003706a000
> [ 0.156666] RIP: 0010:[<ffffffff817beb54>] [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
> [ 0.156666] RSP: 0000:ffff88003706be30 EFLAGS: 00010286
> [ 0.156666] RAX: ffff880037002a00 RBX: ffff880037002a00 RCX: 0000000000000b90
> [ 0.156666] RDX: 0000000000000000 RSI: ffffffff81673a10 RDI: ffff88003706be50
> [ 0.156666] RBP: ffff88003706be90 R08: ffff880037002a00 R09: ffff880037002a10
> [ 0.156666] R10: 0000000000000000 R11: ffffffff817beb2a R12: ffff8800364033e0
> [ 0.156666] R13: 0000000000100000 R14: ffff880036403000 R15: ffff880000100000
> [ 0.156666] FS: 0000000000000000(0000) GS:ffff880037400000(0000) knlGS:0000000000000000
> [ 0.156666] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 0.156666] CR2: ffff880000100008 CR3: 000000007d6fb000 CR4: 00000000000006f0
> [ 0.156666] Stack:
> [ 0.156666] ffffffff8176b0b0 ffff8800364030f8 ffff8800364031f0 0000000000000000
> [ 0.156666] ffff88003706be60 ffffffff8148e41d 00000000733b54fc ffffffff817bea3a
> [ 0.156666] ffffffff81868d90 0000000000000000 0000000000000000 0000000000000000
> [ 0.156666] Call Trace:
> [ 0.156666] [<ffffffff8148e41d>] ? mutex_unlock+0x9/0xb
> [ 0.156666] [<ffffffff817bea3a>] ? topology_init+0x36/0x36
> [ 0.156666] [<ffffffff81000296>] do_one_initcall+0xae/0x158
> [ 0.156666] [<ffffffff8107750a>] ? parameq+0x1d/0x1f
> [ 0.156666] [<ffffffff81077768>] ? parse_args+0x25c/0x33a
> [ 0.156666] [<ffffffff817b8e96>] kernel_init_freeable+0x115/0x19b
> [ 0.156666] [<ffffffff817b873d>] ? do_early_param+0x88/0x88
> [ 0.156666] [<ffffffff8147bfa9>] ? rest_init+0xbd/0xbd
> [ 0.156666] [<ffffffff8147bfb2>] kernel_init+0x9/0xcc
> [ 0.156666] [<ffffffff81491d8c>] ret_from_fork+0x7c/0xb0
> [ 0.156666] [<ffffffff8147bfa9>] ? rest_init+0xbd/0xbd
> [ 0.156666] Code: ff 48 85 c0 48 89 c3 0f 84 b9 00 00 00 49 bf 00 00 00 00 00 88 ff ff 4c 89 28 8b 55 bc 48 8d 7d c0 4d 01 ef 48 c7 c6 10 3a 67 81 <41> 8b 47 08 89 43 08 41 8b 47 0c 89 43 0c 31 c0 e8 2c 50 a7 ff
> [ 0.156666] RIP [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
> [ 0.156666] RSP <ffff88003706be30>
> [ 0.156666] CR2: ffff880000100008
> [ 0.156666] ---[ end trace 2c6f39ce0b3f50b3 ]---
> [ 0.156738] swapper/0 (1) used greatest stack depth: 5240 bytes left
> [ 0.160061] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
> [ 0.160061]
>
>
> I think these should be all the remain issue, I will fix them in next version.
> Appreciate your testing.
HI Dave,
I will test v4 again. This time, I will test "memmap=exactmap" option
as well. I have tested the following cases before. Are there any other
cases you'd like me to test?
- kdump
- multiple fast reboots and then kdump
- old kexec and new kernel w/ noefi & acpi_rsdp option
- new kexec and old kernel w/ noefi & acpi_rsdp option
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-25 15:30 ` Toshi Kani
0 siblings, 0 replies; 28+ messages in thread
From: Toshi Kani @ 2013-11-25 15:30 UTC (permalink / raw)
To: Dave Young
Cc: mjg59, linux-efi, matt, greg, x86, kexec, James.Bottomley, horms,
bp, ebiederm, hpa, vgoyal
On Sun, 2013-11-24 at 11:12 +0800, Dave Young wrote:
> Hi, Toshi
>
> Thanks for the testing, during my own testing this weekend I found two
> issues I need to fix and improve:
> 1. print original memmap #ifdef EFI_DEBUG does not make sense, will add
> a patch to only print runtime maps we saved in case kexec.
>
> 2. move e820_reserve_setup_data late after parse early param and setup
> the runtime mapping, otherwise kdump kernel will complains about
> ioremap a normal ram region.
>
> 3. should change the phys_to_virt to ioremap in parse_efi_setup, also
> should fix the arch/x86/kernel/kdebugfs.c, move __va to ioremap as
> well, because kexec does not works for using memmap=exactmap in
> 1st kernel, bug like below:
>
> [ 0.153726] BUG: unable to handle kernel paging request at ffff880000100008
> [ 0.156666] IP: [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
> [ 0.156666] PGD 7e149067 PUD 7e14a067 PMD 7e14b067 PTE 0
> [ 0.156666] Oops: 0000 [#1] PREEMPT SMP
> [ 0.156666] Modules linked in:
> [ 0.156666] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.12.0+ #103
> [ 0.156666] task: ffff880037032000 ti: ffff88003706a000 task.ti: ffff88003706a000
> [ 0.156666] RIP: 0010:[<ffffffff817beb54>] [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
> [ 0.156666] RSP: 0000:ffff88003706be30 EFLAGS: 00010286
> [ 0.156666] RAX: ffff880037002a00 RBX: ffff880037002a00 RCX: 0000000000000b90
> [ 0.156666] RDX: 0000000000000000 RSI: ffffffff81673a10 RDI: ffff88003706be50
> [ 0.156666] RBP: ffff88003706be90 R08: ffff880037002a00 R09: ffff880037002a10
> [ 0.156666] R10: 0000000000000000 R11: ffffffff817beb2a R12: ffff8800364033e0
> [ 0.156666] R13: 0000000000100000 R14: ffff880036403000 R15: ffff880000100000
> [ 0.156666] FS: 0000000000000000(0000) GS:ffff880037400000(0000) knlGS:0000000000000000
> [ 0.156666] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 0.156666] CR2: ffff880000100008 CR3: 000000007d6fb000 CR4: 00000000000006f0
> [ 0.156666] Stack:
> [ 0.156666] ffffffff8176b0b0 ffff8800364030f8 ffff8800364031f0 0000000000000000
> [ 0.156666] ffff88003706be60 ffffffff8148e41d 00000000733b54fc ffffffff817bea3a
> [ 0.156666] ffffffff81868d90 0000000000000000 0000000000000000 0000000000000000
> [ 0.156666] Call Trace:
> [ 0.156666] [<ffffffff8148e41d>] ? mutex_unlock+0x9/0xb
> [ 0.156666] [<ffffffff817bea3a>] ? topology_init+0x36/0x36
> [ 0.156666] [<ffffffff81000296>] do_one_initcall+0xae/0x158
> [ 0.156666] [<ffffffff8107750a>] ? parameq+0x1d/0x1f
> [ 0.156666] [<ffffffff81077768>] ? parse_args+0x25c/0x33a
> [ 0.156666] [<ffffffff817b8e96>] kernel_init_freeable+0x115/0x19b
> [ 0.156666] [<ffffffff817b873d>] ? do_early_param+0x88/0x88
> [ 0.156666] [<ffffffff8147bfa9>] ? rest_init+0xbd/0xbd
> [ 0.156666] [<ffffffff8147bfb2>] kernel_init+0x9/0xcc
> [ 0.156666] [<ffffffff81491d8c>] ret_from_fork+0x7c/0xb0
> [ 0.156666] [<ffffffff8147bfa9>] ? rest_init+0xbd/0xbd
> [ 0.156666] Code: ff 48 85 c0 48 89 c3 0f 84 b9 00 00 00 49 bf 00 00 00 00 00 88 ff ff 4c 89 28 8b 55 bc 48 8d 7d c0 4d 01 ef 48 c7 c6 10 3a 67 81 <41> 8b 47 08 89 43 08 41 8b 47 0c 89 43 0c 31 c0 e8 2c 50 a7 ff
> [ 0.156666] RIP [<ffffffff817beb54>] arch_kdebugfs_init+0x11a/0x201
> [ 0.156666] RSP <ffff88003706be30>
> [ 0.156666] CR2: ffff880000100008
> [ 0.156666] ---[ end trace 2c6f39ce0b3f50b3 ]---
> [ 0.156738] swapper/0 (1) used greatest stack depth: 5240 bytes left
> [ 0.160061] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
> [ 0.160061]
>
>
> I think these should be all the remain issue, I will fix them in next version.
> Appreciate your testing.
HI Dave,
I will test v4 again. This time, I will test "memmap=exactmap" option
as well. I have tested the following cases before. Are there any other
cases you'd like me to test?
- kdump
- multiple fast reboots and then kdump
- old kexec and new kernel w/ noefi & acpi_rsdp option
- new kexec and old kernel w/ noefi & acpi_rsdp option
Thanks,
-Toshi
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-25 15:30 ` Toshi Kani
@ 2013-11-26 6:11 ` Dave Young
-1 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-26 6:11 UTC (permalink / raw)
To: Toshi Kani
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA
Hi, Toshi
On 11/25/13 at 08:30am, Toshi Kani wrote:
> HI Dave,
>
> I will test v4 again. This time, I will test "memmap=exactmap" option
> as well. I have tested the following cases before. Are there any other
> cases you'd like me to test?
>
> - kdump
> - multiple fast reboots and then kdump
> - old kexec and new kernel w/ noefi & acpi_rsdp option
> - new kexec and old kernel w/ noefi & acpi_rsdp option
There's one more test case is w/ debugfs mounted in 1st kernel due to the
new version exports setup_data to sysfs.
For the exactmap I think it's a corner case, I just tested it in virtual
machine I think setup a right cmdline is hard. But feel free to test it if
you can.
Thanks
Dave
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-26 6:11 ` Dave Young
0 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-26 6:11 UTC (permalink / raw)
To: Toshi Kani
Cc: mjg59, linux-efi, matt, greg, x86, kexec, James.Bottomley, horms,
bp, ebiederm, hpa, vgoyal
Hi, Toshi
On 11/25/13 at 08:30am, Toshi Kani wrote:
> HI Dave,
>
> I will test v4 again. This time, I will test "memmap=exactmap" option
> as well. I have tested the following cases before. Are there any other
> cases you'd like me to test?
>
> - kdump
> - multiple fast reboots and then kdump
> - old kexec and new kernel w/ noefi & acpi_rsdp option
> - new kexec and old kernel w/ noefi & acpi_rsdp option
There's one more test case is w/ debugfs mounted in 1st kernel due to the
new version exports setup_data to sysfs.
For the exactmap I think it's a corner case, I just tested it in virtual
machine I think setup a right cmdline is hard. But feel free to test it if
you can.
Thanks
Dave
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-26 6:11 ` Dave Young
@ 2013-11-26 15:59 ` Toshi Kani
-1 siblings, 0 replies; 28+ messages in thread
From: Toshi Kani @ 2013-11-26 15:59 UTC (permalink / raw)
To: Dave Young
Cc: kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A,
mjg59-1xO5oi07KQx4cg9Nei1l7Q, hpa-YMNOUZJC4hwAvxtiuMwx3w,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
greg-U8xfFu+wG4EAvxtiuMwx3w,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy
On Tue, 2013-11-26 at 14:11 +0800, Dave Young wrote:
> On 11/25/13 at 08:30am, Toshi Kani wrote:
> > HI Dave,
> >
> > I will test v4 again. This time, I will test "memmap=exactmap" option
> > as well. I have tested the following cases before. Are there any other
> > cases you'd like me to test?
> >
> > - kdump
> > - multiple fast reboots and then kdump
> > - old kexec and new kernel w/ noefi & acpi_rsdp option
> > - new kexec and old kernel w/ noefi & acpi_rsdp option
Retested the above cases with v4 patchset.
> There's one more test case is w/ debugfs mounted in 1st kernel due to the
> new version exports setup_data to sysfs.
Tested w/ debugfs mounted.
> For the exactmap I think it's a corner case, I just tested it in virtual
> machine I think setup a right cmdline is hard. But feel free to test it if
> you can.
Tested with exactmap for multiple fast reboots. I was not able to setup
kdump properly with this case, but it's not related with your changes
since I was not able to do it without your changes, either.
Feel free to add my tested-by.
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-26 15:59 ` Toshi Kani
0 siblings, 0 replies; 28+ messages in thread
From: Toshi Kani @ 2013-11-26 15:59 UTC (permalink / raw)
To: Dave Young
Cc: mjg59, linux-efi, matt, greg, x86, kexec, James.Bottomley, horms,
bp, ebiederm, hpa, vgoyal
On Tue, 2013-11-26 at 14:11 +0800, Dave Young wrote:
> On 11/25/13 at 08:30am, Toshi Kani wrote:
> > HI Dave,
> >
> > I will test v4 again. This time, I will test "memmap=exactmap" option
> > as well. I have tested the following cases before. Are there any other
> > cases you'd like me to test?
> >
> > - kdump
> > - multiple fast reboots and then kdump
> > - old kexec and new kernel w/ noefi & acpi_rsdp option
> > - new kexec and old kernel w/ noefi & acpi_rsdp option
Retested the above cases with v4 patchset.
> There's one more test case is w/ debugfs mounted in 1st kernel due to the
> new version exports setup_data to sysfs.
Tested w/ debugfs mounted.
> For the exactmap I think it's a corner case, I just tested it in virtual
> machine I think setup a right cmdline is hard. But feel free to test it if
> you can.
Tested with exactmap for multiple fast reboots. I was not able to setup
kdump properly with this case, but it's not related with your changes
since I was not able to do it without your changes, either.
Feel free to add my tested-by.
Thanks,
-Toshi
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-26 15:59 ` Toshi Kani
@ 2013-11-27 9:29 ` Dave Young
-1 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-27 9:29 UTC (permalink / raw)
To: Toshi Kani
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, bp-Gina5bIWoIWzQB+pC5nmwQ,
ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA
On 11/26/13 at 08:59am, Toshi Kani wrote:
> On Tue, 2013-11-26 at 14:11 +0800, Dave Young wrote:
> > On 11/25/13 at 08:30am, Toshi Kani wrote:
> > > HI Dave,
> > >
> > > I will test v4 again. This time, I will test "memmap=exactmap" option
> > > as well. I have tested the following cases before. Are there any other
> > > cases you'd like me to test?
> > >
> > > - kdump
> > > - multiple fast reboots and then kdump
> > > - old kexec and new kernel w/ noefi & acpi_rsdp option
> > > - new kexec and old kernel w/ noefi & acpi_rsdp option
>
> Retested the above cases with v4 patchset.
>
> > There's one more test case is w/ debugfs mounted in 1st kernel due to the
> > new version exports setup_data to sysfs.
>
> Tested w/ debugfs mounted.
>
> > For the exactmap I think it's a corner case, I just tested it in virtual
> > machine I think setup a right cmdline is hard. But feel free to test it if
> > you can.
>
> Tested with exactmap for multiple fast reboots. I was not able to setup
> kdump properly with this case, but it's not related with your changes
> since I was not able to do it without your changes, either.
>
> Feel free to add my tested-by.
Toshi, thanks a lot for your effort.
I would like to send a new version which addressing several issues
for code structure improvement and changelog etc.
If there's no further comments I will send them tommorrow. I have done the
rebase in the personal git tree (kexec-efi branch):
https://github.com/daveyoung/linux.git
They are not functional changes, I hope the test result will be same.
If you would like to do a quick test again I can add the tested-by when I resend
them, or for saving your time just test them after people are ok with the
patches themselves finally.
Thanks
Dave
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-27 9:29 ` Dave Young
0 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-27 9:29 UTC (permalink / raw)
To: Toshi Kani
Cc: mjg59, linux-efi, matt, greg, x86, kexec, James.Bottomley, horms,
bp, ebiederm, hpa, vgoyal
On 11/26/13 at 08:59am, Toshi Kani wrote:
> On Tue, 2013-11-26 at 14:11 +0800, Dave Young wrote:
> > On 11/25/13 at 08:30am, Toshi Kani wrote:
> > > HI Dave,
> > >
> > > I will test v4 again. This time, I will test "memmap=exactmap" option
> > > as well. I have tested the following cases before. Are there any other
> > > cases you'd like me to test?
> > >
> > > - kdump
> > > - multiple fast reboots and then kdump
> > > - old kexec and new kernel w/ noefi & acpi_rsdp option
> > > - new kexec and old kernel w/ noefi & acpi_rsdp option
>
> Retested the above cases with v4 patchset.
>
> > There's one more test case is w/ debugfs mounted in 1st kernel due to the
> > new version exports setup_data to sysfs.
>
> Tested w/ debugfs mounted.
>
> > For the exactmap I think it's a corner case, I just tested it in virtual
> > machine I think setup a right cmdline is hard. But feel free to test it if
> > you can.
>
> Tested with exactmap for multiple fast reboots. I was not able to setup
> kdump properly with this case, but it's not related with your changes
> since I was not able to do it without your changes, either.
>
> Feel free to add my tested-by.
Toshi, thanks a lot for your effort.
I would like to send a new version which addressing several issues
for code structure improvement and changelog etc.
If there's no further comments I will send them tommorrow. I have done the
rebase in the personal git tree (kexec-efi branch):
https://github.com/daveyoung/linux.git
They are not functional changes, I hope the test result will be same.
If you would like to do a quick test again I can add the tested-by when I resend
them, or for saving your time just test them after people are ok with the
patches themselves finally.
Thanks
Dave
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-27 9:29 ` Dave Young
@ 2013-11-27 11:56 ` Borislav Petkov
-1 siblings, 0 replies; 28+ messages in thread
From: Borislav Petkov @ 2013-11-27 11:56 UTC (permalink / raw)
To: Dave Young
Cc: Toshi Kani, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A,
mjg59-1xO5oi07KQx4cg9Nei1l7Q, hpa-YMNOUZJC4hwAvxtiuMwx3w,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
horms-/R6kz+dDXgpPR4JQBCEnsQ, greg-U8xfFu+wG4EAvxtiuMwx3w,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy
On Wed, Nov 27, 2013 at 05:29:46PM +0800, Dave Young wrote:
> I would like to send a new version which addressing several issues for
> code structure improvement and changelog etc.
>
> If there's no further comments I will send them tommorrow.
As a rule of thumb you should wait ~week and give chance to people to
review your stuff completely before spamming them again with the whole
patchset. :)
So please be patient until we've finished going through v4.
Thanks.
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-27 11:56 ` Borislav Petkov
0 siblings, 0 replies; 28+ messages in thread
From: Borislav Petkov @ 2013-11-27 11:56 UTC (permalink / raw)
To: Dave Young
Cc: mjg59, linux-efi, Toshi Kani, matt, greg, x86, kexec,
James.Bottomley, horms, ebiederm, hpa, vgoyal
On Wed, Nov 27, 2013 at 05:29:46PM +0800, Dave Young wrote:
> I would like to send a new version which addressing several issues for
> code structure improvement and changelog etc.
>
> If there's no further comments I will send them tommorrow.
As a rule of thumb you should wait ~week and give chance to people to
review your stuff completely before spamming them again with the whole
patchset. :)
So please be patient until we've finished going through v4.
Thanks.
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
2013-11-27 11:56 ` Borislav Petkov
@ 2013-11-28 2:13 ` Dave Young
-1 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-28 2:13 UTC (permalink / raw)
To: Borislav Petkov
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q, linux-efi-u79uwXL29TY76Z2rM5mHXA,
Toshi Kani, matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy,
greg-U8xfFu+wG4EAvxtiuMwx3w, x86-DgEjT+Ai2ygdnm+yROfE0A,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk,
horms-/R6kz+dDXgpPR4JQBCEnsQ, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
hpa-YMNOUZJC4hwAvxtiuMwx3w, vgoyal-H+wXaHxf7aLQT0dZR+AlfA
On 11/27/13 at 12:56pm, Borislav Petkov wrote:
> On Wed, Nov 27, 2013 at 05:29:46PM +0800, Dave Young wrote:
> > I would like to send a new version which addressing several issues for
> > code structure improvement and changelog etc.
> >
> > If there's no further comments I will send them tommorrow.
>
> As a rule of thumb you should wait ~week and give chance to people to
> review your stuff completely before spamming them again with the whole
> patchset. :)
>
> So please be patient until we've finished going through v4.
Sure, thanks.
I will be away from computer today so I will reply other emails tomorrow
and post fixes next week.
Dave
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-28 2:13 ` Dave Young
0 siblings, 0 replies; 28+ messages in thread
From: Dave Young @ 2013-11-28 2:13 UTC (permalink / raw)
To: Borislav Petkov
Cc: mjg59, linux-efi, Toshi Kani, matt, greg, x86, kexec,
James.Bottomley, horms, ebiederm, hpa, vgoyal
On 11/27/13 at 12:56pm, Borislav Petkov wrote:
> On Wed, Nov 27, 2013 at 05:29:46PM +0800, Dave Young wrote:
> > I would like to send a new version which addressing several issues for
> > code structure improvement and changelog etc.
> >
> > If there's no further comments I will send them tommorrow.
>
> As a rule of thumb you should wait ~week and give chance to people to
> review your stuff completely before spamming them again with the whole
> patchset. :)
>
> So please be patient until we've finished going through v4.
Sure, thanks.
I will be away from computer today so I will reply other emails tomorrow
and post fixes next week.
Dave
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2013-11-28 2:14 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-21 6:40 [patch 0/4 v3] kexec-tools: efi runtime support dyoung-H+wXaHxf7aLQT0dZR+AlfA
2013-11-21 6:40 ` dyoung
2013-11-21 6:40 ` [patch 1/4 v3] build fix: include x86-linux.h in x86-linux-setup.h dyoung-H+wXaHxf7aLQT0dZR+AlfA
2013-11-21 6:40 ` dyoung
2013-11-21 6:40 ` [patch 2/4 v3] Add function get_bootparam dyoung-H+wXaHxf7aLQT0dZR+AlfA
2013-11-21 6:40 ` dyoung
2013-11-21 6:40 ` [patch 3/4 v3] Add efi_info in x86 setup header dyoung-H+wXaHxf7aLQT0dZR+AlfA
2013-11-21 6:40 ` dyoung
2013-11-21 6:40 ` [patch 4/4 v3] Passing efi related data via setup_data dyoung-H+wXaHxf7aLQT0dZR+AlfA
2013-11-21 6:40 ` dyoung
[not found] ` <20131121064043.969000753-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-11-21 6:47 ` [patch 0/4 v3] kexec-tools: efi runtime support Dave Young
2013-11-21 6:47 ` Dave Young
2013-11-22 22:30 ` Toshi Kani
2013-11-22 22:30 ` Toshi Kani
[not found] ` <1385159448.1791.161.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org>
2013-11-24 3:12 ` Dave Young
2013-11-24 3:12 ` Dave Young
[not found] ` <20131124031228.GA1754-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-11-25 15:30 ` Toshi Kani
2013-11-25 15:30 ` Toshi Kani
[not found] ` <1385393451.1791.168.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org>
2013-11-26 6:11 ` Dave Young
2013-11-26 6:11 ` Dave Young
[not found] ` <20131126061124.GB9727-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-11-26 15:59 ` Toshi Kani
2013-11-26 15:59 ` Toshi Kani
[not found] ` <1385481553.1791.179.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org>
2013-11-27 9:29 ` Dave Young
2013-11-27 9:29 ` Dave Young
[not found] ` <20131127092946.GB19809-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-11-27 11:56 ` Borislav Petkov
2013-11-27 11:56 ` Borislav Petkov
[not found] ` <20131127115609.GC32267-fF5Pk5pvG8Y@public.gmane.org>
2013-11-28 2:13 ` Dave Young
2013-11-28 2:13 ` Dave Young
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.