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