Re: Configuration vs. compat hints [was Re: [Qemu-devel] [PATCHv3 03/13] qemu: add routines to manage PCI capabilities]

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

 



On 06/15/2009 04:45 PM, Anthony Liguori wrote:
> Avi Kivity wrote:
>> On 06/15/2009 04:20 PM, Anthony Liguori wrote:
>>> It's not at all that simple.   SCSI has a hierarchical address 
>>> mechanism with 0-7 targets but then potentially multiple LUNs per 
>>> target.  Today, we always emulate a single LUN per target but if we 
>>> ever wanted to support more than 7 disks on a SCSI controller, we 
>>> would have to add multiple LUN support too.  So the current linear 
>>> unit= parameter is actually pretty broken for SCSI.
>>
>> Well, another level in the hierarchy, but I don't think it materially 
>> changes things.
>
> Depends on whether you expect to say index=0,lun=3 or index=3.  If you 
> mean the later, then it's quite conceivable that each target supports 
> less than the maximum number of LUNs.  This makes things pretty 
> confusing to the user because they have to know that in the current 
> implementation, index=0 is valid, index=1 isn't, but index=8 is.

I'd object to any implicit addressing rules.  If we have to say 
target=2,lun=7,street=8,city=9,state=99,zip=12345 instead of 
index=8345345235 so be it.

>>> No, I meant drive file=foo.img,bus=3.  If that doesn't seem obvious 
>>> what it should do to you that's because it isn't at all obvious :-)  
>>> It ends up skipping a predefined number of locations in the drive 
>>> table.  This is pretty broken fundamentally because it assumes 
>>> controllers always support a fixed number of devices.  Nothing 
>>> really respects bus_id though so in practice, I assume it's almost 
>>> universally broken.
>>
>> Isn't the drive table something totally internal?  And how does bus= 
>> relate to it?
>
> The reality of unit=X,bus=Y,if=Z is that they expand to:
>
> drive_table_index=Y*max_devs[Z] + X
>
> Whereas max_devs = {"ide":4, "scsi": 7, *:0}
>
> How drive_table_index is interpreted is "if" specific.  For if=scsi, 
> each lsi device gets a base drive table index that starts at bus_index 
> * 7.  For virtio, the first empty spot in drive_table results in no 
> more drives being created.
>
> It's broken by design.

Agreed.  Pity that it's exposed to the poor users.

-- 
error compiling committee.c: too many arguments to function

_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/virtualization

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux