qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Help: Does Qemu support virtio-pci for net-device and d


From: Kevin Zhao
Subject: Re: [Qemu-devel] Help: Does Qemu support virtio-pci for net-device and disk device?
Date: Thu, 18 Aug 2016 20:51:46 +0800

Hi All,
    Thanks for your all kindly response. Really Great and helpful :-)

On 18 August 2016 at 20:30, Kevin Zhao <address@hidden> wrote:

> Hi Jones:
>    Thanks~It is great that Qemu has been working on that :-)
>
> On 18 August 2016 at 00:13, Andrew Jones <address@hidden> wrote:
>
>> On Wed, Aug 17, 2016 at 08:08:11PM +0800, Kevin Zhao wrote:
>> > Hi all,
>> >      Now I'm investigating net device hot plug and disk hotplug for
>> > AArch64. For virtio , the default address is virtio-mmio. After Libvirt
>> > 1.3.5, user can explicitly specify the address-type to pci and so
>> libvirt
>> > will pass the virtio-pci parameters to the Qemu.
>> >      Both my host and guest OS is Debian8, and Qemu version is 2.6.0.
>> > Libvirt version is 1.3.5.
>> >      For net-device, I change the address-type to pci, and libvirt pass
>> the
>> > command below:
>> >      -device
>> > virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:0d:25:
>> 25,bus=pci.2,addr=0x1
>> >
>> >      After booting, the eth0 device disappear(eth0 occur when the
>> address
>> > is virtio-mmio),
>> > but I can find another net-device enp2s1, also it can't work for dhcp:
>> > Running lspci: 02:01.0 Ethernet controller: Red Hat, Inc Virtio network
>> > device
>> > I'm not sure whether it worked.
>> >
>> >      For disk device,* when I change the address-type to pci, the whole
>> > qemu command is :*
>> > https://paste.fedoraproject.org/409553/,  but the VM can not boot
>> > successfully. Does Qemu not support device disk of virtio-pci in AArch64
>> > just as it in X86_64?
>> >      Thanks~Since I am not very familiar with Qemu, really looking
>> forward
>> > to your response.
>> >
>> > Best Regards,
>> > Kevin Zhao
>>
>> libvirt 1.3.5 is a bit old. Later versions no longer unconditionally add
>> the i82801b11 bridge, which was necessary to use PCI devices with the PCIe
>> host bridge mach-virt has. IMO, libvirt and qemu still have a long way to
>> go in order to configure a base/standard mach-virt PCIe machine.
>>
>>
> Yeah, I am changing to libvirt 2.1.0, I find that I should use PCI by
> manually add
> the slots and bus to it.
>
> 1) If we want to support both PCIe devices and PCI, then things are messy.
>>    Currently we propose dropping PCI support. mach-virt pretty much
>>    exclusively uses virtio, which can be set to PCIe mode (virtio-1.0)
>> 2) root complex ports, switches (upstream/downstream ports) are currently
>>    based on Intel parts. Marcel is thinking about creating generic models.
>> 3) libvirt needs to learn how to plug everything together, in proper PCIe
>>    fashion, leaving holes for hotplug.
>> 4) Probably more... I forget all the different issues we discovered when
>>    we started playing with this a few months ago.
>>
>> The good news is that x86 folk want all the same things for the q35 model.
>> mach-virt enthusiasts like us get to ride along pretty much for free.
>>
>> So, using virtio-pci with mach-virt and libvirt isn't possible right now,
>> not without manual changes to the XML. It might be nice to document how to
>> manually convert a guest, so developers who want to use virtio-pci don't
>> have to abandon libvirt. I'd have to look into that, or ask one of our
>> libvirt friends to help. Certainly the instructions would be for latest
>> libvirt though.
>>
>>
> As you said,  that means that I can use PCIe as the bus for disk and
> net-device.
> I will try using pcie in libvirt. I will try the newest version of
> libvirt.
> Do I need to change <address type = 'pcie'> to enable it in AArch64 ?
> The pcie bus will  be automatically assigned in libvirt ?
>

Just to remind that I made a mistake here, as Laine said now just manually
adding pcie
slots can work. He is going on push a patch to libvirt about automatically
assigment.

>
>
>> Finally, FWIW, with a guest kernel of 4.6.4-301.fc24.aarch64. The
>> following qemu command line works for me.
>> (notice the use of PCIe), and my network interface gets labeled enp0s1.
>>
>> $QEMU -machine virt-2.6,accel=kvm -cpu host \
>>  -m 1024 -smp 1 -nographic \
>>  -bios /usr/share/AAVMF/AAVMF_CODE.fd \
>>  -device ioh3420,bus=pcie.0,id=pcie.1,port=1,chassis=1 \
>>  -device ioh3420,bus=pcie.0,id=pcie.2,port=2,chassis=2 \
>>  -device 
>> virtio-scsi-pci,disable-modern=off,disable-legacy=on,bus=pcie.1,addr=00.0,id=scsi0
>> \
>>  -drive file=/home/drjones/.local/libvirt/images/fedora.qcow2,format
>> =qcow2,if=none,id=drive-scsi0-0-0-0 \
>>  -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-sc
>> si0-0-0-0,id=scsi0-0-0-0,bootindex=1 \
>>  -netdev user,id=hostnet0 \
>>  -device virtio-net-pci,disable-modern=off,disable-legacy=on,bus=pcie
>> .2,addr=00.0,netdev=hostnet0,id=net0
>>
>> I prefer always using virtio-scsi for the disk, but a similar command
>> line can be used for a virtio-blk-pci disk.
>>
>> OK great! Because in Openstack Nova ,AArch64 need to realize the hotplug
> only with
> the virtio bus, so investigate the virtio-pci. :-)
> Thanks again!
>
>
>> Thanks,
>> drew
>>
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]