qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Auger Eric <eric.auger@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Yan Zhao" <yan.y.zhao@intel.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	qemu-ppc@nongnu.org, "Jason Wang" <jasowang@redhat.com>,
	"Juan Quintela" <quintela@redhat.com>,
	qemu-devel@nongnu.org, "Peter Xu" <peterx@redhat.com>,
	"Eugenio Pérez" <eperezma@redhat.com>,
	qemu-arm@nongnu.org, "Hervé Poussineau" <hpoussin@reactos.org>,
	"Avi Kivity" <avi@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>
Subject: Re: [RFC v8 5/5] memory: Skip bad range assertion if notifier is DEVIOTLB type
Date: Thu, 3 Sep 2020 09:57:37 +1000	[thread overview]
Message-ID: <20200902235737.GF1897@yekko.fritz.box> (raw)
In-Reply-To: <44d9e8a5-79fa-11c8-9ec1-4c3d76929408@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2310 bytes --]

On Wed, Sep 02, 2020 at 04:24:50PM +0200, Auger Eric wrote:
> Hi Eugenio,
> 
> On 9/1/20 4:26 PM, Eugenio Pérez wrote:
> > Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
> Please could you explain in the commit message why you need to remove
> the assert()? I know you described the assert() in the cover letter but
> the commit msg is the one that remains.

Right... neither in the cover letter nor the individual patches,
AFAICT, does anything actually explain why that assert() could be
hit.  Nor does it connect the dots from an assert() hitting to adding
infrastructure for a new event type.

> > ---
> >  softmmu/memory.c | 13 +++++++++++--
> >  1 file changed, 11 insertions(+), 2 deletions(-)
> > 
> > diff --git a/softmmu/memory.c b/softmmu/memory.c
> > index 09b3443eac..3ee99b4dc0 100644
> > --- a/softmmu/memory.c
> > +++ b/softmmu/memory.c
> > @@ -1895,6 +1895,7 @@ void memory_region_notify_iommu_one(IOMMUNotifier *notifier,
> >  {
> >      IOMMUTLBEntry *entry = &event->entry;
> >      hwaddr entry_end = entry->iova + entry->addr_mask;
> > +    IOMMUTLBEntry tmp = *entry;
> >  
> >      /*
> >       * Skip the notification if the notification does not overlap
> > @@ -1904,10 +1905,18 @@ void memory_region_notify_iommu_one(IOMMUNotifier *notifier,
> >          return;
> >      }
> >  
> > -    assert(entry->iova >= notifier->start && entry_end <= notifier->end);
> > +    if (notifier->notifier_flags & IOMMU_NOTIFIER_DEVIOTLB) {
> > +        /* Crop (iova, addr_mask) to range */
> > +        tmp.iova = MAX(tmp.iova, notifier->start);
> > +        tmp.addr_mask = MIN(entry_end, notifier->end) - tmp.iova;
> > +        /* Confirm no underflow */
> > +        assert(MIN(entry_end, notifier->end) >= tmp.iova);
> > +    } else {
> > +        assert(entry->iova >= notifier->start && entry_end <= notifier->end);
> > +    }
> >  
> >      if (event->type & notifier->notifier_flags) {
> > -        notifier->notify(notifier, entry);
> > +        notifier->notify(notifier, &tmp);
> >      }
> >  }
> >  
> > 
> Thanks
> 
> Eric
> 

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2020-09-03  0:06 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-01 14:26 [RFC v8 0/5] memory: Delete assertion in memory_region_unregister_iommu_notifier Eugenio Pérez
2020-09-01 14:26 ` [RFC v8 1/5] memory: Rename memory_region_notify_one to memory_region_notify_iommu_one Eugenio Pérez
2020-09-01 20:44   ` Peter Xu
2020-09-02  0:37   ` David Gibson
2020-09-02  7:42   ` Juan Quintela
2020-09-02  9:04   ` Auger Eric
2020-09-01 14:26 ` [RFC v8 2/5] memory: Add IOMMUTLBEvent Eugenio Pérez
2020-09-01 20:54   ` Peter Xu
2020-09-02  8:14     ` Eugenio Perez Martin
2020-09-02  7:54   ` Juan Quintela
2020-09-02  8:39     ` Eugenio Perez Martin
2020-09-02 10:17   ` Auger Eric
2020-09-02 13:18     ` Eugenio Perez Martin
2020-09-02 13:39       ` Auger Eric
2020-09-02 13:58         ` Eugenio Perez Martin
2020-09-02 14:02           ` Eugenio Perez Martin
2020-09-01 14:26 ` [RFC v8 3/5] memory: Add IOMMU_DEVIOTLB_UNMAP IOMMUTLBNotificationType Eugenio Pérez
2020-09-01 20:56   ` Peter Xu
2020-09-02  7:55   ` Juan Quintela
2020-09-02 10:31   ` Auger Eric
2020-09-03 10:13     ` Eugenio Perez Martin
2020-09-03 11:06       ` Auger Eric
2020-09-03 12:21         ` Eugenio Perez Martin
2020-09-01 14:26 ` [RFC v8 4/5] intel_iommu: Do not notify regular iotlb to device-iotlb notifiers Eugenio Pérez
2020-09-01 21:04   ` Peter Xu
2020-09-03  6:07     ` Eugenio Perez Martin
2020-09-01 14:26 ` [RFC v8 5/5] memory: Skip bad range assertion if notifier is DEVIOTLB type Eugenio Pérez
2020-09-01 21:05   ` Peter Xu
2020-09-02  7:59   ` Juan Quintela
2020-09-02 14:24   ` Auger Eric
2020-09-02 23:57     ` David Gibson [this message]
2020-09-03 17:05       ` Eugenio Perez Martin
2020-09-01 21:13 ` [RFC v8 0/5] memory: Delete assertion in memory_region_unregister_iommu_notifier Peter Xu
2020-09-02  8:01   ` Eugenio Perez Martin

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=20200902235737.GF1897@yekko.fritz.box \
    --to=david@gibson.dropbear.id.au \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=avi@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=eperezma@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=hpoussin@reactos.org \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=rth@twiddle.net \
    --cc=yan.y.zhao@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).