* [patch 0/4 v3] kexec-tools: efi runtime support
@ 2013-11-21 6:40 dyoung-H+wXaHxf7aLQT0dZR+AlfA
2013-11-21 6:40 ` [patch 1/4 v3] build fix: include x86-linux.h in x86-linux-setup.h dyoung-H+wXaHxf7aLQT0dZR+AlfA
` (4 more replies)
0 siblings, 5 replies; 14+ 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] 14+ messages in thread* [patch 1/4 v3] build fix: include x86-linux.h in x86-linux-setup.h 2013-11-21 6:40 [patch 0/4 v3] kexec-tools: efi runtime support dyoung-H+wXaHxf7aLQT0dZR+AlfA @ 2013-11-21 6:40 ` dyoung-H+wXaHxf7aLQT0dZR+AlfA 2013-11-21 6:40 ` [patch 2/4 v3] Add function get_bootparam dyoung-H+wXaHxf7aLQT0dZR+AlfA ` (3 subsequent siblings) 4 siblings, 0 replies; 14+ 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] 14+ messages in thread
* [patch 2/4 v3] Add function get_bootparam 2013-11-21 6:40 [patch 0/4 v3] kexec-tools: efi runtime support dyoung-H+wXaHxf7aLQT0dZR+AlfA 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-H+wXaHxf7aLQT0dZR+AlfA 2013-11-21 6:40 ` [patch 3/4 v3] Add efi_info in x86 setup header dyoung-H+wXaHxf7aLQT0dZR+AlfA ` (2 subsequent siblings) 4 siblings, 0 replies; 14+ 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] 14+ messages in thread
* [patch 3/4 v3] Add efi_info in x86 setup header 2013-11-21 6:40 [patch 0/4 v3] kexec-tools: efi runtime support dyoung-H+wXaHxf7aLQT0dZR+AlfA 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 ` [patch 2/4 v3] Add function get_bootparam dyoung-H+wXaHxf7aLQT0dZR+AlfA @ 2013-11-21 6:40 ` dyoung-H+wXaHxf7aLQT0dZR+AlfA 2013-11-21 6:40 ` [patch 4/4 v3] Passing efi related data via setup_data dyoung-H+wXaHxf7aLQT0dZR+AlfA [not found] ` <20131121064043.969000753-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> 4 siblings, 0 replies; 14+ 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] 14+ messages in thread
* [patch 4/4 v3] Passing efi related data via setup_data 2013-11-21 6:40 [patch 0/4 v3] kexec-tools: efi runtime support dyoung-H+wXaHxf7aLQT0dZR+AlfA ` (2 preceding siblings ...) 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-H+wXaHxf7aLQT0dZR+AlfA [not found] ` <20131121064043.969000753-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> 4 siblings, 0 replies; 14+ 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] 14+ messages in thread
[parent not found: <20131121064043.969000753-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>]
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [not found] ` <20131121064043.969000753-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> @ 2013-11-21 6:47 ` Dave Young 2013-11-22 22:30 ` Toshi Kani 1 sibling, 0 replies; 14+ 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] 14+ messages in thread
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [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-22 22:30 ` Toshi Kani [not found] ` <1385159448.1791.161.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org> 1 sibling, 1 reply; 14+ 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] 14+ messages in thread
[parent not found: <1385159448.1791.161.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org>]
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [not found] ` <1385159448.1791.161.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org> @ 2013-11-24 3:12 ` Dave Young [not found] ` <20131124031228.GA1754-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> 0 siblings, 1 reply; 14+ 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] 14+ messages in thread
[parent not found: <20131124031228.GA1754-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>]
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [not found] ` <20131124031228.GA1754-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> @ 2013-11-25 15:30 ` Toshi Kani [not found] ` <1385393451.1791.168.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org> 0 siblings, 1 reply; 14+ 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] 14+ messages in thread
[parent not found: <1385393451.1791.168.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org>]
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [not found] ` <1385393451.1791.168.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org> @ 2013-11-26 6:11 ` Dave Young [not found] ` <20131126061124.GB9727-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> 0 siblings, 1 reply; 14+ 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] 14+ messages in thread
[parent not found: <20131126061124.GB9727-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>]
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [not found] ` <20131126061124.GB9727-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> @ 2013-11-26 15:59 ` Toshi Kani [not found] ` <1385481553.1791.179.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org> 0 siblings, 1 reply; 14+ 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] 14+ messages in thread
[parent not found: <1385481553.1791.179.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org>]
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [not found] ` <1385481553.1791.179.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org> @ 2013-11-27 9:29 ` Dave Young [not found] ` <20131127092946.GB19809-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> 0 siblings, 1 reply; 14+ 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] 14+ messages in thread
[parent not found: <20131127092946.GB19809-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>]
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [not found] ` <20131127092946.GB19809-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> @ 2013-11-27 11:56 ` Borislav Petkov [not found] ` <20131127115609.GC32267-fF5Pk5pvG8Y@public.gmane.org> 0 siblings, 1 reply; 14+ 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] 14+ messages in thread
[parent not found: <20131127115609.GC32267-fF5Pk5pvG8Y@public.gmane.org>]
* Re: [patch 0/4 v3] kexec-tools: efi runtime support [not found] ` <20131127115609.GC32267-fF5Pk5pvG8Y@public.gmane.org> @ 2013-11-28 2:13 ` Dave Young 0 siblings, 0 replies; 14+ 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] 14+ messages in thread
end of thread, other threads:[~2013-11-28 2:13 UTC | newest]
Thread overview: 14+ 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 ` [patch 1/4 v3] build fix: include x86-linux.h in x86-linux-setup.h dyoung-H+wXaHxf7aLQT0dZR+AlfA
2013-11-21 6:40 ` [patch 2/4 v3] Add function get_bootparam dyoung-H+wXaHxf7aLQT0dZR+AlfA
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 ` [patch 4/4 v3] Passing efi related data via setup_data dyoung-H+wXaHxf7aLQT0dZR+AlfA
[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-22 22:30 ` Toshi Kani
[not found] ` <1385159448.1791.161.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org>
2013-11-24 3:12 ` Dave Young
[not found] ` <20131124031228.GA1754-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
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
[not found] ` <20131126061124.GB9727-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
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
[not found] ` <20131127092946.GB19809-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-11-27 11:56 ` Borislav Petkov
[not found] ` <20131127115609.GC32267-fF5Pk5pvG8Y@public.gmane.org>
2013-11-28 2:13 ` Dave Young
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox