Bug 1422450 - [virtio-scsi dataplane] viritio scsi disks are bound to the first controller
Summary: [virtio-scsi dataplane] viritio scsi disks are bound to the first controller
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: BLL.Virt
Version: 4.1.1
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ovirt-4.1.2
: 4.1.2
Assignee: Tomas Jelinek
QA Contact: Israel Pinto
URL:
Whiteboard:
Depends On:
Blocks: 1366507
TreeView+ depends on / blocked
 
Reported: 2017-02-15 11:24 UTC by Israel Pinto
Modified: 2017-05-23 08:14 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-05-23 08:14:45 UTC
oVirt Team: Virt
Embargoed:
tjelinek: ovirt-4.1?
ipinto: planning_ack?
rule-engine: devel_ack+
rule-engine: testing_ack+


Attachments (Terms of Use)
vdsm.log (389.04 KB, application/x-xz)
2017-02-15 11:28 UTC, Israel Pinto
no flags Details
vm xml (8.93 KB, text/plain)
2017-02-15 11:28 UTC, Israel Pinto
no flags Details


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 67280 0 master MERGED core: add support for more than one virtio scsi controller 2017-02-27 14:09:18 UTC
oVirt gerrit 73544 0 ovirt-engine-4.1 MERGED core: add support for more than one virtio scsi controller 2017-03-14 09:28:14 UTC
oVirt gerrit 73646 0 master MERGED core: calculate the iothreads also on new VM 2017-03-08 09:18:22 UTC

Description Israel Pinto 2017-02-15 11:24:32 UTC
Description of problem:
While verify RFE https://bugzilla.redhat.com/show_bug.cgi?id=1366507
The viritio scsi disks are bound to the first controller 
and not round robin around them.


Version-Release number of selected component (if applicable):
4.1.1-0.1.el7

Steps to Reproduce:
1. Create VM with 4 iscsi disks 
2. Set IO thread to 4
3. Run VM
4. Check VM XML with virsh -r dumpxml <vm is in virsh -r list>
5. Check that controller and driver should get the same thread number 
   and each disk is allocate to diff thread 
 
Actual results:
The viritio scsi disks are bound to the first controller 
and not round robin around them.


Additional info:
See attached vm xml and vdsm log

Comment 1 Israel Pinto 2017-02-15 11:28:06 UTC
Created attachment 1250548 [details]
vdsm.log

Comment 2 Israel Pinto 2017-02-15 11:28:35 UTC
Created attachment 1250549 [details]
vm xml

Comment 3 Israel Pinto 2017-05-09 08:38:36 UTC
Verify with:
Red Hat Virtualization Manager Version: 4.1.2.1-0.1.el7
OS Version:RHEL - 7.3 - 7.el7
Kernel Version:3.10.0 - 514.16.1.el7.x86_64
KVM Version:2.6.0 - 28.el7_3.9
LIBVIRT Version:libvirt-2.0.0-10.el7_3.5
VDSM Version:vdsm-4.19.12-1.el7ev
Cases:
CASE 1:
VM configuration: VM with 1 disk ISCSI and 1 io threads
<domain xmlns:ovirt="http://ovirt.org/vm/tune/1.0" type="kvm">
    <name>data_plan_1_disk_1_iothread</name>
    <uuid>23678104-0188-4387-a596-65d26b7b4c92</uuid>
    <iothreads>1</iothreads>
    <devices>
        <controller index="0" model="virtio-scsi" type="scsi">
            <driver iothread="1" />
        </controller>
        <controller index="0" ports="16" type="virtio-serial" />
        <disk device="disk" snapshot="no" type="block">
            <source dev="/rhev/data-center/7550d189-d97d-43d6-929f-611db2ae4e17/5449c95e-b387-4d19-8f58-a22000608f3c/images/bdaf8d6a-b7ac-4c93-897f-c2e9536a0bba/3f91ac02-37f7-4763-8790-be3514a1c8f8" />
            <target bus="virtio" dev="vda" />
            <serial>bdaf8d6a-b7ac-4c93-897f-c2e9536a0bba</serial>
            <driver cache="none" error_policy="stop" io="native" iothread="1" name="qemu" type="qcow2" />
        </disk>
    </devices>
</domain>
Result : PASS
1 controller with 1 thread 
on Disk 1 iothread is set
---------------
CASE 2:
VM configuration: VM with 2 disk on ISCSI and 2 iothreads
<domain xmlns:ovirt="http://ovirt.org/vm/tune/1.0" type="kvm">
    <name>data_plane_2_disk_2_io</name>
    <uuid>ddd98f4a-a42f-4151-b47e-ff8c5a025d8c</uuid>
    <iothreads>2</iothreads>
    <devices>
        <controller index="0" model="virtio-scsi" type="scsi">
            <driver iothread="1" />
        </controller>
        <controller index="1" model="virtio-scsi" type="scsi">
            <driver iothread="2" />
        </controller>
        <controller index="0" ports="16" type="virtio-serial">
            <address bus="0x00" domain="0x0000" function="0x0" slot="0x06" type="pci" />
        </controller>
        <disk device="disk" snapshot="no" type="block">
            <address bus="0" controller="0" target="0" type="drive" unit="0" />
            <source dev="/rhev/data-center/7550d189-d97d-43d6-929f-611db2ae4e17/5449c95e-b387-4d19-8f58-a22000608f3c/images/17ace1a2-3e35-42d0-bf65-fdc8ef67c50c/2f9c699a-6805-4305-a25f-ba2f79b50261" />
            <target bus="scsi" dev="sda" />
            <serial>17ace1a2-3e35-42d0-bf65-fdc8ef67c50c</serial>
            <boot order="1" />
            <driver cache="none" error_policy="stop" io="native" name="qemu" type="raw" />
        </disk>
        <disk device="disk" snapshot="no" type="block">
            <address bus="0x00" domain="0x0000" function="0x0" slot="0x07" type="pci" />
            <source dev="/rhev/data-center/7550d189-d97d-43d6-929f-611db2ae4e17/5449c95e-b387-4d19-8f58-a22000608f3c/images/9630a53a-8d1c-4ba5-ab65-10864959b0ad/0c15e4ee-7d33-4d17-8375-7607bb5a083d" />
            <target bus="virtio" dev="vda" />
            <serial>9630a53a-8d1c-4ba5-ab65-10864959b0ad</serial>
            <driver cache="none" error_policy="stop" io="native" iothread="1" name="qemu" type="qcow2" />
        </disk>
    </devices>
</domain>
Result: PASS
2 controllers each on with one thread
---------------------------
CASE 3:
VM configuration: Vm with 2 disk: 1 ISCSI and 1 NFS, 2 IO Threads
<domain xmlns:ovirt="http://ovirt.org/vm/tune/1.0" type="kvm">
    <name>data_plan_1_iscsi_1_nfs_1_thread</name>
    <uuid>8792f143-5da0-4406-9eb9-90a243c524d6</uuid>
    <iothreads>2</iothreads>
    <devices>
        <controller index="0" model="virtio-scsi" type="scsi">
            <driver iothread="1" />
        </controller>
        <controller index="1" model="virtio-scsi" type="scsi">
            <driver iothread="2" />
        </controller>
        <controller index="0" ports="16" type="virtio-serial" />
        <video>
            <model heads="1" ram="65536" type="qxl" vgamem="16384" vram="32768" />
        </video>
        <disk device="disk" snapshot="no" type="block">
            <source dev="/rhev/data-center/7550d189-d97d-43d6-929f-611db2ae4e17/5449c95e-b387-4d19-8f58-a22000608f3c/images/59384f5e-c457-446b-ad0a-f07ba93c5a0b/59b86c89-e319-4c92-a991-346434595efe" />
            <target bus="virtio" dev="vda" />
            <serial>59384f5e-c457-446b-ad0a-f07ba93c5a0b</serial>
            <boot order="1" />
            <driver cache="none" error_policy="stop" io="native" iothread="1" name="qemu" type="qcow2" />
        </disk>
        <disk device="disk" snapshot="no" type="file">
            <address bus="0" controller="0" target="0" type="drive" unit="0" />
            <source file="/rhev/data-center/7550d189-d97d-43d6-929f-611db2ae4e17/87e7d023-7452-44a4-be54-9ff029292a83/images/54ac6602-89ca-40d9-8053-550ff932cdf8/ee6f0b21-5fc9-4c43-9844-1dd4e305ba0f" />
            <target bus="scsi" dev="sda" />
            <serial>54ac6602-89ca-40d9-8053-550ff932cdf8</serial>
            <driver cache="none" error_policy="stop" io="threads" name="qemu" type="raw" />
        </disk>        
    </devices>
</domain>
Result: PASS
2 controllers each on with one thread
On the disks i see diff behavior:
-------------------------
CASE 4 (regression): 
VM with 2 NFS disks and 2 IO Threads
<domain xmlns:ovirt="http://ovirt.org/vm/tune/1.0" type="kvm">
    <name>data_2_NFS_2_iothread</name>
    <uuid>843c9e5b-fdcb-4947-a8e5-8f0123e30d43</uuid>
    <iothreads>2</iothreads>
    <devices>
        <controller index="0" model="virtio-scsi" type="scsi">
            <driver iothread="1" />
        </controller>
        <controller index="1" model="virtio-scsi" type="scsi">
            <driver iothread="2" />
        </controller>
        <disk device="disk" snapshot="no" type="file">
            <address bus="0" controller="0" target="0" type="drive" unit="0" />
            <source file="/rhev/data-center/7550d189-d97d-43d6-929f-611db2ae4e17/87e7d023-7452-44a4-be54-9ff029292a83/images/186f357a-67a2-4259-983a-9664f9d0ffa8/9eb384f2-169a-44d2-af67-ff96156b80c5" />
            <target bus="scsi" dev="sda" />
            <serial>186f357a-67a2-4259-983a-9664f9d0ffa8</serial>
            <boot order="1" />
            <driver cache="none" error_policy="stop" io="threads" name="qemu" type="raw" />
        </disk>
        <disk device="disk" snapshot="no" type="file">
            <address bus="0" controller="0" target="0" type="drive" unit="1" />
            <source file="/rhev/data-center/7550d189-d97d-43d6-929f-611db2ae4e17/87e7d023-7452-44a4-be54-9ff029292a83/images/9cf246d2-152f-4adf-8878-bcb9d233ad9b/4392c52d-faaa-431d-9150-661e75ecc99f" />
            <target bus="scsi" dev="sdb" />
            <serial>9cf246d2-152f-4adf-8878-bcb9d233ad9b</serial>
            <driver cache="none" error_policy="stop" io="threads" name="qemu" type="raw" />
        </disk>
    </devices>    
</domain> 

Result: PASS
2 controllers each on with one thread


Note You need to log in before you can comment on or make changes to this bug.