qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Peter Xu <peterx@redhat.com>
Cc: qemu-devel@nongnu.org, mst@redhat.com, jasowang@redhat.com,
	vkaplans@redhat.com, alex.williamson@redhat.com, wexu@redhat.com,
	pbonzini@redhat.com, cornelia.huck@de.ibm.com,
	dgibson@redhat.com
Subject: Re: [Qemu-devel] [PATCH v4 2/3] memory: introduce IOMMUOps.notify_flag_changed
Date: Wed, 14 Sep 2016 17:22:40 +1000	[thread overview]
Message-ID: <20160914072240.GP15077@voom.fritz.box> (raw)
In-Reply-To: <20160914071243.GM3776@pxdev.xzpeter.org>

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

On Wed, Sep 14, 2016 at 03:12:43PM +0800, Peter Xu wrote:
> On Wed, Sep 14, 2016 at 03:55:28PM +1000, David Gibson wrote:
> 
> [...]
> 
> > > -static void vtd_iommu_notify_started(MemoryRegion *iommu)
> > > +static void vtd_iommu_notify_flag_changed(MemoryRegion *iommu,
> > > +                                          IOMMUNotifierFlag old,
> > > +                                          IOMMUNotifierFlag new)
> > >  {
> > >      VTDAddressSpace *vtd_as = container_of(iommu, VTDAddressSpace, iommu);
> > 
> > Shouldn't this have a sanity check that the new flags doesn't include
> > MAP actions?
> 
> See your r-b for patch 3, thanks! So skipping this one.
> 
> [...]
> 
> > > +static void spapr_tce_notify_flag_changed(MemoryRegion *iommu,
> > > +                                          IOMMUNotifierFlag old,
> > > +                                          IOMMUNotifierFlag new)
> > > +{
> > > +    if (old == IOMMU_NOTIFIER_NONE && new == IOMMU_NOTIFIER_ALL) {
> > > +        spapr_tce_notify_started(iommu);
> > > +    } else if (old == IOMMU_NOTIFIER_ALL && new == IOMMU_NOTIFIER_NONE) {
> > > +        spapr_tce_notify_stopped(iommu);
> > > +    }
> > 
> > This is wrong.  We need to do the notify_start and stop actions if
> > *any* bits are set in the new/old flags, not just if all of them are
> > set.
> 
> Power should need both, right? I can switch all
> 
>   "== IOMMU_NOTIFIER_ALL"
> 
> into:
> 
>   "!= IOMMU_NOTIFIER_NONE"

Yes, that should be right.

> in the next version if you like, but AFAICT they are totally the
> same.

Again, only if you assume things about how the notifiers will be used,
which is not a good look when designing an interface.

> 
> > 
> > I'd also prefer to see notify_started and notify_stopped folded into
> > this function.
> 
> I can do that for v5.
> 
> Thanks,
> 
> -- peterx
> 

-- 
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: 801 bytes --]

  reply	other threads:[~2016-09-14  7:23 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-09  2:57 [Qemu-devel] [PATCH v4 0/3] Introduce IOMMUNotifier struct Peter Xu
2016-09-09  2:57 ` [Qemu-devel] [PATCH v4 1/3] memory: introduce IOMMUNotifier and its caps Peter Xu
2016-09-14  5:48   ` David Gibson
2016-09-14  7:15     ` David Gibson
2016-09-14  7:40       ` Peter Xu
2016-09-14 10:47         ` David Gibson
2016-09-14  8:17       ` Peter Xu
2016-09-14 10:50         ` David Gibson
2016-09-09  2:57 ` [Qemu-devel] [PATCH v4 2/3] memory: introduce IOMMUOps.notify_flag_changed Peter Xu
2016-09-14  5:55   ` David Gibson
2016-09-14  7:12     ` Peter Xu
2016-09-14  7:22       ` David Gibson [this message]
2016-09-14  7:49         ` Peter Xu
2016-09-14 10:37           ` David Gibson
2016-09-14 11:25             ` Peter Xu
2016-09-09  2:57 ` [Qemu-devel] [PATCH v4 3/3] intel_iommu: allow UNMAP notifiers Peter Xu
2016-09-14  5:56   ` David Gibson
2016-09-09  4:05 ` [Qemu-devel] [PATCH v4 0/3] Introduce IOMMUNotifier struct no-reply
2016-09-09  6:41   ` Peter Xu

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=20160914072240.GP15077@voom.fritz.box \
    --to=david@gibson.dropbear.id.au \
    --cc=alex.williamson@redhat.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=dgibson@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=vkaplans@redhat.com \
    --cc=wexu@redhat.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).