Messages in this thread | | | Date | Mon, 06 Jul 2015 11:02:37 -0400 | From | Boris Ostrovsky <> | Subject | Re: [PATCH] x86/irq: hide HYP in /proc/interrupts when not on Xen/Hyper-V |
| |
On 07/06/2015 09:57 AM, Andrew Jones wrote: > On Sat, Jul 04, 2015 at 10:26:53AM +0200, Ingo Molnar wrote: >> * Vitaly Kuznetsov <vkuznets@redhat.com> wrote: >> >>> Hypervisor callback interrupts are only accounted on Xen/Hyper-V and we >>> detect hypervisor's type in early boot. There is no point in having >>> always-zero HYP: line on other hypervisors or bare metal. >>> >>> Suggested-by: Radim Krčmář <rkrcmar@redhat.com> >>> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> >>> --- >>> arch/x86/kernel/irq.c | 13 +++++++++---- >>> 1 file changed, 9 insertions(+), 4 deletions(-) >>> >>> diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c >>> index 88b36648..0c82064 100644 >>> --- a/arch/x86/kernel/irq.c >>> +++ b/arch/x86/kernel/irq.c >>> @@ -18,6 +18,7 @@ >>> #include <asm/mce.h> >>> #include <asm/hw_irq.h> >>> #include <asm/desc.h> >>> +#include <asm/hypervisor.h> >>> >>> #define CREATE_TRACE_POINTS >>> #include <asm/trace/irq_vectors.h> >>> @@ -139,10 +140,14 @@ int arch_show_interrupts(struct seq_file *p, int prec) >>> seq_puts(p, " Machine check polls\n"); >>> #endif >>> #if IS_ENABLED(CONFIG_HYPERV) || defined(CONFIG_XEN) >>> - seq_printf(p, "%*s: ", prec, "HYP"); >>> - for_each_online_cpu(j) >>> - seq_printf(p, "%10u ", irq_stats(j)->irq_hv_callback_count); >>> - seq_puts(p, " Hypervisor callback interrupts\n"); >>> + if (x86_hyper == &x86_hyper_ms_hyperv || >>> + x86_hyper == &x86_hyper_xen) { >>> + seq_printf(p, "%*s: ", prec, "HYP"); >>> + for_each_online_cpu(j) >>> + seq_printf(p, "%10u ", >>> + irq_stats(j)->irq_hv_callback_count); >>> + seq_puts(p, " Hypervisor callback interrupts\n"); >>> + } >> So I think we should simplify this to: >> >> if (x86_hyper) { >> ... >> } >> >> this will print the HYP line on hypervisors that don't use >> HYPERVISOR_CALLBACK_VECTOR, but it will make it a lot more self-maintaining, we >> won't accidentally skip this line on hypervisors that start using the callback >> IRQ. > This is a good point. When virt stuff creeps out, it's easy to lose track of > it. But, I would prefer that vmware and kvm guests don't have to have a > meaningless counter in /proc/interrupts. Also, for xen, I see that it only > matters for x86. ARM xen builds would also have a meaningless counter. Maybe > we should add a flags member to hypervisor_x86, and start using that in > these types of situations.
This is all x86 arch code so I don't see how it will make any difference to Xen on ARM.
-boris
| |