On 02/01/2018 10:35 PM, Paul Schlacter wrote:
ping

Sorry, I missed this the first time through.




On Thu, Nov 30, 2017 at 6:04 PM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Thu, Nov 30, 2017 at 09:50:01AM +0800, Paul Schlacter wrote:
> hello everyone:
>     In q35 motherboard use ide,  Currently, the qemu has supported q35
> Motherboard support ide bus

IIRC, this is not quite correct - q35 has a built-in  SATA controller,
as opposed to IDE controller. You can potentially add an IDE controller
as an optional extra.

The first statement is true - Q35 has an integrated SATA controller, not an IDE. It happens that qemu has hardcoded the device id of the SATA controller to be "ide" (same as the IDE controller on other archs) which can make things confusing.

The second statement (you can add an IDE controller as an optional extra) is true if you are creating the qemu commandline yourself (bypassing libvirt), but libvirt doesn't support additional IDE controllers on *any* arch/machinetype (not even 440fx). I had written a patch to do that a few years ago (not because someone requested it, but because when fixing sata controller support for Q35, I noticed that it was possible to add as many IDE controllers as you liked and libvirt would simply ignore them), but after discussion we decided that we didn't want to promote use of such an old, slow, controller when there are so many better ways to connect a disk.

Is there a specific reason why you think you require an IDE controller on a Q35 virtual machine? Since this patch doesn't actually provide that, perhaps you simply need to connect your disk device to the sata controller.



> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index cc7596b..2dbade8 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -7188,6 +7188,7 @@ bool
>  qemuDomainMachineHasBuiltinIDE(const char *machine)
>  {
>      return qemuDomainMachineIsI440FX(machine) ||
> +        qemuDomainMachineIsQ35(machine) ||
>          STREQ(machine, "malta") ||
>          STREQ(machine, "sun4u") ||
>          STREQ(machine, "g3beige");

I don't see an equivalent  qemuDomainMachineHasBuiltinSATA method,
so I wonder if there's any logic we're missing in this respect ?
Perhaps Laine or someone more recenty familiar wit the code can
comment...

Regards,
Daniel
--
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list