[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] x86/suspend: Don't save/restore %cr8



%cr8 is an alias of APIC_TASKPRI, which is handled by
lapic_{suspend,resume}() with the rest of the Local APIC state.  Saving
and restoring the TPR state in isolation is not a clever idea.

Drop it all.

While editing wakeup_prot.S, trim its include list to just the headers
which are used, which is precicely none of them.

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
CC: Wei Liu <wl@xxxxxxx>
CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
CC: Juergen Gross <jgross@xxxxxxxx>

This is a Xen mirror to my Linux patch of the same effect:
https://lore.kernel.org/lkml/20190715151641.29210-1-andrew.cooper3@xxxxxxxxxx/T/#u

With a bit of care, I'm pretty sure the whole of wakeup_prot.S can
disappear, but -ETIME right now.

I've confirmed that after resume TPR retains its value of 0x10.  However, all
attempts to debug the internals of lapic_suspend/resume have eluded me,
including manually poking the UART.  Again, -ETIME to investigate further.
---
 xen/arch/x86/acpi/wakeup_prot.S | 15 ---------------
 1 file changed, 15 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index 361751d290..4a92627436 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -1,13 +1,5 @@
         .file __FILE__
         .text
-
-#include <xen/multiboot.h>
-#include <public/xen.h>
-#include <asm/asm_defns.h>
-#include <asm/desc.h>
-#include <asm/page.h>
-#include <asm/msr.h>
-
         .code64
 
 #define GREG(x)         %r##x
@@ -40,9 +32,6 @@ ENTRY(do_suspend_lowlevel)
         pushfq;
         popq    SAVED_GREG(flags)
 
-        mov     %cr8, GREG(ax)
-        mov     GREG(ax), REF(saved_cr8)
-
         mov     %ss, REF(saved_ss)
 
         sgdt    REF(saved_gdt)
@@ -90,9 +79,6 @@ ENTRY(__ret_point)
         pushq   %rax
         lretq
 1:
-        mov     REF(saved_cr8), %rax
-        mov     %rax, %cr8
-
         pushq   SAVED_GREG(flags)
         popfq
 
@@ -149,4 +135,3 @@ saved_ldt:      .quad   0,0
 
 saved_cr0:      .quad   0
 saved_cr3:      .quad   0
-saved_cr8:      .quad   0
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.