All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/6] q35: make pci window address/size match guest cfg
Date: Tue, 10 Sep 2013 18:25:42 +0300	[thread overview]
Message-ID: <20130910152542.GA2617@redhat.com> (raw)
In-Reply-To: <20130910170543.4b22a771@nial.usersys.redhat.com>

On Tue, Sep 10, 2013 at 05:05:43PM +0200, Igor Mammedov wrote:
> On Tue, 10 Sep 2013 17:16:24 +0300
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Tue, Sep 10, 2013 at 04:09:21PM +0200, Igor Mammedov wrote:
> > > On Tue, 10 Sep 2013 16:53:58 +0300
> > > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > > 
> > > > On Tue, Sep 10, 2013 at 03:46:13PM +0200, Igor Mammedov wrote:
> > > > > On Tue, 10 Sep 2013 16:46:36 +0300
> > > > > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > > > > 
> > > > > > On Tue, Sep 10, 2013 at 03:37:12PM +0200, Igor Mammedov wrote:
> > > > > > > On Wed, 4 Sep 2013 13:48:29 +0300
> > > > > > > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > > > > > > 
> > > > > > > > For Q35, MMCFG address and size are guest configurable.
> > > > > > > > Update w32 property to make it behave accordingly.
> > > > > > > >
> > > > > > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > > > > > > > ---
> > > > > > > >  hw/pci-host/q35.c | 10 ++++++++++
> > > > > > > >  1 file changed, 10 insertions(+)
> > > > > > > > 
> > > > > > > > diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
> > > > > > > > index 4febd24..3f1d447 100644
> > > > > > > > --- a/hw/pci-host/q35.c
> > > > > > > > +++ b/hw/pci-host/q35.c
> > > > > > > > @@ -214,6 +214,16 @@ static void mch_update_pciexbar(MCHPCIState *mch)
> > > > > > > >      }
> > > > > > > >      addr = pciexbar & addr_mask;
> > > > > > > >      pcie_host_mmcfg_update(pehb, enable, addr, length);
> > > > > > > > +    /* Leave enough space for the MCFG BAR */
> > > > > > > > +    /*
> > > > > > > > +     * TODO: this matches current bios behaviour, but it's not a power of two,
> > > > > > > > +     * which means an MTRR can't cover it exactly.
> > > > > > > > +     */
> > > > > > > > +    if (enable) {
> > > > > > > > +        mch->pci_info.w32.begin = addr + length;
> > > > > > > > +    } else {
> > > > > > > > +        mch->pci_info.w32.begin = MCH_HOST_BRIDGE_PCIEXBAR_DEFAULT;
> > > > > > > > +    }
> > > > > > > >  }
> > > > > > > I probably miss something but where is remapping in system address space?
> > > > > > > If there is none then, then updated w32 might mismatch actually/initially mapped alias.
> > > > > > > 
> > > > > > > >  /* PAM */
> > > > > > 
> > > > > > You mean mmcfg?
> > > > > > The re-mapping is in hw/pci/pcie_host.c
> > > > > no, I mean 32-bit PCI hole
> > > > 
> > > > It works differently - see mch_init.
> > > > 32-bit PCI hole is not remapped - instead mmcfg overlaps it
> > > > and shadows a chunk of it.
> > > > 
> > > it probably won't cause harm, but actual pci_hole alias doesn't match
> > > its window reported via properties anymore (it's just inconsistent).
> > 
> > That's exactly what happens at the moment too:
> > for q35 pci hole has a chunk that is not reported in w32.
> > 
> > Do you imply that w32 should just report the PCI hole,
> > and make users (e.g. acpi) take mmcfg out of that?

> initial pci_hole alias in system AS doesn't include mmcfg, it's mapped right after mmcfg and
> w32 range matches alias exactly.

That would be a bug (unrelated to this patch series).
But I don't see this code: looking at mch_init,
    memory_region_add_subregion(mch->system_memory, mch->below_4g_mem_size,
                                &mch->pci_hole);

so we have pci hole right after memory, and overlapping mmcfg,
which makes sense to me.

> But after mmcfg update that might be not true. I suggest to
> move/remap alias to match new w32, to be consistent.



> > 
> > 

  reply	other threads:[~2013-09-10 15:23 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-04 10:48 [Qemu-devel] [PATCH 0/6] pci: keep window properties up to date Michael S. Tsirkin
2013-09-04 10:48 ` [Qemu-devel] [PATCH 1/6] q35: make pci window address/size match guest cfg Michael S. Tsirkin
2013-09-10 13:37   ` Igor Mammedov
2013-09-10 13:46     ` Michael S. Tsirkin
2013-09-10 13:46       ` Igor Mammedov
2013-09-10 13:53         ` Michael S. Tsirkin
2013-09-10 14:09           ` Igor Mammedov
2013-09-10 14:16             ` Michael S. Tsirkin
2013-09-10 15:05               ` Igor Mammedov
2013-09-10 15:25                 ` Michael S. Tsirkin [this message]
2013-09-04 10:48 ` [Qemu-devel] [PATCH 2/6] range: add Range to typedefs Michael S. Tsirkin
2013-09-04 10:48 ` [Qemu-devel] [PATCH 3/6] range: add min/max operations on ranges Michael S. Tsirkin
2013-09-10  9:35   ` Igor Mammedov
2013-09-10 12:51     ` Michael S. Tsirkin
2013-09-04 10:48 ` [Qemu-devel] [PATCH 4/6] pci: add helper to retrieve the 64-bit range Michael S. Tsirkin
2013-09-10 13:40   ` Igor Mammedov
2013-09-10 13:50     ` Michael S. Tsirkin
2013-09-10 17:05       ` Igor Mammedov
2013-09-10 17:28         ` Michael S. Tsirkin
2013-09-04 10:48 ` [Qemu-devel] [PATCH 5/6] q35: use 64 bit window programmed by guest Michael S. Tsirkin
2013-09-10 14:12   ` Igor Mammedov
2013-09-10 14:19     ` Michael S. Tsirkin
2013-09-04 10:48 ` [Qemu-devel] [PATCH 6/6] piix: " Michael S. Tsirkin

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=20130910152542.GA2617@redhat.com \
    --to=mst@redhat.com \
    --cc=imammedo@redhat.com \
    --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.