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

[xen master] x86/hpet: Disable legacy replacement mode after IRQ test



commit 5eb8c15171f72f155a5cba8400eb940b44187867
Author:     Simon Gaiser <simon@xxxxxxxxxxxxxxxxxxxxxx>
AuthorDate: Tue Aug 22 08:51:38 2023 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Aug 22 08:51:38 2023 +0200

    x86/hpet: Disable legacy replacement mode after IRQ test
    
    As far as I understand the HPET legacy mode is not required after the
    timer IRQ test. For previous discussion see [1] and [2]. Keeping it
    enabled prevents reaching deeper C-states on some systems and thereby
    also S0ix residency. So disable it after the timer IRQ test worked. Note
    that this code path is only reached when opt_hpet_legacy_replacement < 0,
    so explicit user choice is still honored.
    
    Link: 
https://lore.kernel.org/xen-devel/cb408368-077d-edb5-b4ad-f80086db48c1@xxxxxxxxxxxxxxxxxxxxxx/
 # [1]
    Link: 
https://lore.kernel.org/xen-devel/20230718122603.2002-1-simon@xxxxxxxxxxxxxxxxxxxxxx/
 # [2]
    Signed-off-by: Simon Gaiser <simon@xxxxxxxxxxxxxxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 xen/arch/x86/io_apic.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index b3afef8933..0ef61fb2f1 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1964,6 +1964,9 @@ static void __init check_timer(void)
 
             if ( timer_irq_works() )
             {
+                printk(XENLOG_DEBUG
+                       "IRQ test with HPET Legacy Replacement Mode worked - 
disabling it again\n");
+                hpet_disable_legacy_replacement_mode();
                 local_irq_restore(flags);
                 return;
             }
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

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