Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752888AbbGFPDG (ORCPT ); Mon, 6 Jul 2015 11:03:06 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:33006 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752031AbbGFPDB (ORCPT ); Mon, 6 Jul 2015 11:03:01 -0400 Message-ID: <559A988D.4020307@oracle.com> Date: Mon, 06 Jul 2015 11:02:37 -0400 From: Boris Ostrovsky User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Andrew Jones , Ingo Molnar CC: Vitaly Kuznetsov , x86@kernel.org, Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , linux-kernel@vger.kernel.org, =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= Subject: Re: [PATCH] x86/irq: hide HYP in /proc/interrupts when not on Xen/Hyper-V References: <1435922834-417-1-git-send-email-vkuznets@redhat.com> <20150704082653.GA13934@gmail.com> <20150706135733.GK17217@hawk.localdomain> In-Reply-To: <20150706135733.GK17217@hawk.localdomain> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Source-IP: userv0022.oracle.com [156.151.31.74] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2767 Lines: 70 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 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ář >>> Signed-off-by: Vitaly Kuznetsov >>> --- >>> 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 >>> #include >>> #include >>> +#include >>> >>> #define CREATE_TRACE_POINTS >>> #include >>> @@ -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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/