From: "Michael S. Tsirkin" <mst@redhat.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: Isaku Yamahata <yamahata@valinux.co.jp>,
Gerd Hoffmann <kraxel@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: [PATCH] pci: initialize header type register.
Date: Mon, 8 Feb 2010 21:44:57 +0200 [thread overview]
Message-ID: <20100208194457.GA14650@redhat.com> (raw)
In-Reply-To: <f43fc5581002081132g6849efc9u1be5dcf947ca15aa@mail.gmail.com>
On Mon, Feb 08, 2010 at 09:32:54PM +0200, Blue Swirl wrote:
> On Mon, Feb 8, 2010 at 8:26 PM, Michael S. Tsirkin <mst@redhat.com> wrote:
> > On Mon, Feb 08, 2010 at 07:56:27PM +0200, Blue Swirl wrote:
> >> On Mon, Feb 8, 2010 at 7:37 PM, Michael S. Tsirkin <mst@redhat.com> wrote:
> >> > On Mon, Feb 08, 2010 at 06:37:41PM +0100, Gerd Hoffmann wrote:
> >> >> On 02/08/10 18:32, Michael S. Tsirkin wrote:
> >> >>> On Mon, Feb 08, 2010 at 06:24:57PM +0100, Gerd Hoffmann wrote:
> >> >>>> On 02/08/10 17:27, Michael S. Tsirkin wrote:
> >> >>>>> On Mon, Feb 08, 2010 at 12:14:11PM +0100, Gerd Hoffmann wrote:
> >> >>>>>> On 02/08/10 11:17, Michael S. Tsirkin wrote:
> >> >>>>>>> On Mon, Feb 08, 2010 at 03:41:47PM +0900, Isaku Yamahata wrote:
> >> >>>>>>>> initialize header type register in pci generic code.
> >> >>>>>>>>
> >> >>>>>>>> Cc: Blue Swirl<blauwirbel@gmail.com>
> >> >>>>>>>> Cc: "Michael S. Tsirkin"<mst@redhat.com>
> >> >>>>>>>> Signed-off-by: Isaku Yamahata<yamahata@valinux.co.jp>
> >> >>>>>>>
> >> >>>>>>> No objections here, I am assuming this will be followed
> >> >>>>>>> by patches removing header type init from bridges?
> >> >>>>>>> From qdev perspective, it is probably cleaner to make
> >> >>>>>>> multifunction bit a separate qdev property though, right?
> >> >>>>>>
> >> >>>>>> From a qdev perspective it would make *alot* of sense to move a bunch of
> >> >>>>>> pci config stuff (including, but not limited to header type) into
> >> >>>>>> PCIDeviceInfo.
> >> >>>>>>
> >> >>>>>> cheers,
> >> >>>>>> Gerd
> >> >>>>>
> >> >>>>> Actually - won't this make it possible to create broken configurations
> >> >>>>> by tweaking properties from command-line?
> >> >>>>
> >> >>>> Not as property, as struct element in PCIDeviceInfo. i.e.
> >> >>>>
> >> >>>> static PCIDeviceInfo e1000_info = {
> >> >>>> [ stuff which is here right now ]
> >> >>>> .vendor_id = PCI_VENDOR_ID_INTEL,
> >> >>>> .device_id = E1000_DEVID,
> >> >>>> .class = PCI_CLASS_NETWORK_ETHERNET,
> >> >>>> [ probably more stuff which makes sense ]
> >> >>>> }
> >> >>>>
> >> >>>> Then setup this in generic pci code instead of having each driver doing
> >> >>>> a bunch of pci_config_set_*() calls.
> >> >>>>
> >> >>>> cheers,
> >> >>>> Gerd
> >> >>>
> >> >>> We still end up with class, vendor etc duplicated in 2 places.
> >> >>
> >> >> No. The info should be *only* in PCIDeviceInfo then.
> >> >
> >> > That would put a lot of code in pci config cycle path. A single array
> >> > mirroring the whole config space is much cleaner.
> >>
> >> I'd suppose the arrays would remain as they are now, they just would
> >> be initialized (using the pci functions) based on PCIDeviceInfo
> >> structure.
> >
> > This still means we have two copies of same data
> > and need to maintain code that keeps them in sync,
> > even if that is called just at init time.
> >
> >> This would simplify the device code a lot.
> >
> > Well, I think
> >
> > pci_set_class(pci_dev, PCI_CLASS_NETWORK_ETHERNET)
> >
> > is simpler than
> >
> > .class = PCI_CLASS_NETWORK_ETHERNET
> >
> > and some magic that copies that to pci config.
>
> The advantage is that if the code happens to change, only the magic
> (which is in one place) needs to be changed. Similar process has
> happened with savevm.
Yes, one place is good. But magic is bad. What's wrong with
pci_set_header type or something like that? Why do we need header type
in qdev?
--
MST
next prev parent reply other threads:[~2010-02-08 19:48 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-08 6:41 [Qemu-devel] [PATCH] pci: initialize header type register Isaku Yamahata
2010-02-08 10:17 ` [Qemu-devel] " Michael S. Tsirkin
2010-02-08 11:14 ` Gerd Hoffmann
2010-02-08 11:16 ` Michael S. Tsirkin
2010-02-08 12:45 ` Gerd Hoffmann
2010-02-08 16:27 ` Michael S. Tsirkin
2010-02-08 17:24 ` Gerd Hoffmann
2010-02-08 17:32 ` Michael S. Tsirkin
2010-02-08 17:37 ` Gerd Hoffmann
2010-02-08 17:37 ` Michael S. Tsirkin
2010-02-08 17:43 ` Gerd Hoffmann
2010-02-08 18:23 ` Michael S. Tsirkin
2010-02-08 17:56 ` Blue Swirl
2010-02-08 18:26 ` Michael S. Tsirkin
2010-02-08 19:32 ` Blue Swirl
2010-02-08 19:44 ` Michael S. Tsirkin [this message]
2010-02-08 19:55 ` Gerd Hoffmann
2010-02-08 20:19 ` Michael S. Tsirkin
2010-02-08 20:32 ` Anthony Liguori
2010-02-08 20:34 ` Michael S. Tsirkin
2010-02-08 20:54 ` Anthony Liguori
2010-02-08 21:01 ` Michael S. Tsirkin
2010-02-08 21:56 ` Anthony Liguori
2010-02-08 21:58 ` Michael S. Tsirkin
2010-02-08 22:25 ` Anthony Liguori
2010-02-09 12:11 ` Michael S. Tsirkin
2010-02-09 8:21 ` Markus Armbruster
2010-02-09 3:42 ` Isaku Yamahata
2010-02-08 14:19 ` 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=20100208194457.GA14650@redhat.com \
--to=mst@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yamahata@valinux.co.jp \
/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.