From: Paolo Bonzini <pbonzini@redhat.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: aik@ozlabs.ru, alex.williamson@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/4] vfio: Move container list to iommu MemoryRegion
Date: Sat, 27 Apr 2013 14:17:54 +0200 [thread overview]
Message-ID: <517BC1F2.70405@redhat.com> (raw)
In-Reply-To: <20130427094927.GC20202@truffula.fritz.box>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 27/04/2013 11:49, David Gibson ha scritto:
>> There's no fundamental reason for VFIO to use multiple
>> MemoryListeners. It could use one for all VFIO instances.
>
> Actually, there kind of is. Using a new listener for each new
> container means the listener framework automatically invokes
> callbacks for all the existing reasons, allowing us to map them
> into the container. With a single listener, we'd have to manually
> write logic to map all the existing mappings into each new
> container.
Ah, thanks for teaching me. It is indeed more convenient.
>>> More importantly, what I'm working towards here is vfio support
>>> for guest visible IOMMUs that don't have all of guest RAM
>>> mapped into them initially. In that case there won't (and
>>> can't) be any MemoryListener at all.
>>
>> Why? All you want here is to look for appearance of an IOMMU
>> MemoryRegion in the flat representation of the AddressSpace.
>> That's exactly what the MemoryListener does---of course that's a
>> different MemoryListener implementation than VFIO's current one.
>>
>> The MemoryListener is used for a lot of different things, I find
>> it hard to believe that this is not a variation on one of them.
>
> Uh.. so, yes we might actually want a memorylistener to watch for
> appearance of iommu regions, if there are memoryregion layers
> between us and the iommu region itself.
>
> But the point remains that from the code which implements the
> guest side IOMMU we have to somehow invoke a hook which will make
> parallel mappings in the vfio container. That will need to go from
> the iommu code's handle on the address space - a MemoryRegion - to
> vfio's handle on the address space, the vfio container. I don't
> see a way to do that without having a vfio private pointer in the
> memoryregion, that isn't much uglier than that minor encapsulation
> breach.
Ok, knowing about changes that happen in the IOMMU mapping is indeed
out of scope of MemoryListeners. What about adding a NotifierList?
Then VFIO can register a notifier and use it to learn about "events"
in the IOMMU mapping. The notifier data can be a MemoryRegionSection
or IOMMUTableEntry, whatever you find more convenient.
Paolo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQIcBAEBAgAGBQJRe8HyAAoJEBvWZb6bTYbyZCwP+gMnSTE/zmzYWXQtnXgS5XrD
ezsOO55RfV6awehSa0ITGzuMzatn3DHakp0YAfcWJaz3cdFlAT+xWg4PNbw4yilJ
a/kFoG7sG4xXQD0bEkgZmHxyPHhKhSeKQfTUJ7FRjjEDWCDXo/5fLBX01tvKefYF
DPUKK7vQANyxfsUFzqN8qJHQ4cZoA209sILCbRXdAsPIj++sBx9TPQYDoCAGNFZd
OlB60yLXdwMlb1VrUlNbZOvdut8Ky6L1RfalKgKXyZnkCFssp02CKLaubyPw0WRk
8N7xjvojEnQb82Kk5hSfsVOdwZNO03GkjhcgtuBhk90Hw43fO7JhbPYCg32EvX1E
4SX+NbbL7WYFMVqe019zjKLQ4ZX5/TdUoMJo1TqtATHUyn4k7G0cWpO52p1tr/Iw
FN8l6kzOZH1H0DbBYyc+4ifFxBJ9WiWUDUKr+CJF4EhDxzcceC2aXXTLYOA9mD2Y
oMh4gDdwlelzXO4JuGYXSU/dG8cZ0HdGnCrUO5KgQJwSio/BkUece5ga8X3qUVdG
p/Z2ZCI2xMVv/IbPVR5vJtDkPIxOmnyjQKQrMDjv7EQSf8yrW3rMcqgnxVgZZoob
o96krNwAr5tQT2a9a/U2qne6ueVe0BxcqPkd+8n5ybh/YKzjWed2r1K2Oe4ZNved
a+Qi/12Z+Pv9zTZrMH37
=AtuM
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2013-04-27 12:18 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-26 6:02 [Qemu-devel] [0/4] RFC: Preparations for VFIO and guest IOMMUs (v2) David Gibson
2013-04-26 6:02 ` [Qemu-devel] [PATCH 1/4] Fix vmw_pvscsi.c for iommu support changes David Gibson
2013-04-26 8:19 ` Paolo Bonzini
2013-04-26 11:04 ` David Gibson
2013-04-26 6:02 ` [Qemu-devel] [PATCH 2/4] vfio: Associate VFIO groups with (guest) IOMMU address spaces David Gibson
2013-04-26 6:02 ` [Qemu-devel] [PATCH 3/4] vfio: Move container list to iommu MemoryRegion David Gibson
2013-04-26 8:23 ` Paolo Bonzini
2013-04-26 11:31 ` David Gibson
2013-04-26 13:40 ` Paolo Bonzini
2013-04-27 9:49 ` David Gibson
2013-04-27 12:17 ` Paolo Bonzini [this message]
2013-04-28 1:58 ` David Gibson
2013-04-29 8:11 ` Paolo Bonzini
2013-04-29 11:00 ` David Gibson
2013-04-29 11:38 ` Paolo Bonzini
2013-04-29 11:56 ` David Gibson
2013-04-29 13:44 ` Paolo Bonzini
2013-04-30 2:05 ` David Gibson
2013-04-30 2:23 ` David Gibson
2013-04-30 7:30 ` Paolo Bonzini
2013-04-30 7:54 ` David Gibson
2013-04-29 2:11 ` [Qemu-trivial] [PATCH] memory: give name every AddressSpace Alexey Kardashevskiy
2013-04-29 2:11 ` [Qemu-devel] " Alexey Kardashevskiy
2013-04-29 8:16 ` [Qemu-trivial] " Paolo Bonzini
2013-04-29 8:16 ` [Qemu-devel] " Paolo Bonzini
2013-04-29 8:21 ` [Qemu-trivial] " Alexey Kardashevskiy
2013-04-29 8:21 ` [Qemu-devel] " Alexey Kardashevskiy
2013-04-29 9:25 ` [Qemu-trivial] " Paolo Bonzini
2013-04-29 9:25 ` [Qemu-devel] " Paolo Bonzini
2013-04-29 11:09 ` [Qemu-trivial] " David Gibson
2013-04-29 11:09 ` [Qemu-devel] " David Gibson
2013-04-30 2:14 ` Alexey Kardashevskiy
2013-04-26 6:02 ` [Qemu-devel] [PATCH 4/4] vfio: Only use memory listeners when appropriate David Gibson
2013-04-26 15:42 ` [Qemu-devel] [0/4] RFC: Preparations for VFIO and guest IOMMUs (v2) Alex Williamson
2013-04-27 9:51 ` David Gibson
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=517BC1F2.70405@redhat.com \
--to=pbonzini@redhat.com \
--cc=aik@ozlabs.ru \
--cc=alex.williamson@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=qemu-devel@nongnu.org \
/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.