qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: lvivier@redhat.com, agraf@suse.de
Cc: mst@redhat.com, abolonga@redhat.com, aik@ozlabs.ru,
	qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
	mdroth@linux.vnet.ibm.com, benh@kernel.crashing.org,
	David Gibson <david@gibson.dropbear.id.au>
Subject: [Qemu-devel] [PATCH 0/7] Improve PCI IO window orgnaization for pseries
Date: Wed, 12 Oct 2016 15:29:45 +1100	[thread overview]
Message-ID: <1476246592-24228-1-git-send-email-david@gibson.dropbear.id.au> (raw)

The current way we organize the IO windows into PCI space for the
pseries machine type has several problems.

  - It makes it difficult to create very large MMIO spaces which is
    necessary for certain PCI devices with very large BARs.  This
    problem has been known for a while.

  - More recently we discovered a more serious problem: it prevents
    more than 1TiB of RAM being added to a pseries guest.

  - It doesn't make very efficient use of address space.

Fixing this is complicated by keeping migration from old versionss
working and working out what things belong on which side of the
abstraction barrier between the machine type and the host bridge
device.

This series addresses all these problems.  Patches 1-3/7 perform
preliminary cleanups to the spapr specific PCI test code, which we'll
need to get the tests working with the changed implementation.  4-5/7
represent a minimal fix for the most serious problem (the 1 TiB limit)
- once polished, I'll consider submiting these for the stable branch.
6-7/7 complete a more comprehensive fix.

Changes since RFC:
  * Rebase
  * Fixed some bugs
  * Fixed up PCI testcases which were broken by the change (due to
    test limitations)
  * Seriously contemplated, then rejected a completely different
    approach

David Gibson (7):
  libqos: Isolate knowledge of spapr memory map to qpci_init_spapr()
  libqos: Correct error in PCI hole sizing for spapr
  libqos: Limit spapr-pci to 32-bit MMIO for now
  spapr_pci: Delegate placement of PCI host bridges to machine type
  spapr: Adjust placement of PCI host bridge to allow > 1TiB RAM
  spapr_pci: Add a 64-bit MMIO window
  spapr: Improved placement of PCI host bridges in guest memory map

 hw/ppc/spapr.c              | 126 +++++++++++++++++++++++++++++++++++++++++++-
 hw/ppc/spapr_pci.c          |  91 ++++++++++++++++++++++----------
 include/hw/pci-host/spapr.h |  25 ++++-----
 include/hw/ppc/spapr.h      |   5 ++
 tests/endianness-test.c     |   3 +-
 tests/libqos/pci-spapr.c    | 116 ++++++++++++++++++++++------------------
 tests/spapr-phb-test.c      |   2 +-
 7 files changed, 274 insertions(+), 94 deletions(-)

-- 
2.7.4

             reply	other threads:[~2016-10-12  4:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-12  4:29 David Gibson [this message]
2016-10-12  4:29 ` [Qemu-devel] [PATCH 1/7] libqos: Isolate knowledge of spapr memory map to qpci_init_spapr() David Gibson
2016-10-12  4:29 ` [Qemu-devel] [PATCH 2/7] libqos: Correct error in PCI hole sizing for spapr David Gibson
2016-10-12  4:29 ` [Qemu-devel] [PATCH 3/7] libqos: Limit spapr-pci to 32-bit MMIO for now David Gibson
2016-10-12  4:29 ` [Qemu-devel] [PATCH 4/7] spapr_pci: Delegate placement of PCI host bridges to machine type David Gibson
2016-10-12  4:29 ` [Qemu-devel] [PATCH 5/7] spapr: Adjust placement of PCI host bridge to allow > 1TiB RAM David Gibson
2016-10-12  4:29 ` [Qemu-devel] [PATCH 6/7] spapr_pci: Add a 64-bit MMIO window David Gibson
2016-10-12  4:29 ` [Qemu-devel] [PATCH 7/7] spapr: Improved placement of PCI host bridges in guest memory map David Gibson
2016-10-12  4:43 ` [Qemu-devel] [PATCH 0/7] IGNORE, SORRY (was: Improve PCI IO window orgnaization for pseries) David Gibson
2016-10-12  8:26 ` [Qemu-devel] [PATCH 0/7] Improve PCI IO window orgnaization for pseries no-reply

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=1476246592-24228-1-git-send-email-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=abolonga@redhat.com \
    --cc=agraf@suse.de \
    --cc=aik@ozlabs.ru \
    --cc=benh@kernel.crashing.org \
    --cc=lvivier@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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 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).