All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
To: Igor Mammedov <imammedo@redhat.com>
Cc: peter.maydell@linaro.org, ehabkost@redhat.com,
	shannon.zhaosl@gmail.com, mst@redhat.com,
	richard.henderson@linaro.org, qemu-devel@nongnu.org,
	eric.auger@redhat.com, qemu-arm@nongnu.org, ani@anisinha.ca,
	pbonzini@redhat.com
Subject: Re: [PATCH v4 07/11] pc: Allow instantiating a virtio-iommu device
Date: Fri, 8 Oct 2021 16:24:50 +0100	[thread overview]
Message-ID: <YWBiwiyrLfDYiZNC@myrica> (raw)
In-Reply-To: <20211006091954.79fd0a8d@redhat.com>

On Wed, Oct 06, 2021 at 09:19:54AM +0200, Igor Mammedov wrote:
> > @@ -1367,8 +1368,11 @@ static void pc_virtio_md_pci_unplug(HotplugHandler *hotplug_dev,
> >  static void pc_machine_device_pre_plug_cb(HotplugHandler *hotplug_dev,
> >                                            DeviceState *dev, Error **errp)
> >  {
> > -    if (object_dynamic_cast(OBJECT(dev), TYPE_X86_IOMMU_DEVICE) &&
> > -        x86_iommu_get_default()) {
> > +    PCMachineState *pcms = PC_MACHINE(hotplug_dev);
> > +
> > +    if ((object_dynamic_cast(OBJECT(dev), TYPE_X86_IOMMU_DEVICE) ||
> > +         object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_IOMMU_PCI)) &&
> > +        (x86_iommu_get_default() || pcms->virtio_iommu)) {
> 
> this check is getting uglier,
> may be instead of introducing pcms->virtio_iommu boolean, better approach
> would be adding 'Device* PCMachineState::iommu' and setting it to IOMMU
> so the check would reduce to:
>       if ((object_dynamic_cast(OBJECT(dev), TYPE_X86_IOMMU_DEVICE) ||
>            object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_IOMMU_PCI)))
>       {
>           if (pcms->iommu)
>             err
>           else set pcms->iommu in plug handler or here
>       }
>       
> that also will let to cleanup/get rid of x86_iommu_[s|g]et_default()
> and x86_iommu_default 'global'.
> Maybe replace previous patch with one that would remove
> x86_iommu_[s|g]et_default().

Ok, I can't figure out a nice way to do this at the moment, will think
more about it. Callers of x86_iommu_get_default() still need a helper, and
most but not all assume that the returned object is for IRQ remapping. At
least adding Device *iommu to pcms should be nicer, but not sure about
removing the x86_iommu_get/set_default helpers.

Thanks,
Jean



  reply	other threads:[~2021-10-08 15:27 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-01 17:33 [PATCH v4 00/11] virtio-iommu: Add ACPI support Jean-Philippe Brucker
2021-10-01 17:33 ` [PATCH v4 01/11] hw/acpi: Add VIOT table Jean-Philippe Brucker
2021-10-06  8:09   ` Igor Mammedov
2021-10-08 15:20     ` Jean-Philippe Brucker
2021-10-01 17:33 ` [PATCH v4 02/11] hw/arm/virt-acpi-build: Add VIOT table for virtio-iommu Jean-Philippe Brucker
2021-10-01 17:33 ` [PATCH v4 03/11] hw/arm/virt: Remove device tree restriction " Jean-Philippe Brucker
2021-10-05 11:57   ` Eric Auger
2021-10-08 15:20     ` Jean-Philippe Brucker
2021-10-01 17:33 ` [PATCH v4 04/11] hw/arm/virt: Reject instantiation of multiple IOMMUs Jean-Philippe Brucker
2021-10-06  6:35   ` Igor Mammedov
2021-10-01 17:33 ` [PATCH v4 05/11] hw/arm/virt: Use object_property_set instead of qdev_prop_set Jean-Philippe Brucker
2021-10-05  9:27   ` Eric Auger
2021-10-06  6:36   ` Igor Mammedov
2021-10-01 17:33 ` [PATCH v4 06/11] hw/i386: Move vIOMMU uniqueness check into pc.c Jean-Philippe Brucker
2021-10-05 11:41   ` Eric Auger
2021-10-01 17:33 ` [PATCH v4 07/11] pc: Allow instantiating a virtio-iommu device Jean-Philippe Brucker
2021-10-05 19:18   ` Eric Auger
2021-10-06  7:19   ` Igor Mammedov
2021-10-08 15:24     ` Jean-Philippe Brucker [this message]
2021-10-08 10:46   ` Michael S. Tsirkin
2021-10-01 17:33 ` [PATCH v4 08/11] tests/acpi: allow updates of VIOT expected data files Jean-Philippe Brucker
2021-10-06  8:12   ` Igor Mammedov
2021-10-08 15:26     ` Jean-Philippe Brucker
2021-10-11 15:55       ` Igor Mammedov
2021-10-01 17:33 ` [PATCH v4 09/11] tests/acpi: add test cases for VIOT Jean-Philippe Brucker
2021-10-05 10:27   ` Ani Sinha
2021-10-08 15:27     ` Jean-Philippe Brucker
2021-10-05 19:40   ` Eric Auger
2021-10-06  8:14   ` Igor Mammedov
2021-10-01 17:33 ` [PATCH v4 10/11] tests/acpi: add expected blob for VIOT test on virt machine Jean-Philippe Brucker
2021-10-05 10:04   ` Ani Sinha
2021-10-08 15:33     ` Jean-Philippe Brucker
2021-10-05 19:38   ` Eric Auger
2021-10-08 15:30     ` Jean-Philippe Brucker
2021-10-01 17:33 ` [PATCH v4 11/11] tests/acpi: add expected blobs for VIOT test on q35 machine Jean-Philippe Brucker
2021-10-05 10:07   ` Ani Sinha
2021-10-05 19:41   ` Eric Auger
2021-10-05 15:45 ` [PATCH v4 00/11] virtio-iommu: Add ACPI support Michael S. Tsirkin
2021-10-08 15:17   ` Jean-Philippe Brucker
2021-10-11 10:10     ` Haiwei Li
2021-10-11 17:34       ` Jean-Philippe Brucker
2021-10-13  0:56         ` Haiwei Li
2021-10-18 15:25     ` Michael S. Tsirkin
2021-10-19 15:39       ` Jean-Philippe Brucker
2021-10-20 15:17         ` Michael S. Tsirkin

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=YWBiwiyrLfDYiZNC@myrica \
    --to=jean-philippe@linaro.org \
    --cc=ani@anisinha.ca \
    --cc=ehabkost@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=shannon.zhaosl@gmail.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 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.