From: Marcel Apfelbaum <marcel@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH V2 0/3] hw/pcie: Introduce Generic PCI Express Root Port
Date: Thu, 12 Jan 2017 18:23:08 +0200 [thread overview]
Message-ID: <c88fdce9-4dc4-3b4e-321f-76e1f9ba1c3a@redhat.com> (raw)
In-Reply-To: <20170112181422-mutt-send-email-mst@kernel.org>
On 01/12/2017 06:20 PM, Michael S. Tsirkin wrote:
> On Thu, Jan 12, 2017 at 06:05:20PM +0200, Marcel Apfelbaum wrote:
>> On 01/12/2017 05:56 PM, Michael S. Tsirkin wrote:
>>> On Wed, Jan 11, 2017 at 02:18:53PM +0200, Marcel Apfelbaum wrote:
>>>> v1 -> v2:
>>>> - Rebased on master.
>>>>
>>>> The Generic Root Port behaves the same as the
>>>> Intel's IOH device with id 3420, without having
>>>> Intel specific attributes.
>>>>
>>>> The device has two purposes:
>>>> (1) Can be used on both X86 and ARM machines.
>>>> (2) It will allow us to tweak the behaviour
>>>> (e.g add vendor-specific PCI capabilities)
>>>> - something that obviously cannot be done
>>>> on a known device.
>>>>
>>>> Patch 1/3: Introduce a base class for Root Ports - most of the code
>>>> is migrated from IOH3420 implementation.
>>>> Patch 2/3: Derives the IOH3420 from the new base class
>>>> Patch 3/3: Introduces the generic Root Port.
>>>>
>>>> Tested with Linux and Windows guests only on x86 hosts.
>>>
>>
>> Hi Michael,
>>
>>> So I understand how it's helpful to share code
>>> with an existing bridge, but I worries me that
>>> you picked up some arbitrary values from the intel chip
>>> and promote them as a standard pcie thing.
>>>
>>
>> I suppose you are referring to the macros, I can duplicate
>> them, of course.
>>
>>> You want to have e.g. base-pcie-root-port and
>>> inherit that. Only put really common stuff in there.
>>> Similar to how we do it in hw/pci/pci_bridge.c
>>>
>>
>> So you prefer a different code file for the generic device.
>> I currently put them both in the same file, I'll split.
>>
>>>
>>> Now we do not want to over-engineer, so I understand
>>> how you might want to say hey I use this option
>>> and intel does the same so we do not need a flag
>>> for that now. And that's fine but please add a comment
>>> to that end.
>>>
>>
>> Indeed, I wanted to keep things simple. I'll add a comment
>> on the functions that are not generic but are the same on
>> both implementations 'by chance'.
>>
>>> And when you do you will discover there's some stuff you
>>> might be able to simplify, e.g. I don't yet see why
>>> you would want AER support there.
>>>
>>
>> I am not sure *why not*.
>> I am 'afraid' people will not use the new port
>> because of missing features and they can see the AER as one of them.
>> Do you see a special issue in imitating Intel's behavior on AER?
>>
>> Thanks,
>> Marcel
>
> Not really, fair enough. Just keep an eye out for caps
> you don't need. E.g. it's worth considering whether
> msi-x would be better since then you can just use
> a fixed vector number without playing tricks like
> you have to with msi.
>
Sure, thanks for the pointers!
I suppose I can change later to msi-x in a follow up patch
to avoid introducing new bugs from the beginning :)
Thanks,
Marcel
>>>> Marcel Apfelbaum (3):
>>>> hw/pcie: Introduce a base class for PCI Express Root Ports
>>>> hw/ioh3420: derive from PCI Express Root Port base class
>>>> hw/pcie: Introduce Generic PCI Express Root Port
>>>>
>>>> default-configs/arm-softmmu.mak | 1 +
>>>> default-configs/i386-softmmu.mak | 1 +
>>>> default-configs/x86_64-softmmu.mak | 1 +
>>>> hw/pci-bridge/Makefile.objs | 1 +
>>>> hw/pci-bridge/ioh3420.c | 152 ++-----------------------
>>>> hw/pci-bridge/pcie_root_port.c | 228 +++++++++++++++++++++++++++++++++++++
>>>> include/hw/pci/pci.h | 1 +
>>>> include/hw/pci/pcie_port.h | 18 +++
>>>> 8 files changed, 258 insertions(+), 145 deletions(-)
>>>> create mode 100644 hw/pci-bridge/pcie_root_port.c
>>>>
>>>> --
>>>> 2.5.5
next prev parent reply other threads:[~2017-01-12 16:23 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-11 12:18 [Qemu-devel] [PATCH V2 0/3] hw/pcie: Introduce Generic PCI Express Root Port Marcel Apfelbaum
2017-01-11 12:18 ` [Qemu-devel] [PATCH V2 1/3] hw/pcie: Introduce a base class for PCI Express Root Ports Marcel Apfelbaum
2017-01-12 15:36 ` Michael S. Tsirkin
2017-01-12 15:51 ` Marcel Apfelbaum
2017-01-11 12:18 ` [Qemu-devel] [PATCH V2 2/3] hw/ioh3420: derive from PCI Express Root Port base class Marcel Apfelbaum
2017-01-11 12:18 ` [Qemu-devel] [PATCH V2 3/3] hw/pcie: Introduce Generic PCI Express Root Port Marcel Apfelbaum
2017-01-12 15:56 ` [Qemu-devel] [PATCH V2 0/3] " Michael S. Tsirkin
2017-01-12 16:05 ` Marcel Apfelbaum
2017-01-12 16:20 ` Michael S. Tsirkin
2017-01-12 16:23 ` Marcel Apfelbaum [this message]
2017-01-12 16:46 ` Michael S. Tsirkin
2017-01-13 8:35 ` Gerd Hoffmann
2017-01-15 16:59 ` Marcel Apfelbaum
2017-01-16 16:46 ` Andrea Bolognani
2017-01-18 12:30 ` Marcel Apfelbaum
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=c88fdce9-4dc4-3b4e-321f-76e1f9ba1c3a@redhat.com \
--to=marcel@redhat.com \
--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).