qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 04/13] qdev: add generic qdev_device_add()


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH 04/13] qdev: add generic qdev_device_add()
Date: Wed, 15 Jul 2009 01:43:22 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux)

Gerd Hoffmann <address@hidden> writes:

> On 07/10/09 22:51, Paul Brook wrote:
>>>> I think this is going in the wrong direction. The device tree provides us
>>>> with a standard way of identifying which bus to add a device to. We
>>>> should be removing uses of pci_create, not adding new ones.
>>> Why?
>>>
>>> Let me guess: Because pci bus numbers are guest-changeable and thus not
>>> stable?
>>
>> Because I don't think this code need to be bus specific.
>
> Parts of the problem are certainly bus-specific though, such as
> parsing bus addresses.

Yes.

Provide a bus method to parse the addr property?

>> We also need to figure out the naming of multiple similar devices on the same
>> bus. Possibly your "device id" could be used to identify devices on a bus.
>> e.g. if we wanted two scsi adapters:
>>
>>   -device lsi,bus=pci0,id=foo
>>   -device lsi,bus=pci0,id=bar
>>   -device scsi-disk,bus=pci0/foo/scsi
>>   -device scsi-disk,bus=pci0/bar/scsi

Why foo/scsi?  Is there a node "scsi" between the lsi device and the
disk?  If yes, why?

What's the namespace for ids?

A single, flat namespace would do just fine for me.  Then I could do

     -device lsi,bus=pci0,id=scsi0
     -device lsi,bus=pci0,id=scsi1
     -device scsi-disk,bus=scsi0
     -device scsi-disk,bus=scsi1

> I think what we will see used in practice is:
>
>  - either go with the defaults (i.e. don't specify a bus at all
>    -> device is attached to the first (and often only)
>    pci/scsi/usb/whatever bus.
>  - or usage of ids to identify devices and busses.
>
> I think nobody will use stuff like
>   -device scsi-disk,bus=/main-system-bus/i440FX-pcihost/pci/lsi/scsi
> in practice.

I figure I wouldn't.  Still, using tree path names to identify nodes
feels natural.  The more convenient id property fits in easily, just
treat is as abbreviation mechanism.

So, I'd be fine with

    -device DEVNAME,bus=TREE-PATH,addr=ADDR

where TREE-PATH can start either with / (root node) or an id (start
there instead of at the root), and ADDR is interpreted according to the
bus.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]