Re: [Xen-devel] [PATCH] x86/shutdown: Use ACPI reboot method for Dell PowerEdge R740
>>> On 19.01.18 at 17:57,wrote: > When EFI booting the Dell PowerEdge R740, it consistently wanders into the > weeds and gets an invalid opcode in the EFI ResetSystem call. > Quirk this hardware to use the ACPI reboot method instead. > > Example stack trace: > > [ Xen-4.11-unstable x86_64 debug=n Not tainted ] > CPU:0 > RIP:e008:[<0017>] 0017 > RFLAGS: 00010202 CONTEXT: hypervisor > rax: 66eb2ff0 rbx: 83005f627c20 rcx: 6c54e100 > rdx: rsi: 0065 rdi: 00107355f000 > rbp: 83005f627c70 rsp: 83005f627b48 r8: 83005f627b90 > r9: r10: 83005f627c88 r11: > r12: r13: 0cf9 r14: 0065 > r15: 8300 cr0: 80050033 cr4: 003526e0 > cr3: 00107355f000 cr2: c9cff000 > fsb: gsb: 88019f60 gss: > ds: es: fs: gs: ss: e010 cs: e008 > Xen code around <0017> (0017): > f0 d8 dd 00 f0 54 ff 00 50 dd 00 f0 d8 dd 00 f0 a5 fe 00 f0 87 e9 00 > Xen stack trace from rsp=83005f627b48: >83005f627b50 ffda 6c547aaa 82d1 >83005f627bec 00107355f000 6c546fb8 83107ffe3240 > 8002 >6c546b95 6c54c700 83005f627bdc 83005f627be8 >5f616000 83005f627c20 0cf9 >820080350001 000b 82d080351eda > 5f616000 > 82d08095ff60 82d08095ff60 00f1 >82d080296097 e008 83005f627c88 > fffe 82d0802959d2 82d0802959d2 >8095f300 5f627c9c 00f8 >00f8 82d080932c00 82d08095f7c8 >82d080932c00 82d080295a9b >83005f627d98 82d0802361f3 82d080932c00 8000 >83005f627d98 82d080279a19 82d08095f02c 82d08000 > 00fb 0071484e54f6 >831073542098 82d08093ac78 831072befd30 > > 82d08034f185 82d080949460 >82d08095f270 0008 83107357ae20 007146ce4bd3 > Xen call trace: >[<0017>] 0017 >[] efi_reset_system+0x5a/0x90 >[] smp_send_stop+0x97/0xa0 >[] machine_restart+0x212/0x2d0 >[] machine_restart+0x212/0x2d0 >[] shutdown.c#__machine_restart+0xb/0x10 >[] smp_call_function_interrupt+0x53/0x80 >[] do_IRQ+0x259/0x660 >[] common_interrupt+0x85/0x90 >[] mwait-idle.c#mwait_idle+0x242/0x390 >[] domain.c#idle_loop+0x86/0xc0 > > > Panic on CPU 0: > FATAL TRAP: vector = 6 (invalid opcode) > > > dmidecode info: > > BIOS Information: > Vendor: Dell Inc. > Version: 1.2.11 > Release Date: 10/19/2017 > BIOS Revision: 1.2 > System Information: > Manufacturer: Dell Inc. > Product Name: PowerEdge R740 > > Signed-off-by: Ross Lagerwall Taking into account your subsequent argumentation Acked-by: Jan Beulich Jan ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86/shutdown: Use ACPI reboot method for Dell PowerEdge R740
On 01/23/2018 04:05 PM, Ross Lagerwall wrote: On 01/22/2018 12:29 PM, Jan Beulich wrote: On 19.01.18 at 17:57,wrote: --- a/xen/arch/x86/shutdown.c +++ b/xen/arch/x86/shutdown.c @@ -511,6 +511,15 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"), }, }, + { /* Handle problems with rebooting on Dell PowerEdge R740. */ + .callback = override_reboot, + .driver_data = (void *)(long)BOOT_ACPI, + .ident = "Dell PowerEdge R740", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740"), + }, + }, Judging from the description you don't really want or need to override the reboot method if not running under EFI, or if there was an override on the command line already. override_reboot(), however, overrides everything and under all circumstances. I therefore think you may want to introduce a new callback function. Agreed, it should only apply when running under EFI. Note that the command-line takes priority over override_reboot() -- see the note at the start of reboot_init(). Actually, now that I think about it, this quirk would have no effect when not running under EFI since in either case, the quirk uses BOOT_ACPI unless acpi_disabled is set in which case it uses BOOT_KBD. This matches what default_reboot_type() does. So I think this patch is fine and no further changes are needed unless I'm missing something? Thanks, -- Ross Lagerwall ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86/shutdown: Use ACPI reboot method for Dell PowerEdge R740
On 01/22/2018 12:29 PM, Jan Beulich wrote: On 19.01.18 at 17:57,wrote: --- a/xen/arch/x86/shutdown.c +++ b/xen/arch/x86/shutdown.c @@ -511,6 +511,15 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"), }, }, +{/* Handle problems with rebooting on Dell PowerEdge R740. */ +.callback = override_reboot, +.driver_data = (void *)(long)BOOT_ACPI, +.ident = "Dell PowerEdge R740", +.matches = { +DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), +DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740"), +}, +}, Judging from the description you don't really want or need to override the reboot method if not running under EFI, or if there was an override on the command line already. override_reboot(), however, overrides everything and under all circumstances. I therefore think you may want to introduce a new callback function. Agreed, it should only apply when running under EFI. Note that the command-line takes priority over override_reboot() -- see the note at the start of reboot_init(). As an aside - how come the page at address zero is actually mapped at the time of the reboot attempt? No idea... -- Ross Lagerwall ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86/shutdown: Use ACPI reboot method for Dell PowerEdge R740
>>> On 19.01.18 at 17:57,wrote: > --- a/xen/arch/x86/shutdown.c > +++ b/xen/arch/x86/shutdown.c > @@ -511,6 +511,15 @@ static struct dmi_system_id __initdata > reboot_dmi_table[] = { > DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"), > }, > }, > +{/* Handle problems with rebooting on Dell PowerEdge R740. */ > +.callback = override_reboot, > +.driver_data = (void *)(long)BOOT_ACPI, > +.ident = "Dell PowerEdge R740", > +.matches = { > +DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), > +DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740"), > +}, > +}, Judging from the description you don't really want or need to override the reboot method if not running under EFI, or if there was an override on the command line already. override_reboot(), however, overrides everything and under all circumstances. I therefore think you may want to introduce a new callback function. As an aside - how come the page at address zero is actually mapped at the time of the reboot attempt? Jan ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
[Xen-devel] [PATCH] x86/shutdown: Use ACPI reboot method for Dell PowerEdge R740
When EFI booting the Dell PowerEdge R740, it consistently wanders into the weeds and gets an invalid opcode in the EFI ResetSystem call. Quirk this hardware to use the ACPI reboot method instead. Example stack trace: [ Xen-4.11-unstable x86_64 debug=n Not tainted ] CPU:0 RIP:e008:[<0017>] 0017 RFLAGS: 00010202 CONTEXT: hypervisor rax: 66eb2ff0 rbx: 83005f627c20 rcx: 6c54e100 rdx: rsi: 0065 rdi: 00107355f000 rbp: 83005f627c70 rsp: 83005f627b48 r8: 83005f627b90 r9: r10: 83005f627c88 r11: r12: r13: 0cf9 r14: 0065 r15: 8300 cr0: 80050033 cr4: 003526e0 cr3: 00107355f000 cr2: c9cff000 fsb: gsb: 88019f60 gss: ds: es: fs: gs: ss: e010 cs: e008 Xen code around <0017> (0017): f0 d8 dd 00 f0 54 ff 00 50 dd 00 f0 d8 dd 00 f0 a5 fe 00 f0 87 e9 00 Xen stack trace from rsp=83005f627b48: 83005f627b50 ffda 6c547aaa 82d1 83005f627bec 00107355f000 6c546fb8 83107ffe3240 8002 6c546b95 6c54c700 83005f627bdc 83005f627be8 5f616000 83005f627c20 0cf9 820080350001 000b 82d080351eda 5f616000 82d08095ff60 82d08095ff60 00f1 82d080296097 e008 83005f627c88 fffe 82d0802959d2 82d0802959d2 8095f300 5f627c9c 00f8 00f8 82d080932c00 82d08095f7c8 82d080932c00 82d080295a9b 83005f627d98 82d0802361f3 82d080932c00 8000 83005f627d98 82d080279a19 82d08095f02c 82d08000 00fb 0071484e54f6 831073542098 82d08093ac78 831072befd30 82d08034f185 82d080949460 82d08095f270 0008 83107357ae20 007146ce4bd3 Xen call trace: [<0017>] 0017 [] efi_reset_system+0x5a/0x90 [] smp_send_stop+0x97/0xa0 [] machine_restart+0x212/0x2d0 [] machine_restart+0x212/0x2d0 [] shutdown.c#__machine_restart+0xb/0x10 [] smp_call_function_interrupt+0x53/0x80 [] do_IRQ+0x259/0x660 [] common_interrupt+0x85/0x90 [] mwait-idle.c#mwait_idle+0x242/0x390 [] domain.c#idle_loop+0x86/0xc0 Panic on CPU 0: FATAL TRAP: vector = 6 (invalid opcode) dmidecode info: BIOS Information: Vendor: Dell Inc. Version: 1.2.11 Release Date: 10/19/2017 BIOS Revision: 1.2 System Information: Manufacturer: Dell Inc. Product Name: PowerEdge R740 Signed-off-by: Ross Lagerwall--- xen/arch/x86/shutdown.c | 9 + 1 file changed, 9 insertions(+) diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c index a350714..c709e13 100644 --- a/xen/arch/x86/shutdown.c +++ b/xen/arch/x86/shutdown.c @@ -511,6 +511,15 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"), }, }, +{/* Handle problems with rebooting on Dell PowerEdge R740. */ +.callback = override_reboot, +.driver_data = (void *)(long)BOOT_ACPI, +.ident = "Dell PowerEdge R740", +.matches = { +DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), +DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740"), +}, +}, { } }; -- 2.9.5 ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel