[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <29c65421-2478-4e29-d803-2dbecc9ffe1c@amd.com>
Date: Tue, 22 Nov 2022 13:17:31 -0600
From: "Kalra, Ashish" <ashish.kalra@....com>
To: Tianyu Lan <ltykernel@...il.com>, luto@...nel.org,
tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
dave.hansen@...ux.intel.com, x86@...nel.org, hpa@...or.com,
seanjc@...gle.com, pbonzini@...hat.com, jgross@...e.com,
tiala@...rosoft.com, kirill@...temov.name,
jiangshan.ljs@...group.com, peterz@...radead.org,
srutherford@...gle.com, akpm@...ux-foundation.org,
anshuman.khandual@....com, pawan.kumar.gupta@...ux.intel.com,
adrian.hunter@...el.com, daniel.sneddon@...ux.intel.com,
alexander.shishkin@...ux.intel.com, sandipan.das@....com,
ray.huang@....com, brijesh.singh@....com, michael.roth@....com,
thomas.lendacky@....com, venu.busireddy@...cle.com,
sterritt@...gle.com, tony.luck@...el.com, samitolvanen@...gle.com,
fenghua.yu@...el.com
Cc: linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
linux-hyperv@...r.kernel.org, linux-arch@...r.kernel.org
Subject: Re: [RFC PATCH V2 16/18] x86/sev: Initialize #HV doorbell and handle
interrupt requests
On 11/22/2022 7:46 AM, Tianyu Lan wrote:
> On 11/21/2022 11:05 PM, Kalra, Ashish wrote:
>>> +static void do_exc_hv(struct pt_regs *regs)
>>> +{
>>> + union hv_pending_events pending_events;
>>> + u8 vector;
>>> +
>>> + while (sev_hv_pending()) {
>>> + asm volatile("cli" : : : "memory");
>>> +
>>
>> Do we really need to disable interrupts here, #HV exception will be
>> dispatched via an interrupt gate in the IDT, so interrupts should be
>> implicitly disabled, right ?
>>> panic("Unexpected vector %d\n", vector);
>>> + unreachable();
>>> + }
>>> + } else {
>>> + common_interrupt(regs, pending_events.vector);
>>> + }
>>> +
>>> + asm volatile("sti" : : : "memory");
>>
>> Again, why do we need to re-enable interrupts here (in this loop),
>> interrupts will get re-enabled in the irqentry_exit() code path ?
>
> Hi Ashish:
> Thanks for your review. check_hv_pending() is also called in the
> native_irq_enable() to handle some pending interrupt requests after re
> -enabling interrupt. For such case, disables irq when handle exception
> or interrupt event.
>
Then probably add the interrupt disable/enable in the caller
function like native_irq_enable() which seems logical as
check_hv_pending() is always called with interrupts disabled (either via
HW or SW) and also interrupt disable/enable seems redundant in
check_hv_pending().
Thanks,
Ashish
Powered by blists - more mailing lists