From: Joerg Roedel <joerg.roedel@amd.com>
To: Avi Kivity <avi@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
David Woodhouse <dwmw2@infradead.org>
Cc: kvm@vger.kernel.org, iommu@lists.linux-foundation.org,
linux-kernel@vger.kernel.org
Subject: [PATCH 0/11] Large Page Support for IOMMU-API and KVM
Date: Thu, 28 Jan 2010 12:37:51 +0100 [thread overview]
Message-ID: <1264678682-30655-1-git-send-email-joerg.roedel@amd.com> (raw)
Hi,
here is a patch set which implements support for variable page sizes in the
IOMMU-API and changes the KVM device passthrough code to map the guest physical
memory with the best page sizes.
With this code a guest with 1GB of memory mapped with a 1GB page will not use
4kb PTEs in the IO page table but will map this memory with these page sizes:
512k, 128k, <io hole>, 1M, 2M, 4M, 8M, 16M, 32M, 64M, 128M, 256M and 512M
instead.
This code also changes the AMD IOMMU driver to implement these page sizes in
the IO page tables.
Please review these patches and send me any comments you might have :-)
To test this code some fixes in the AMD IOMMU driver are required which are
currently in the -tip tree and will probably hit upstream soon. If anybody want
to test this code please pull the code from
git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git iommu/largepages
This branch is based on avi/master and contains the fixes and the patches from
this patchset.
Thanks,
Joerg
Diffstat:
arch/x86/include/asm/amd_iommu_types.h | 34 ++++++
arch/x86/kernel/amd_iommu.c | 195 ++++++++++++++++++++------------
arch/x86/kvm/mmu.c | 18 +---
drivers/base/iommu.c | 43 +++++---
drivers/pci/intel-iommu.c | 22 ++--
include/linux/iommu.h | 24 ++--
include/linux/kvm_host.h | 1 +
virt/kvm/iommu.c | 106 ++++++++++++++----
virt/kvm/kvm_main.c | 25 ++++
9 files changed, 323 insertions(+), 145 deletions(-)
Shortlog:
Joerg Roedel (11):
iommu-api: Rename ->{un}map function pointers to ->{un}map_range
iommu-api: Add iommu_map and iommu_unmap functions
iommu-api: Add ->{un}map callbacks to iommu_ops
VT-d: Change {un}map_range functions to implement {un}map interface
kvm: Introduce kvm_host_page_size
kvm: Change kvm_iommu_map_pages to map large pages
x86/amd-iommu: Make iommu_map_page and alloc_pte aware of page sizes
x86/amd-iommu: Make iommu_unmap_page and fetch_pte aware of page sizes
x86/amd-iommu: Make amd_iommu_iova_to_phys aware of multiple page sizes
x86/amd-iommu: Implement ->{un}map callbacks for iommu-api
iommu-api: Remove iommu_{un}map_range functions
next reply other threads:[~2010-01-28 11:39 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-28 11:37 Joerg Roedel [this message]
2010-01-28 11:37 ` [PATCH 01/11] iommu-api: Rename ->{un}map function pointers to ->{un}map_range Joerg Roedel
2010-01-28 11:37 ` [PATCH 02/11] iommu-api: Add iommu_map and iommu_unmap functions Joerg Roedel
2010-02-07 9:38 ` Avi Kivity
2010-02-07 10:50 ` Joerg Roedel
2010-02-07 10:52 ` Avi Kivity
2010-01-28 11:37 ` [PATCH 03/11] iommu-api: Add ->{un}map callbacks to iommu_ops Joerg Roedel
2010-01-28 11:37 ` [PATCH 04/11] VT-d: Change {un}map_range functions to implement {un}map interface Joerg Roedel
2010-01-28 20:59 ` David Woodhouse
2010-01-29 9:05 ` Joerg Roedel
2010-02-01 14:16 ` [PATCH 04/11 v2] " Joerg Roedel
2010-02-05 11:00 ` Joerg Roedel
2010-01-28 11:37 ` [PATCH 05/11] kvm: Introduce kvm_host_page_size Joerg Roedel
2010-02-07 12:09 ` Avi Kivity
2010-02-07 14:13 ` Joerg Roedel
2010-01-28 11:37 ` [PATCH 06/11] kvm: Change kvm_iommu_map_pages to map large pages Joerg Roedel
2010-01-28 22:24 ` Marcelo Tosatti
2010-01-29 9:32 ` Joerg Roedel
2010-02-01 14:18 ` Joerg Roedel
2010-02-01 19:30 ` Marcelo Tosatti
2010-02-05 11:01 ` Joerg Roedel
2010-02-07 12:22 ` Avi Kivity
2010-02-07 12:41 ` Joerg Roedel
2010-02-07 12:18 ` Avi Kivity
2010-02-07 18:41 ` Marcelo Tosatti
2010-02-08 9:24 ` Avi Kivity
2010-01-28 11:37 ` [PATCH 07/11] x86/amd-iommu: Make iommu_map_page and alloc_pte aware of page sizes Joerg Roedel
2010-01-28 11:37 ` [PATCH 08/11] x86/amd-iommu: Make iommu_unmap_page and fetch_pte " Joerg Roedel
2010-01-28 11:38 ` [PATCH 09/11] x86/amd-iommu: Make amd_iommu_iova_to_phys aware of multiple " Joerg Roedel
2010-01-28 11:38 ` [PATCH 10/11] x86/amd-iommu: Implement ->{un}map callbacks for iommu-api Joerg Roedel
2010-01-28 11:38 ` [PATCH 11/11] iommu-api: Remove iommu_{un}map_range functions Joerg Roedel
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=1264678682-30655-1-git-send-email-joerg.roedel@amd.com \
--to=joerg.roedel@amd.com \
--cc=avi@redhat.com \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@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
all inboxes | Powered by JetHome®