Message ID | 20200826143651.7915-13-eperezma@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | memory: Delete assertion in memory_region_unregister_iommu_notifier | expand |
On Wed, Aug 26, 2020 at 10:42 PM Eugenio Pérez <eperezma@redhat.com> wrote: > This improves performance in case of netperf with vhost-net: > * TCP_STREAM: From 9049.59Mbit/s to 9049.59Mbit/s (13%) > What's improvement ? they are the same > * TCP_RR: From 8464.73 trans/s to 8932.703333 trans/s (5.5%) > * UDP_RR: From 8562.08 trans/s to 9005.62/s (5.1%) > * UDP_STREAM: No change observed (insignificant 0.1% improvement) > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > --- > hw/i386/intel_iommu.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > index ddb828da1f..7620a1abbf 100644 > --- a/hw/i386/intel_iommu.c > +++ b/hw/i386/intel_iommu.c > @@ -1960,6 +1960,12 @@ static void > vtd_iotlb_domain_invalidate(IntelIOMMUState *s, uint16_t domain_id) > vtd_iommu_unlock(s); > > QLIST_FOREACH(vtd_as, &s->vtd_as_with_notifiers, next) { > + if (vtd_as->iommu.iommu_notify_flags & IOMMU_NOTIFIER_DEVIOTLB) { > + /* If IOMMU memory region is DEVICE IOTLB type, it does not > make > + * sense to send regular IOMMU notifications. */ > + continue; > + } > + > if (!vtd_dev_to_context_entry(s, pci_bus_num(vtd_as->bus), > vtd_as->devfn, &ce) && > domain_id == vtd_get_domain_id(s, &ce)) { > -- > 2.18.1 > > >
On Wed, Aug 26, 2020 at 6:52 PM 罗勇刚(Yonggang Luo) <luoyonggang@gmail.com> wrote: > > > > On Wed, Aug 26, 2020 at 10:42 PM Eugenio Pérez <eperezma@redhat.com> wrote: >> >> This improves performance in case of netperf with vhost-net: >> * TCP_STREAM: From 9049.59Mbit/s to 9049.59Mbit/s (13%) > > What's improvement ? they are the same > Ouch, it was from 1923.6 Mbit/s to 2175.13 Mbit/s. Thanks for notify it, will fix in next revision! >> >> * TCP_RR: From 8464.73 trans/s to 8932.703333 trans/s (5.5%) >> * UDP_RR: From 8562.08 trans/s to 9005.62/s (5.1%) >> * UDP_STREAM: No change observed (insignificant 0.1% improvement) >> >> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> >> --- >> hw/i386/intel_iommu.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c >> index ddb828da1f..7620a1abbf 100644 >> --- a/hw/i386/intel_iommu.c >> +++ b/hw/i386/intel_iommu.c >> @@ -1960,6 +1960,12 @@ static void vtd_iotlb_domain_invalidate(IntelIOMMUState *s, uint16_t domain_id) >> vtd_iommu_unlock(s); >> >> QLIST_FOREACH(vtd_as, &s->vtd_as_with_notifiers, next) { >> + if (vtd_as->iommu.iommu_notify_flags & IOMMU_NOTIFIER_DEVIOTLB) { >> + /* If IOMMU memory region is DEVICE IOTLB type, it does not make >> + * sense to send regular IOMMU notifications. */ >> + continue; >> + } >> + >> if (!vtd_dev_to_context_entry(s, pci_bus_num(vtd_as->bus), >> vtd_as->devfn, &ce) && >> domain_id == vtd_get_domain_id(s, &ce)) { >> -- >> 2.18.1 >> >> > > > -- > 此致 > 礼 > 罗勇刚 > Yours > sincerely, > Yonggang Luo
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index ddb828da1f..7620a1abbf 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -1960,6 +1960,12 @@ static void vtd_iotlb_domain_invalidate(IntelIOMMUState *s, uint16_t domain_id) vtd_iommu_unlock(s); QLIST_FOREACH(vtd_as, &s->vtd_as_with_notifiers, next) { + if (vtd_as->iommu.iommu_notify_flags & IOMMU_NOTIFIER_DEVIOTLB) { + /* If IOMMU memory region is DEVICE IOTLB type, it does not make + * sense to send regular IOMMU notifications. */ + continue; + } + if (!vtd_dev_to_context_entry(s, pci_bus_num(vtd_as->bus), vtd_as->devfn, &ce) && domain_id == vtd_get_domain_id(s, &ce)) {
This improves performance in case of netperf with vhost-net: * TCP_STREAM: From 9049.59Mbit/s to 9049.59Mbit/s (13%) * TCP_RR: From 8464.73 trans/s to 8932.703333 trans/s (5.5%) * UDP_RR: From 8562.08 trans/s to 9005.62/s (5.1%) * UDP_STREAM: No change observed (insignificant 0.1% improvement) Signed-off-by: Eugenio Pérez <eperezma@redhat.com> --- hw/i386/intel_iommu.c | 6 ++++++ 1 file changed, 6 insertions(+)