From: Peter Xu <peterx@redhat.com>
To: Alexander Gordeev <agordeev@redhat.com>
Cc: Andrew Jones <drjones@redhat.com>,
kvm@vger.kernel.org, rkrcmar@redhat.com, jan.kiszka@web.de,
pbonzini@redhat.com
Subject: Re: [PATCH kvm-unit-tests 06/17] pci: introduce struct pci_dev
Date: Tue, 8 Nov 2016 14:59:17 -0500 [thread overview]
Message-ID: <20161108195917.GA19059@pxdev.xzpeter.org> (raw)
In-Reply-To: <20161108175416.GD10352@agordeev.lab.eng.brq.redhat.com>
On Tue, Nov 08, 2016 at 06:54:16PM +0100, Alexander Gordeev wrote:
[...]
> > > IMHO actually it'll be nicer with:
> > >
> > > struct pci_dev *pci_find_dev(uint16_t vendor_id, uint16_t device_id);
> >
> > Yes, I was going to suggest this too, but then...
> >
> > >
> > > But this needs dynamic allocation of memory, which might be an
> > > overkill for kvm-unit-test. So I chose to allocate the pci_dev on
> > > caller stack.
> >
> > ...saw the value of avoiding the alloc. That said, we do have precedent
> > for allocating in lib/* code already (virtio_bind), and I am currently
> > reworking x86's memory management code in order to enable malloc/calloc
> > use within lib code for x86. So we could go the alloc way as well...
> >
> > >
> > > Anyway, I take the interface issue as a matter of taste.
> >
> > Not quite. I see Alex's reasoning. Perhaps users want to simply query
> > if a device is there (pci_find_dev), but not actually init a pci_dev
> > struct each time they call it. Alex's proposal keeps pci_find_dev more
> > generally useful.
Sounds reasonable.
>
> Yep. So in the end of the day I would kept pci_find_dev() and added
> pci_dev_alloc()/pci_dev_free() helpers (not sure about naming though).
> The former would have to initialize pci_dev data to be consistent
> and safely used by any other PCI API that takes pci_dev pointer.
Then I'll keep the old pci_find_dev() interface. And then when init a
PCI device, it will look like:
struct pci_dev;
pcidevaddr_t dev_addr;
dev_addr = pci_find_dev(VENDOR_ID, DEVICE_ID);
if (dev_addr == PCIDEVADDR_INVALID)
goto fail;
pci_dev_init(&pci_dev, dev_addr);
pci_enable_defaults(&pci_dev);
Introducing pci_dev_alloc()/free() is a good idea as well. Since that
can be a work upon current codes, I'll avoid doing it in this series
to make the series shorter (it's already longer than I thought it
should be :-).
Thanks,
-- peterx
next prev parent reply other threads:[~2016-11-08 19:59 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-26 7:47 [PATCH kvm-unit-tests 00/17] VT-d unit test Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 01/17] x86: intel-iommu: add vt-d init test Peter Xu
2016-11-04 16:12 ` Andrew Jones
2016-11-07 16:32 ` Peter Xu
2016-11-08 10:52 ` Alexander Gordeev
2016-11-08 15:24 ` Peter Xu
2016-11-08 17:40 ` Alexander Gordeev
2016-11-08 17:42 ` Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 02/17] libcflat: add IS_ALIGNED() macro, and page sizes Peter Xu
2016-11-04 16:14 ` Andrew Jones
2016-10-26 7:47 ` [PATCH kvm-unit-tests 03/17] libcflat: moving MIN/MAX here Peter Xu
2016-11-04 16:15 ` Andrew Jones
2016-10-26 7:47 ` [PATCH kvm-unit-tests 04/17] vm/page: provide PGDIR_OFFSET() macro Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 05/17] x86/asm: add cpu_relax() Peter Xu
2016-11-04 16:18 ` Andrew Jones
2016-11-07 16:40 ` Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 06/17] pci: introduce struct pci_dev Peter Xu
2016-11-04 16:41 ` Andrew Jones
2016-11-07 17:05 ` Peter Xu
2016-11-07 18:02 ` Andrew Jones
2016-11-07 19:42 ` Peter Xu
2016-11-08 10:16 ` Andrew Jones
2016-11-08 15:33 ` Peter Xu
2016-11-08 17:27 ` Andrew Jones
2016-11-08 12:27 ` Alexander Gordeev
2016-11-08 15:48 ` Peter Xu
2016-11-08 17:35 ` Andrew Jones
2016-11-08 17:54 ` Alexander Gordeev
2016-11-08 19:59 ` Peter Xu [this message]
2016-11-08 17:46 ` Alexander Gordeev
2016-10-26 7:47 ` [PATCH kvm-unit-tests 07/17] pci: provide pci_scan_bars() Peter Xu
2016-11-04 16:47 ` Andrew Jones
2016-11-07 17:16 ` Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 08/17] x86/vmexit: leverage pci_scan_bars() Peter Xu
2016-11-04 16:54 ` Andrew Jones
2016-11-08 13:43 ` Alexander Gordeev
2016-11-08 15:55 ` Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 09/17] pci: add pci_config_write[wb]() Peter Xu
2016-11-04 16:59 ` Andrew Jones
2016-11-05 17:06 ` Alexander Gordeev
2016-11-07 17:25 ` Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 10/17] pci: provide pci_set_master() Peter Xu
2016-11-04 17:04 ` Andrew Jones
2016-11-07 17:35 ` Peter Xu
2016-11-07 17:59 ` Andrew Jones
2016-11-07 19:45 ` Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 11/17] pci: provide pci_enable_defaults() Peter Xu
2016-11-04 17:08 ` Andrew Jones
2016-10-26 7:47 ` [PATCH kvm-unit-tests 12/17] pci: add bdf helpers Peter Xu
2016-11-04 17:51 ` Andrew Jones
2016-10-26 7:47 ` [PATCH kvm-unit-tests 13/17] pci: edu: introduce pci-edu helpers Peter Xu
2016-11-04 17:18 ` Andrew Jones
2016-11-07 17:41 ` Peter Xu
2016-11-04 17:24 ` Andrew Jones
2016-11-07 17:44 ` Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 14/17] x86: intel-iommu: add dmar test Peter Xu
2016-11-04 17:53 ` Andrew Jones
2016-10-26 7:47 ` [PATCH kvm-unit-tests 15/17] pci: add msi support for 32/64bit address Peter Xu
2016-11-04 17:33 ` Andrew Jones
2016-11-07 17:58 ` Peter Xu
2016-10-26 7:47 ` [PATCH kvm-unit-tests 16/17] x86: intel-iommu: add IR MSI test Peter Xu
2016-11-04 17:40 ` Andrew Jones
2016-10-26 7:47 ` [PATCH kvm-unit-tests 17/17] x86/unittests: add intel-iommu test Peter Xu
2016-11-04 17:46 ` Andrew Jones
2016-11-07 18:06 ` Peter Xu
2016-11-08 10:39 ` Andrew Jones
2016-11-08 15:57 ` Peter Xu
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=20161108195917.GA19059@pxdev.xzpeter.org \
--to=peterx@redhat.com \
--cc=agordeev@redhat.com \
--cc=drjones@redhat.com \
--cc=jan.kiszka@web.de \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@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 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.