All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhao, Yakui" <yakui.zhao@intel.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, tglx@linutronix.de,
	bp@alien8.de, Jason Chen CJ <jason.cj.chen@intel.com>
Subject: Re: [RFC PATCH v5 3/4] x86/acrn: Use HYPERVISOR_CALLBACK_VECTOR for ACRN guest upcall vector
Date: Thu, 25 Apr 2019 20:42:17 +0800	[thread overview]
Message-ID: <a206d93b-9c9e-3cfd-d34f-b9d373edb09e@intel.com> (raw)
In-Reply-To: <20190425071700.GB57256@gmail.com>



On 2019年04月25日 15:17, Ingo Molnar wrote:
> 
> * Zhao Yakui <yakui.zhao@intel.com> wrote:
> 
>> Linux kernel uses the HYPERVISOR_CALLBACK_VECTOR for hypervisor upcall
>> vector. And it is already used for Xen and HyperV.
> 
> English sentences should not be started with 'and'.

OK. I will remove it.

> 
>> After ACRN hypervisor is detected, it will also use this defined vector
>> to notify ACRN guest.
> 
> Missing 'the', twice.

OK. It will be added.

> 
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_X86_ACRN_H
>> +#define _ASM_X86_ACRN_H
>> +
>> +void acrn_hv_callback_vector(void);
> 
> Please mark these with 'extern', as customary in x86 headers.

OK. The "extern" will be added.

> 
>>   
>> +#include <linux/interrupt.h>
>> +#include <asm/acrn.h>
>> +#include <asm/desc.h>
>>   #include <asm/hypervisor.h>
>> +#include <asm/irq_regs.h>
>>   
>>   static uint32_t __init acrn_detect(void)
>>   {
>> @@ -18,6 +22,8 @@ static uint32_t __init acrn_detect(void)
>>   
>>   static void __init acrn_init_platform(void)
>>   {
>> +	alloc_intr_gate(HYPERVISOR_CALLBACK_VECTOR,
>> +			acrn_hv_callback_vector);
> 
> Why is this on two lines, not a single line?

At first it used the long function name for acrn_hv_callback_vector.
As it exceeds 80 columns, it is split into two lines.
I will check it and see whether it can be fit into one single line.
If it is ok, it will be in one single line.

> 
>> +static void (*acrn_intr_handler)(void);
>> +
>> +__visible void __irq_entry acrn_hv_vector_handler(struct pt_regs *regs)
>> +{
>> +	struct pt_regs *old_regs = set_irq_regs(regs);
>> +
>> +	entering_ack_irq();
> 
> Does the hypervisor model the APIC EOI command, i.e. does it require the
> APIC to be acked? I.e. would not acking the APIC create an IRQ storm?

The hypervisor requires that the APIC EOI should be acked. If the EOI 
APIC is not acked, the APIC ISR bit for the HYPERVISOR_CALLBACK_VECTOR 
will not be cleared and then it will block the interrupt whose vector is 
lower than HYPERVISOR_CALLBACK_VECTOR.

> 
>> +	inc_irq_stat(irq_hv_callback_count);
>> +
>> +	if (acrn_intr_handler)
>> +		acrn_intr_handler();
> 
> Nothing appears to be setting acrn_intr_handler, so this will never
> execute anything? Is more code relying on this?

Nothing will be done in this patch.
Later the driver part code will be added and it needs to add/remove the 
corresponding driver handler. It is similar to vmbus_handler in 
hyperv_vector_handler.

> 
> Thanks,
> 
> 	Ingo
> 

  reply	other threads:[~2019-04-25 12:44 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24  0:54 [RFC PATCH v5 0/4] x86: Add the support of ACRN guest under x86 Zhao Yakui
2019-04-24  0:54 ` [RFC PATCH v5 1/4] x86/Kconfig: Add new config symbol to unify conditional definition of hv_irq_callback_count Zhao Yakui
2019-04-24  0:54 ` [RFC PATCH v5 2/4] x86: Add the support of Linux guest on ACRN hypervisor Zhao Yakui
2019-04-24  0:54 ` [RFC PATCH v5 3/4] x86/acrn: Use HYPERVISOR_CALLBACK_VECTOR for ACRN guest upcall vector Zhao Yakui
2019-04-25  7:17   ` Ingo Molnar
2019-04-25 12:42     ` Zhao, Yakui [this message]
2019-04-25 19:45       ` Ingo Molnar
2019-04-26  1:46         ` Zhao, Yakui
2019-04-26  5:57           ` Ingo Molnar
2019-04-24  0:54 ` [RFC PATCH v5 4/4] x86/acrn: Add hypercall for ACRN guest Zhao Yakui
2019-04-25  7:07   ` Ingo Molnar
2019-04-25 10:16     ` Zhao, Yakui
2019-04-25 11:00       ` Borislav Petkov
2019-04-26  3:18         ` Zhao, Yakui
2019-04-27  8:58           ` Borislav Petkov
2019-04-28  1:56             ` Zhao, Yakui
2019-04-28 10:03               ` Borislav Petkov
2019-04-29  1:24                 ` Zhao, Yakui
2019-04-29  7:36                   ` Borislav Petkov
2019-04-29  9:52                     ` Zhao, Yakui
2019-04-24 22:20 ` [RFC PATCH v5 0/4] x86: Add the support of ACRN guest under x86 Thomas Gleixner
2019-04-25  5:44   ` Zhao, Yakui

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=a206d93b-9c9e-3cfd-d34f-b9d373edb09e@intel.com \
    --to=yakui.zhao@intel.com \
    --cc=bp@alien8.de \
    --cc=jason.cj.chen@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.