qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC v4 08/13] ide: enumerate_slots implementation


From: John Snow
Subject: Re: [Qemu-devel] [RFC v4 08/13] ide: enumerate_slots implementation
Date: Mon, 21 Aug 2017 17:46:45 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1


On 08/18/2017 12:57 PM, Eduardo Habkost wrote:
> On Wed, Aug 16, 2017 at 05:46:18PM -0400, John Snow wrote:
>>
>>
>> On 08/14/2017 05:57 PM, Eduardo Habkost wrote:
>>> Example output when using "-machine q35":
>>>
>>>   {
>>>     "available": true,
>>>     "count": 1,
>>>     "device-types": [
>>>       "ide-device"
>>>     ],
>>>     "hotpluggable": false,
>>>     "opts": [
>>>       { "option": "unit", "values": 0 },
>>>       { "option": "bus", "values": "ide.2" }
>>>     ],
>>>     "opts-complete": true
>>>   }
>>>   {
>>>     "available": false,
>>>     "count": 1,
>>>     "device": "/machine/unattached/device[19]",
>>>     "device-types": [
>>>       "ide-device"
>>>     ],
>>>     "hotpluggable": false,
>>>     "opts": [
>>>       { "option": "unit", "values": 1 },
>>>       { "option": "bus", "values": "ide.2" } ],
>>>     "opts-complete": true
>>>   }
>>>   {
>>>     "available": true,
>>>     "count": 10,
>>>     "device-types": [
>>>       "ide-device"
>>>     ],
>>>     "hotpluggable": false,
>>>     "opts": [
>>>       { "option": "unit", "values": [ [ 0, 1 ] ] },
>>
>> Hm, these unit values aren't really correct -- we do not support
>> primary/secondary semantics for IDE buses on the AHCI device. I guess
>> they technically exist, but you cannot use them for anything.
>>
>> Should I do something to "disable" or otherwise hide the unusable
>> secondary unit slots for AHCI devices?
> 
> If the device is already rejecting -device ...,unit=1, then the
> bug is in my implementation of enumerate_devices.  Maybe it
> should just look at IDEBus::max_units to find that out?
> 

address@hidden (master) ~/s/q/b/git>
./x86_64-softmmu/qemu-system-x86_64 \
-M q35 \
-nodefaults \
-device ich9-ahci,id=ahci0 \
-drive id=bar,file=/media/ext/img/f25.qcow2,if=none \
-device ide-hd,id=foo,bus=ahci0.0,drive=bar,unit=1 \
-vga std

qemu-system-x86_64: -device ide-hd,id=foo,bus=ahci0.0,drive=bar,unit=1:
Can't create IDE unit 1, bus supports only 1 units
qemu-system-x86_64: -device ide-hd,id=foo,bus=ahci0.0,drive=bar,unit=1:
Device initialization failed.

based on;

IDEBus.max_units

as seen in:

hw/ide/qdev.c line 93.


Seems a bit like a hack on IDE's end -- but if your enumerate devices
code has a call-in inside of the IDE layer, please do check the
IDEBus::max_units property.

--js



reply via email to

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