From Fedora Project Wiki

(Created page with '= VirtioSerial Testing= <pre> Test matrix: Guest (i386 & x86_64): Linux – RHEL6 Windows virtio console ( virtio serial, vmchannel... ) a simple device for data input an...')
 
Line 48: Line 48:
  - Try all of the above at the same time  
  - Try all of the above at the same time  
  - Try the above with different guest smp options  
  - Try the above with different guest smp options  
- Hot-plug / Hot-unplug
Using the qemu monitor, ports can be hot-plugged as well as unplugged:
(qemu) device_add virtserialport,name=port.0,id=port0
(qemu) device_del port0


Survive basic guest operation  
Survive basic guest operation  
Line 58: Line 54:
  - guest reboot/shutdown/kdump  
  - guest reboot/shutdown/kdump  
  - guest s3/s4   
  - guest s3/s4   
Dynamic add/remove  
Dynamic add/remove  
  - remove/load guest driver  
  - remove/load guest driver  
Line 71: Line 68:
TBD :  
TBD :  
test window front driver with spice.
test window front driver with spice.
Test detail:
Steps of VirtioSerial/VMchannel Testing:
1. Execute Amit's test script
1.1 Get test program
  $ git clone git://fedorapeople.org/home/fedora/amitshah/public_git/test-virtserial.git
1.2 Copy this program to guest, compile and put the
auto-virtserial-guest program in /etc/init.d/ and put a line in
/etc/rc.local to invoke it upon boot:
<guest /etc/rc.local>:
/etc/init.d/auto-virtserial-guest &
1.3 Do prepare work for running the virtio console port test:
<guest /etc/securetty>:
Add a line saying 'hvc0'
<guest /etc/event.d>:
Copy tty1 to hvc0, replace all tty1 to hvc0 in the new file
To be able to test the udev symlinking rule,
<guest>
mount -t debugfs debugfs /sys/kernel/debug
<guest /etc/udev/rules.d>:
create a new file 90-virtio-console.rules
and add the following text:
<guest /etc/udev/rules.d/90-virtio-console.rules>
KERNEL=="vcon*", SYMLINK+="virtio-console/$ATTR{name}"
For the file checksumming test, place a (big) file in
/tmp/amit/big-file on the host.
1.4 Compile, change run-sh.sh by your environment, and execute
run-test.sh on host
  $ ./run-test.sh
2  Hot-plug / Hot-unplug testing
2.1 Using the qemu monitor, ports can be hot-plugged as well as unplugged:
(qemu) device_add virtserialport,name=port.0,id=port0
(qemu) device_del port0
2.2 Check vports in guest
</pre>
</pre>

Revision as of 08:24, 7 April 2010

VirtioSerial Testing

Test matrix:
Guest (i386 & x86_64): 
Linux – RHEL6
Windows 


virtio console ( virtio serial, vmchannel... ) 
  a simple device for data input and out 

Virtio architecture [1]: 

front end : 
  linux   : kernel >=  2.6.32-13.el6 
  windows : need driver 
backend  :
  qemu-kvm >= 0.12.1.2-2.12.el6 
Virtio-serial is just the transport protocol that will enable such applications to be written.It has two parts: 
  (a) device emulation in qemu that presents a virtio-pci device to the guest and 
  (b) a guest driver that presents a char device interface to userspace applications. 

How it work : 
  guest : 
     install front end driver 
  qemu cli : 
     -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=4,bus=pci.0,addr=0x4    
             ^driver                             ~~~~~~~~~~~~~~~~~~~~~~ 
                                                 device option 
     -chardev pty,id=channel0                                                                 
              
     -device virtserialport,chardev=channel0,name=org.linux-kvm.port.0,bus=virtio-serial0.0   
             ^driver                                                   ^ride on bus 

  check device information from QEMU command line : 
     (QEMU) info qtree 
     (QEMU) info pci 
  check device information from guest : 
     #lspci 
     #/sys/class/virtio-ports/*/name 
  
To Be Test : 
Basic functional testing [3] 
 - Amit's test suite from http://fedorapeople.org/gitweb?p=amitshah/public_git/test-virtserial.git 
 - Spawn a virtioconsole, Work on the console 
 - Spawn multiple virtioconsoles 
 - Transfer files from the host to the guest (and vice-versa) over virtio-serial ports 
 - Try all of the above at the same time 
 - Try the above with different guest smp options 

Survive basic guest operation 
 - live migration 
 - offline migration 
 - guest reboot/shutdown/kdump 
 - guest s3/s4  

Dynamic add/remove 
 - remove/load guest driver 
 - add/remove device from qemu command 
     device add  and survive reboot 
     device delete and survive reboot 
     create MAX number of ports ( default max=31) 
     add existed device 
     remove unexisted device 
Performance 
  - X MB/s 

TBD : 
test window front driver with spice.

Test detail:

Steps of VirtioSerial/VMchannel Testing:

1. Execute Amit's test script
1.1 Get test program

   $ git clone git://fedorapeople.org/home/fedora/amitshah/public_git/test-virtserial.git

1.2 Copy this program to guest, compile and put the
auto-virtserial-guest program in /etc/init.d/ and put a line in
/etc/rc.local to invoke it upon boot:

<guest /etc/rc.local>:
/etc/init.d/auto-virtserial-guest &

1.3 Do prepare work for running the virtio console port test:

<guest /etc/securetty>:
Add a line saying 'hvc0'

<guest /etc/event.d>:
Copy tty1 to hvc0, replace all tty1 to hvc0 in the new file

To be able to test the udev symlinking rule,

<guest>
mount -t debugfs debugfs /sys/kernel/debug

<guest /etc/udev/rules.d>:
create a new file 90-virtio-console.rules

and add the following text:

<guest /etc/udev/rules.d/90-virtio-console.rules>
KERNEL=="vcon*", SYMLINK+="virtio-console/$ATTR{name}"

For the file checksumming test, place a (big) file in
/tmp/amit/big-file on the host.

1.4 Compile, change run-sh.sh by your environment, and execute
run-test.sh on host

   $ ./run-test.sh

2  Hot-plug / Hot-unplug testing

2.1 Using the qemu monitor, ports can be hot-plugged as well as unplugged: 
(qemu) device_add virtserialport,name=port.0,id=port0 
(qemu) device_del port0 
2.2 Check vports in guest