linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sohil Mehta <sohil.mehta@intel.com>
To: Thomas Gleixner <tglx@linutronix.de>,
	Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Borislav Petkov <bp@alien8.de>,
	"Ingo Molnar" <mingo@redhat.com>, <x86@kernel.org>,
	<linux-kernel@vger.kernel.org>, Xin Li <xin@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	Tony Luck <tony.luck@intel.com>, Zhang Rui <rui.zhang@intel.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
	Jacob Pan <jacob.pan@linux.microsoft.com>,
	Andi Kleen <ak@linux.intel.com>, Kai Huang <kai.huang@intel.com>,
	"Sandipan Das" <sandipan.das@amd.com>,
	<linux-perf-users@vger.kernel.org>, <linux-edac@vger.kernel.org>,
	<kvm@vger.kernel.org>, <linux-pm@vger.kernel.org>,
	<linux-trace-kernel@vger.kernel.org>,
	"Sean Christopherson" <seanjc@google.com>
Subject: Re: [PATCH v7 08/10] x86/nmi: Enable NMI-source for IPIs delivered as NMIs
Date: Thu, 24 Jul 2025 15:59:12 -0700	[thread overview]
Message-ID: <768d8534-454e-4c3d-a41e-3f82c2347b0e@intel.com> (raw)
In-Reply-To: <aHBBdmdMGHbv5lSm@google.com>

Hi Thomas, Dave,

Seeking your inputs on the below direction.

On 7/10/2025 3:40 PM, Sean Christopherson wrote:
>>> One thought would be to pass a small struct (by value), and then provide macros
>>> to generate the structure for a specific vector.  That provides some amount of
>>> type safety and should make it a bit harder to pass in garbage, without making
>>> the callers any less readable.
>>>
>>> struct apic_ipi {
>>> 	u8 vector;
>>> 	u8 type;
>>> };
>>>  
>>> #define APIC_IPI(v, t) ({ struct apic_ipi i = { .vector = v, .type = t }; i; })
>>> #define APIC_IPI_IRQ(vector) APIC_IPI(vector, APIC_DELIVERY_MODE_FIXED)
>>> #define APIC_IPI_NMI(vector) APIC_IPI(vector, APIC_DELIVERY_MODE_NMI)
>>> 
>>> #define IPI_IRQ_WORK		APIC_IPI_IRQ(IRQ_WORK_VECTOR)
>>> #define IPI_POSTED_INTR_WAKEUP	APIC_IPI_IRQ(POSTED_INTR_WAKEUP_VECTOR)
>>> 
>>> #define IPI_NMI_BACKTRACE	APIC_IPI_NMI(NMI_BACKTRACE_VECTOR)
>>> 
>>> static __always_inline void __apic_send_IPI_self(struct apic_ipi ipi)
>>
>> I am fine with this approach. Though, the changes would be massive since
>> we have quite a few interfaces and a lot of "struct apic".
> 
> It'd definitely be big, but it doesn't seem like it'd be overwhelmingly painful.
> Though it's certainly enough churn that I wouldn't do anything until there's a
> consensus one way or the other :-)
> 

In order to accommodate NMI source vectors, updating the send_IPI_*()
APIs seems like the right thing to do for the long run. But it would
introduce some churn. Is this the optimal path forward? Any other
options we should consider?



  reply	other threads:[~2025-07-24 22:59 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-12 21:48 [PATCH v7 00/10] x86: Add support for NMI-source reporting with FRED Sohil Mehta
2025-06-12 21:48 ` [PATCH v7 01/10] x86/fred: Provide separate IRQ vs. NMI wrappers for entry from KVM Sohil Mehta
2025-06-19  3:53   ` Xin Li
2025-06-19 21:35     ` Sohil Mehta
2025-06-12 21:48 ` [PATCH v7 02/10] x86/fred: Pass event data to the NMI entry point " Sohil Mehta
2025-06-13  0:18   ` Sean Christopherson
2025-06-13 15:20     ` Sohil Mehta
2025-06-19  5:02   ` Xin Li
2025-06-19 22:15     ` Sohil Mehta
2025-06-19 22:45       ` Xin Li
2025-06-19 22:57         ` Sohil Mehta
2025-06-20 22:51           ` H. Peter Anvin
2025-06-20 23:18             ` Sean Christopherson
2025-06-20 23:22               ` H. Peter Anvin
2025-06-23 15:39                 ` Sean Christopherson
2025-06-23 16:10                   ` H. Peter Anvin
2025-06-12 21:48 ` [PATCH v7 03/10] x86/cpufeatures: Add the CPUID feature bit for NMI-source reporting Sohil Mehta
2025-06-19  5:06   ` Xin Li
2025-06-12 21:48 ` [PATCH v7 04/10] x86/nmi: Extend the registration interface to include the NMI-source vector Sohil Mehta
2025-06-12 21:48 ` [PATCH v7 05/10] x86/nmi: Assign and register NMI-source vectors Sohil Mehta
2025-07-07 13:21   ` Zhuo, Qiuxu
2025-07-07 20:00     ` Sohil Mehta
2025-07-08  7:30       ` Zhuo, Qiuxu
2025-07-11  0:32         ` Sohil Mehta
2025-06-12 21:48 ` [PATCH v7 06/10] x86/nmi: Add support to handle NMIs with source information Sohil Mehta
2025-07-07 13:50   ` Zhuo, Qiuxu
2025-07-07 20:32     ` Sohil Mehta
2025-06-12 21:48 ` [PATCH v7 07/10] x86/nmi: Prepare for the new NMI-source vector encoding Sohil Mehta
2025-06-19  7:43   ` Chao Gao
2025-06-19 22:23     ` Sohil Mehta
2025-06-19 22:54   ` Sohil Mehta
2025-06-12 21:48 ` [PATCH v7 08/10] x86/nmi: Enable NMI-source for IPIs delivered as NMIs Sohil Mehta
2025-07-08 18:37   ` Sean Christopherson
2025-07-10 22:04     ` Sohil Mehta
2025-07-10 22:40       ` Sean Christopherson
2025-07-24 22:59         ` Sohil Mehta [this message]
2025-06-12 21:48 ` [PATCH v7 09/10] perf/x86: Enable NMI-source reporting for perfmon Sohil Mehta
2025-06-12 21:48 ` [PATCH v7 10/10] x86/nmi: Print source information with the unknown NMI console message Sohil Mehta
2025-06-13  7:06 ` [PATCH v7 00/10] x86: Add support for NMI-source reporting with FRED Peter Zijlstra
2025-06-13 15:21   ` Sohil Mehta
2025-07-07 13:56 ` Zhuo, Qiuxu
2025-07-07 20:33   ` Sohil Mehta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=768d8534-454e-4c3d-a41e-3f82c2347b0e@intel.com \
    --to=sohil.mehta@intel.com \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jacob.pan@linux.microsoft.com \
    --cc=kai.huang@intel.com \
    --cc=kan.liang@linux.intel.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=rui.zhang@intel.com \
    --cc=sandipan.das@amd.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=xin@zytor.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).