From: Marcel Apfelbaum <marcel@redhat.com>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
Laszlo Ersek <lersek@redhat.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH] pci: allow 32-bit PCI IO accesses to pass through the PCI bridge
Date: Thu, 19 Oct 2017 12:38:41 +0300 [thread overview]
Message-ID: <9b513080-2ae0-0763-3bd4-ab0c947c4263@redhat.com> (raw)
In-Reply-To: <c9c2732e-ceb6-177f-db93-444a59a5a82a@ilande.co.uk>
On 11/10/2017 9:35, Mark Cave-Ayland wrote:
> On 01/10/17 22:44, Mark Cave-Ayland wrote:
>
>> On 28/09/17 08:56, Laszlo Ersek wrote:
>>
>>> On 09/28/17 09:31, Mark Cave-Ayland wrote:
>>>> On 25/09/17 09:11, Dr. David Alan Gilbert wrote:
>>>>
>>>>> * Marcel Apfelbaum (marcel@redhat.com) wrote:
>>>>>> On 23/09/2017 11:23, Mark Cave-Ayland wrote:
>>>>>>> On 22/09/17 23:18, Laszlo Ersek wrote:
>>>>>>>
>>>>>>>> On 09/22/17 14:18, Mark Cave-Ayland wrote:
>>>>>>>>> Whilst the underlying PCI bridge implementation supports 32-bit PCI IO
>>>>>>>>> accesses, unfortunately they are truncated at the legacy 64K limit.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>>>>>>>>> ---
>>>>>>>>> hw/pci/pci_bridge.c | 3 ++-
>>>>>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>>>>
>>>>>>>>> diff --git a/hw/pci/pci_bridge.c b/hw/pci/pci_bridge.c
>>>>>>>>> index 17feae5..a47d257 100644
>>>>>>>>> --- a/hw/pci/pci_bridge.c
>>>>>>>>> +++ b/hw/pci/pci_bridge.c
>>>>>>>>> @@ -379,7 +379,8 @@ void pci_bridge_initfn(PCIDevice *dev, const char *typename)
>>>>>>>>> sec_bus->address_space_mem = &br->address_space_mem;
>>>>>>>>> memory_region_init(&br->address_space_mem, OBJECT(br), "pci_bridge_pci", UINT64_MAX);
>>>>>>>>> sec_bus->address_space_io = &br->address_space_io;
>>>>>>>>> - memory_region_init(&br->address_space_io, OBJECT(br), "pci_bridge_io", 65536);
>>>>>>>>> + memory_region_init(&br->address_space_io, OBJECT(br), "pci_bridge_io",
>>>>>>>>> + UINT32_MAX);
>>>>>>>>> br->windows = pci_bridge_region_init(br);
>>>>>>>>> QLIST_INIT(&sec_bus->child);
>>>>>>>>> QLIST_INSERT_HEAD(&parent->child, sec_bus, sibling);
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> Hi Mark,
>>>>>>
>>>>>>>> Based on the commit message, I assume this change is guest-visible. If
>>>>>>>> so, should it be made dependent on a compat property, so that it doesn't
>>>>>>>> cause problems with migration?
>>>>>>>
>>>>>>> In order to enable 32-bit IO accesses the PCI bridge needs to set bit 0
>>>>>>> in the IO_LIMIT and IO_BASE registers - this bit is read-only to guests,
>>>>>>> so unless a PCI bridge has this bit set then it's impossible for this
>>>>>>> change to be guest visible.
>>>>>>>
>>>>>>> I did a grep for PCI_IO_RANGE_TYPE_32 and didn't see any existing users
>>>>>>> (other than an upcoming patchset from me!), so this combined with the
>>>>>>> fact that without this patch the feature is broken makes me think that I
>>>>>>> am the first user and so existing guests won't have a problem.
>>>>>>>
>>>>>>
>>>>>> (adding Dave for his expertise)
>>>>>>
>>>>>> Do you know how the migration code will behave if it will have
>>>>>> a 65k address space on source and MAX UINT on destination?
>>>>>> (and the other way around for rolling back)
>>>>>
>>>>> Hmm not sure; we don't migrate regions explicitly; just RAMBlocks
>>>>> and devices that back them. If the change is visible in the IO
>>>>> addresses allocated to the PCI devices or in the config space then
>>>>> it might fail.
>>>>
>>>> For reference here is the link to the sun4u patch I posted yesterday
>>>> that requires this fix if anyone else would like to test:
>>>> https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg07355.html.
>>>>
>>>> Other than that are there any further objections to this patch?
>>>
>>> None from my side. (I didn't "object" to begin with :) , I was just
>>> curious about any possible migration impact.)
>>
>> Okay great! I guess I mis-read your query as being a NACK for the patch.
>
> Hi Marcel,
>
> Did you manage to get any further with your testing? It appears that
> freeze is coming soon and my remaining changes for the sun4u machine are
> currently blocked on this patch :/
>
Not yet, but I see your patch is already merged.
I'll let you know if there will be any problems.
Thanks,
Marcel
>
> ATB,
>
> Mark.
>
next prev parent reply other threads:[~2017-10-19 9:38 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-22 12:18 [Qemu-devel] [PATCH] pci: allow 32-bit PCI IO accesses to pass through the PCI bridge Mark Cave-Ayland
2017-09-22 21:21 ` Richard Henderson
2017-09-22 22:18 ` Laszlo Ersek
2017-09-23 8:23 ` Mark Cave-Ayland
2017-09-24 15:43 ` Marcel Apfelbaum
2017-09-24 16:56 ` Mark Cave-Ayland
2017-09-25 8:11 ` Dr. David Alan Gilbert
2017-09-28 7:31 ` Mark Cave-Ayland
2017-09-28 7:56 ` Laszlo Ersek
2017-10-01 21:44 ` Mark Cave-Ayland
2017-10-11 6:35 ` Mark Cave-Ayland
2017-10-19 9:38 ` Marcel Apfelbaum [this message]
2017-09-28 9:19 ` Marcel Apfelbaum
2017-10-01 21:49 ` Mark Cave-Ayland
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=9b513080-2ae0-0763-3bd4-ab0c947c4263@redhat.com \
--to=marcel@redhat.com \
--cc=dgilbert@redhat.com \
--cc=lersek@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mst@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 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).