On 06/15/2009 04:20 PM, Anthony Liguori wrote: >> >>>> then turns on the power. Command line options are the parts lying >>>> around when we start. >>>> >>>> btw, -drive needs to be separated: >>>> >>>> -controller type=lsi1234,pci_addr=foobar,name=blah >>>> -drive file=foo.img,controller=blah,index=0 >>>> -drive file=bar.img,controller=blah,index=1 >>>> >>>> Drives to not have pci addresses. >>> >>> Drivers don't have indexes and buses but we specify it on the -drive >>> line. >> >> Drives do have indexes. On old parallel scsi drives you set the >> index by clicking a button on the back of the drive to cycle through >> scsi addresses 0-7. An IDE drive's index is determined by the cable >> (master/slave). A SATA drive's index is determined by which header >> on the motherboard the drive connects to. > > > 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. > > For IDE, it's a combination of bus, slot, and master/slave. For > virtio, it's just a PCI address. What we really need is something > that is more opaque and controller specific. virtio also has a bus (did you mean the pci bus for IDE?), master/slave is the index. virtio doesn't have index, but IMO that was a mistake and we should have designed it as a disk controller in the first place. > For instance, if we were going to do controllers... > > -controller type=lsi1234,pci_addr=foobar,name=blah > -controller-disk controller=blah,target=0,lun=1,name=sda > > -controller type=ide,pci_addr=barfoo,name=ide > -controller-disk controller=ide,slot=secondary,cable=slave,name=hdd > > -drive file=foo.img,controller-disk=sda > -drive file=bar.img,controller-disk=hdd > > And having "-hdd file=foo.img" be short-hand for "-drive > file=%s,controller-disk=%s". Yeah. >> >> >> If by bus you mean the if= parameter, then drives certainly do have >> buses. Just try connecting the scsi drive from the previous >> paragraph to a USB port. > > 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? Confused. -- error compiling committee.c: too many arguments to function _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization