From: Anthony Liguori <anthony@codemonkey.ws>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Blue Swirl <blauwirbel@gmail.com>,
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, 08 Feb 2010 14:54:24 -0600 [thread overview]
Message-ID: <4B707A00.2000706@codemonkey.ws> (raw)
In-Reply-To: <20100208203459.GC17088@redhat.com>
On 02/08/2010 02:34 PM, Michael S. Tsirkin wrote:
> On Mon, Feb 08, 2010 at 02:32:26PM -0600, Anthony Liguori wrote:
>
>> On 02/08/2010 02:19 PM, Michael S. Tsirkin wrote:
>>
>>> On Mon, Feb 08, 2010 at 08:55:58PM +0100, Gerd Hoffmann wrote:
>>>
>>>
>>>> Hi,
>>>>
>>>>
>>>>
>>>>> 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.
>>>>>
>>>>>
>>>> No. There is nothing to keep in sync. And there is no extra copy of data.
>>>>
>>>> Today you have pci_set_*() calls somewhere in PCIDeviceInfo->init().
>>>> I'd like to see them replaced with PCIDeviceInfo->$field + setup in
>>>> common code. The information that device $foo has vendor id 42 and
>>>> device id 4711 (and other properties) just moves from code to data.
>>>>
>>>>
>>> We still need it in config array which is read by guest.
>>> So that is two places.
>>>
>>>
>> There's no reason that we couldn't make the config space read like all
>> of the other spaces we support. IOW, instead of using an array to store
>> the data, store each element in a structure, and have a big switch().
>>
>> I'm not sure one's better than the other though TBH.
>>
> Yea. So the solution that needs less code is better.
>
>
>> I think just universally moving to a set of accessors that took a
>> PCIDevice as an argument in the form of pci_device_set_vendor() would be
>> a big improvement.
>>
>> Regards,
>>
>> Anthony Liguori
>>
> Not sure it's such a *big* improvement, but I won't object to that.
>
Sorry, but:
versatile_pci.c: d->config[0x04] = 0x00;
versatile_pci.c: d->config[0x05] = 0x00;
versatile_pci.c: d->config[0x06] = 0x20;
versatile_pci.c: d->config[0x07] = 0x02;
To:
pci_config_set_command(d, 0);
pci_config_set_status(d, PCI_STATUS_DEVSEL_MEDIUM | PCI_STATUS_66MHZ);
Is a huge improvement. I'm staring at a PCI config space diagram right
now and I'm *still* not even sure I'm interpreting the versatile_pci
code correctly :-)
Having a nice structure with:
{ .command = 0,
.status = PCI_STATUS_DEVSEL_MEDIUM | PCI_STATUS_66MHZ,
}
would be nice but I can live without it.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2010-02-08 20:54 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
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 [this message]
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=4B707A00.2000706@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=blauwirbel@gmail.com \
--cc=kraxel@redhat.com \
--cc=mst@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 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).