Juan Quintela <quintela@xxxxxxxxxx> writes: > Hi > > Minutes of Today call. > > ahci: agraf > ---- > - how to enable it? > * today is too difficult (alex) > * get it to work as everything else (markus) > And big discussion ensued. Markus & alex will reply with details. > No agreement, and too subtle for me to resume perfectly. > * cdrom still not working > - dates for freeze? q35? > depends on what people does/review? > > Later, Juan. Sorry for the delay. Hope I still remember enough write a worthwhile summary. Alex, please correct me if I misrepresent you. Background ---------- * -drive if=ide asks the board to connect this drive to its "IDE controller". It's silently ignored if the board doesn't have one. Even if it has one, it may silently ignore some drives. Examples: - PIIX3 boards such as current "pc" connect all if=ide drives to controller "piix3-ide". Bus numbers > 2 fail machine creation. - I expect the forthcoming "q35" board to connect all if=ide drives to controller "ich9-ahci". We hope to upgrade "pc" to this board. - Board "r2d" connects the if=ide,index=0 drive to a non-qdevified controller hw/ide/mmio.c. Any others get ignored. - Board "s390-virtio" connects some if=ide drives[*] to virtio-blk-s390. Yes, that's not really an IDE controller. - Board "highbank" appears to have an ich9-ahci controller, but it doesn't seem to connect any if=ide drives to it. * Likewise, -drive if=scsi asks the board to connect this drive to a SCSI controller. Examples: - PC boards create N+1 "lsi53c895a" controllers, where N is the largest bus number in any -drive if=scsi. The controller auto-connects all if=scsi,bus=I drives for its own bus number I. Ugly as hell. - Board "pseries" works the same, except it creates "spapr-vscsi" controllers. - The various Sun4[cdm] boards create a single "esp" controller, for bus=0. -drive if=scsi with any other bus fails machine initialization. * The meaning of -hda, drive without if=, and so forth depends on the board, it's currently either like if=scsi or like if=ide. * You can use -device to add additional controllers and drives. For instance, if the board provides a PCI bus, then -device ich9-ahci,id=ahci0 creates an ICH9 AHCI controller, and -drive if=none,id=drive0,... -device ide-hd,bus=ahci0.0,drive=drive0 connects an IDE disk to it. Alex's proposal --------------- Alex wants more users for AHCI. Using it with a board that doesn't connect if=ide drives to an AHCI controller involves -device. Alex thinks that's too hard for users, and prevents adoption. His proposed solution is to create a new interface type "ahci", so that -drive if=ahci "just works". It creates ich9-ahci controllers automatically. Critique -------- * Does the use case "AHCI with a non-AHCI board" justify a new interface type? Would anybody care if we had q35 today? Would we regret adding if=ahci once we have q35? * If the board already has an ich9-ahci, you can't use if=ahci in its current form to add drives to it. if=ahci creates *additional* ich9-ahci controllers. * Do we want a separate interface type for each (sufficiently popular) controller? What about "megasas" when the board provides only "lsi53c895a"? What shall we do when we acquire an ich10 device model? Where does that stop? * Should -drive ever auto-create controllers? if=scsi does, but it's ugly. * A possible alternative: machine option to replace the controller to use for if=ide. Also possible for if=scsi. * Probably more I can't remember anymore. [*] "Some drives": looks like the code attempts to connect up to ten, but I'm not at all sure more than two work. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html