[Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen

Lan Tianyu posted 1 patch 6 years, 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1502842933-8323-1-git-send-email-tianyu.lan@intel.com
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
hw/i386/pc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Lan Tianyu 6 years, 8 months ago
Xen vIOMMU device model will be in Xen hypervisor. Skip vIOMMU
check for Xen here when vcpu number is more than 255.

Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
---
 hw/i386/pc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 5943539..fc17885 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1260,7 +1260,7 @@ void pc_machine_done(Notifier *notifier, void *data)
         fw_cfg_modify_i16(pcms->fw_cfg, FW_CFG_NB_CPUS, pcms->boot_cpus);
     }
 
-    if (pcms->apic_id_limit > 255) {
+    if (pcms->apic_id_limit > 255 && !xen_enabled()) {
         IntelIOMMUState *iommu = INTEL_IOMMU_DEVICE(x86_iommu_get_default());
 
         if (!iommu || !iommu->x86_iommu.intr_supported ||
-- 
1.8.3.1


Re: [Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Paolo Bonzini 6 years, 8 months ago
On 16/08/2017 02:22, Lan Tianyu wrote:
> Xen vIOMMU device model will be in Xen hypervisor. Skip vIOMMU
> check for Xen here when vcpu number is more than 255.

I think you still need to do a check for vIOMMU being enabled.

Paolo

> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
> ---
>  hw/i386/pc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 5943539..fc17885 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1260,7 +1260,7 @@ void pc_machine_done(Notifier *notifier, void *data)
>          fw_cfg_modify_i16(pcms->fw_cfg, FW_CFG_NB_CPUS, pcms->boot_cpus);
>      }
>  
> -    if (pcms->apic_id_limit > 255) {
> +    if (pcms->apic_id_limit > 255 && !xen_enabled()) {
>          IntelIOMMUState *iommu = INTEL_IOMMU_DEVICE(x86_iommu_get_default());
>  
>          if (!iommu || !iommu->x86_iommu.intr_supported ||
> 


Re: [Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Lan Tianyu 6 years, 8 months ago
On 2017年08月16日 19:21, Paolo Bonzini wrote:
> On 16/08/2017 02:22, Lan Tianyu wrote:
>> Xen vIOMMU device model will be in Xen hypervisor. Skip vIOMMU
>> check for Xen here when vcpu number is more than 255.
> 
> I think you still need to do a check for vIOMMU being enabled.

Yes, this will be done in the Xen tool stack and Qemu doesn't have such
knowledge. Operations of create, destroy Xen vIOMMU will be done in the
Xen tool stack.

> 
> Paolo
> 
>> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
>> ---
>>  hw/i386/pc.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>> index 5943539..fc17885 100644
>> --- a/hw/i386/pc.c
>> +++ b/hw/i386/pc.c
>> @@ -1260,7 +1260,7 @@ void pc_machine_done(Notifier *notifier, void *data)
>>          fw_cfg_modify_i16(pcms->fw_cfg, FW_CFG_NB_CPUS, pcms->boot_cpus);
>>      }
>>  
>> -    if (pcms->apic_id_limit > 255) {
>> +    if (pcms->apic_id_limit > 255 && !xen_enabled()) {
>>          IntelIOMMUState *iommu = INTEL_IOMMU_DEVICE(x86_iommu_get_default());
>>  
>>          if (!iommu || !iommu->x86_iommu.intr_supported ||
>>
> 


Re: [Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Eduardo Habkost 6 years, 8 months ago
On Thu, Aug 17, 2017 at 09:37:10AM +0800, Lan Tianyu wrote:
> On 2017年08月16日 19:21, Paolo Bonzini wrote:
> > On 16/08/2017 02:22, Lan Tianyu wrote:
> >> Xen vIOMMU device model will be in Xen hypervisor. Skip vIOMMU
> >> check for Xen here when vcpu number is more than 255.
> > 
> > I think you still need to do a check for vIOMMU being enabled.
> 
> Yes, this will be done in the Xen tool stack and Qemu doesn't have such
> knowledge. Operations of create, destroy Xen vIOMMU will be done in the
> Xen tool stack.

Shouldn't we make QEMU have knowledge of the vIOMMU device, then?
Won't QEMU need to know about it eventually?

-- 
Eduardo

Re: [Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Paolo Bonzini 6 years, 8 months ago
On 18/08/2017 18:38, Eduardo Habkost wrote:
>>> I think you still need to do a check for vIOMMU being enabled.
>>
>> Yes, this will be done in the Xen tool stack and Qemu doesn't have such
>> knowledge. Operations of create, destroy Xen vIOMMU will be done in the
>> Xen tool stack.
>
> Shouldn't we make QEMU have knowledge of the vIOMMU device, then?
> Won't QEMU need to know about it eventually?

No, it actually makes sense since Xen hosts all system-wide interrupt
sources outside QEMU, unlike KVM which only hosts the (per-CPU) local APIC.

Paolo

Re: [Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Lan Tianyu 6 years, 8 months ago
On 2017年08月19日 00:38, Eduardo Habkost wrote:
> On Thu, Aug 17, 2017 at 09:37:10AM +0800, Lan Tianyu wrote:
>> On 2017年08月16日 19:21, Paolo Bonzini wrote:
>>> On 16/08/2017 02:22, Lan Tianyu wrote:
>>>> Xen vIOMMU device model will be in Xen hypervisor. Skip vIOMMU
>>>> check for Xen here when vcpu number is more than 255.
>>>
>>> I think you still need to do a check for vIOMMU being enabled.
>>
>> Yes, this will be done in the Xen tool stack and Qemu doesn't have such
>> knowledge. Operations of create, destroy Xen vIOMMU will be done in the
>> Xen tool stack.
> 
> Shouldn't we make QEMU have knowledge of the vIOMMU device, then?
> Won't QEMU need to know about it eventually?
> 

Hi Eduardo:
     Thanks for your review.
     Xen has some guest modes which doesn't use Qemu and we tried to
make Xen vIOMMU framework compatible with all guest modes. So far, we
are adding interrupt remapping function for Xen vIOMMU and find qemu
doesn't need to know Xen vIOMMU. The check of vcpu number > 255 here
will be done in Xen side and so skip the check in Qemu to avoid blocking
Xen creating >255 vcpus.
     We may make Qemu have knowledge of the vIOMMU device if it's
necessary when adding new function.

-- 
Best regards
Tianyu Lan

Re: [Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Eduardo Habkost 6 years, 5 months ago
On Mon, Aug 21, 2017 at 10:22:15AM +0800, Lan Tianyu wrote:
> On 2017年08月19日 00:38, Eduardo Habkost wrote:
> > On Thu, Aug 17, 2017 at 09:37:10AM +0800, Lan Tianyu wrote:
> >> On 2017年08月16日 19:21, Paolo Bonzini wrote:
> >>> On 16/08/2017 02:22, Lan Tianyu wrote:
> >>>> Xen vIOMMU device model will be in Xen hypervisor. Skip vIOMMU
> >>>> check for Xen here when vcpu number is more than 255.
> >>>
> >>> I think you still need to do a check for vIOMMU being enabled.
> >>
> >> Yes, this will be done in the Xen tool stack and Qemu doesn't have such
> >> knowledge. Operations of create, destroy Xen vIOMMU will be done in the
> >> Xen tool stack.
> > 
> > Shouldn't we make QEMU have knowledge of the vIOMMU device, then?
> > Won't QEMU need to know about it eventually?
> > 
> 
> Hi Eduardo:
>      Thanks for your review.
>      Xen has some guest modes which doesn't use Qemu and we tried to
> make Xen vIOMMU framework compatible with all guest modes. So far, we
> are adding interrupt remapping function for Xen vIOMMU and find qemu
> doesn't need to know Xen vIOMMU. The check of vcpu number > 255 here
> will be done in Xen side and so skip the check in Qemu to avoid blocking
> Xen creating >255 vcpus.
>      We may make Qemu have knowledge of the vIOMMU device if it's
> necessary when adding new function.

I was expecting it to go through the PC tree, but I will queue it
on x86-next instead.

-- 
Eduardo

Re: [Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Michael S. Tsirkin 6 years, 5 months ago
On Thu, Oct 26, 2017 at 02:19:43PM +0200, Eduardo Habkost wrote:
> On Mon, Aug 21, 2017 at 10:22:15AM +0800, Lan Tianyu wrote:
> > On 2017年08月19日 00:38, Eduardo Habkost wrote:
> > > On Thu, Aug 17, 2017 at 09:37:10AM +0800, Lan Tianyu wrote:
> > >> On 2017年08月16日 19:21, Paolo Bonzini wrote:
> > >>> On 16/08/2017 02:22, Lan Tianyu wrote:
> > >>>> Xen vIOMMU device model will be in Xen hypervisor. Skip vIOMMU
> > >>>> check for Xen here when vcpu number is more than 255.
> > >>>
> > >>> I think you still need to do a check for vIOMMU being enabled.
> > >>
> > >> Yes, this will be done in the Xen tool stack and Qemu doesn't have such
> > >> knowledge. Operations of create, destroy Xen vIOMMU will be done in the
> > >> Xen tool stack.
> > > 
> > > Shouldn't we make QEMU have knowledge of the vIOMMU device, then?
> > > Won't QEMU need to know about it eventually?
> > > 
> > 
> > Hi Eduardo:
> >      Thanks for your review.
> >      Xen has some guest modes which doesn't use Qemu and we tried to
> > make Xen vIOMMU framework compatible with all guest modes. So far, we
> > are adding interrupt remapping function for Xen vIOMMU and find qemu
> > doesn't need to know Xen vIOMMU. The check of vcpu number > 255 here
> > will be done in Xen side and so skip the check in Qemu to avoid blocking
> > Xen creating >255 vcpus.
> >      We may make Qemu have knowledge of the vIOMMU device if it's
> > necessary when adding new function.
> 
> I was expecting it to go through the PC tree, but I will queue it
> on x86-next instead.

I was waiting for an ack from you or Paolo as you participated in the
discussion. But sure, go ahead

Acked-by: Michael S. Tsirkin <mst@redhat.com>



> -- 
> Eduardo

Re: [Qemu-devel] [PATCH] x86: Skip check apic_id_limit for Xen
Posted by Lan Tianyu 6 years, 5 months ago
On 2017年10月26日 22:27, Michael S. Tsirkin wrote:
> On Thu, Oct 26, 2017 at 02:19:43PM +0200, Eduardo Habkost wrote:
>> On Mon, Aug 21, 2017 at 10:22:15AM +0800, Lan Tianyu wrote:
>>> On 2017年08月19日 00:38, Eduardo Habkost wrote:
>>>> On Thu, Aug 17, 2017 at 09:37:10AM +0800, Lan Tianyu wrote:
>>>>> On 2017年08月16日 19:21, Paolo Bonzini wrote:
>>>>>> On 16/08/2017 02:22, Lan Tianyu wrote:
>>>>>>> Xen vIOMMU device model will be in Xen hypervisor. Skip vIOMMU
>>>>>>> check for Xen here when vcpu number is more than 255.
>>>>>>
>>>>>> I think you still need to do a check for vIOMMU being enabled.
>>>>>
>>>>> Yes, this will be done in the Xen tool stack and Qemu doesn't have such
>>>>> knowledge. Operations of create, destroy Xen vIOMMU will be done in the
>>>>> Xen tool stack.
>>>>
>>>> Shouldn't we make QEMU have knowledge of the vIOMMU device, then?
>>>> Won't QEMU need to know about it eventually?
>>>>
>>>
>>> Hi Eduardo:
>>>      Thanks for your review.
>>>      Xen has some guest modes which doesn't use Qemu and we tried to
>>> make Xen vIOMMU framework compatible with all guest modes. So far, we
>>> are adding interrupt remapping function for Xen vIOMMU and find qemu
>>> doesn't need to know Xen vIOMMU. The check of vcpu number > 255 here
>>> will be done in Xen side and so skip the check in Qemu to avoid blocking
>>> Xen creating >255 vcpus.
>>>      We may make Qemu have knowledge of the vIOMMU device if it's
>>> necessary when adding new function.
>>
>> I was expecting it to go through the PC tree, but I will queue it
>> on x86-next instead.
> 
> I was waiting for an ack from you or Paolo as you participated in the
> discussion. But sure, go ahead
> 
> Acked-by: Michael S. Tsirkin <mst@redhat.com>
> 

Great. Thanks.
-- 
Best regards
Tianyu Lan