Hi,

Please CC me in any replies as I'm not subscribed to misc emails.

My main question is, do you experience similar slow I/O on OpenBSD i386
on your Qemu/KVM installations?

Are you aware of any problem with OpenBSD i386 under Qemu/KVM?

Not sure should this report go to RedHat, KVM or to OpenBSD, but I've
tested RHEL7rc with CentOS 6.5, NetBSD 6.1.4 installer and OpenBSD
current bsd.rd and only OpenBSD i386 seems to have slow I/O problem
under latest Enterprise Linux from RedHat. I've decided to report the
issue here. I've tested OpenBSD guest with IDE, SCSI and VirtIO disk.
SCSI disk currently don't seem to work at all with both amd64 and i386:


#### OpenBSD i386/scsi [test07] ####

# time dd if=/dev/zero of=/dev/sd0c bs=4096 count=10240
sd0(vioscsi0:0:0): Check Condition (error 0x70) on opcode 0x28
    SENSE KEY: Illegal Request
     ASC/ASCQ: ASC 0x24 ASCQ 0x00
dd: /dev/sd0c: Invalid argument
5+0 records in
4+0 records out
16384 bytes transferred in 0.093 secs (174834 bytes/sec)
    0m0.25s real     0m0.00s user     0m0.15s system

# time dd if=/dev/zero of=/dev/rsd0c bs=4096 count=10240
sd0(vioscsi0:0:0): Check Condition (error 0x70) on opcode 0x2a
    SENSE KEY: Illegal Request
     ASC/ASCQ: ASC 0x24 ASCQ 0x00
dd: /dev/rsd0c: Invalid argument
42+0 records in
41+0 records out
167936 bytes transferred in 0.290 secs (578587 bytes/sec)
    0m0.46s real     0m0.00s user     0m0.34s system


#### OpenBSD amd64/scsi [test08] ####

# time dd if=/dev/zero of=/dev/sd0c bs=4096 count=10240
sd0(vioscsi0:0:0): Check Condition (error 0x70) on opcode 0x28
    SENSE KEY: Illegal Request
     ASC/ASCQ: ASC 0x24 ASCQ 0x00
dd: /dev/sd0c: Invalid argument
5+0 records in
4+0 records out
16384 bytes transferred in 0.061 secs (265367 bytes/sec)
    0m0.07s real     0m0.00s user     0m0.00s system

# time dd if=/dev/zero of=/dev/rsd0c bs=4096 count=10240
sd0(vioscsi0:0:0): Check Condition (error 0x70) on opcode 0x2a
    SENSE KEY: Illegal Request
     ASC/ASCQ: ASC 0x24 ASCQ 0x00
dd: /dev/rsd0c: Invalid argument
42+0 records in
41+0 records out
167936 bytes transferred in 0.081 secs (2063603 bytes/sec)
    0m0.10s real     0m0.00s user     0m0.00s system


However I'm not chasing the SCSI problem, as VirtIO and IDE do work on
OpenBSD. VirtIO seems to be a bit faster, so I'm focusing all my tests
on VirtIO. If you look below at test02 you notice that to create 4GB
zero filled file takes 42 minutes. In comparision on Scientific Linux it
takes 5 minutes (also a bit slow, but not that much). On amd64 the same
operation is taking seconds.

              +---------+---------+
              |  RHEL7  |  SL6.5  |
     +--------+---------+---------+
     |  i386  |  42min  |  5min   |
     +--------+---------+---------+
     | amd64  |  42sec  |  28sec  |
     +--------+---------+---------+

I did tests on OpenBSD and NetBSD installers, however I have fully
installed i386 OpenBSD on RHEL7rc and it is also very slow. I'm
providing some information below, but if you need any more details,
please let me know.


==== DETAILS ====

rhel7rc> rpm -q kernel qemu-kvm
kernel-3.10.0-121.el7.x86_64
qemu-kvm-1.5.3-60.el7.x86_64

bsd.rd/amd64> dmesg | sed -e 2q
OpenBSD 5.5-current (RAMDISK_CD) #188: Fri Jun 13 13:01:15 MDT 2014
    dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/RAMDISK_CD

bsd.rd/i386> dmesg | sed -e 2q
OpenBSD 5.5-current (RAMDISK_CD) #169: Fri Jun 13 12:51:59 MDT 2014
    dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/RAMDISK_CD

# dmesg | grep sd0
sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, > SCSI3 0/direct fixed
sd0: 10240MB, 512 bytes/sector, 20971520 sectors

==== FILESYSTEM TESTS (4GB) ====

#### OpenBSD amd64/virtio (RHEL7rc) [test01] ####

# time dd if=/dev/zero of=/mnt/TEST bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 42.753 secs (100458532 bytes/sec)
    0m42.79s real     0m0.07s user     0m5.77s system

#### OpenBSD i386/virtio (RHEL7rc) [test02] ####

# time dd if=/dev/zero of=/mnt/TEST bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 2592.993 secs (1656374 bytes/sec)
   43m13.11s real     0m0.56s user    37m14.95s system


#### OpenBSD amd64/virtio (Scientific Linux 6.5) [test03] ####

# time dd if=/dev/zero of=/mnt/TEST bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 28.288 secs (151829547 bytes/sec)
    0m28.29s real     0m0.22s user     0m6.78s system

#### OpenBSD i386/virtio (Scientific Linux 6.5) [test04] ####

# time dd if=/dev/zero of=/mnt/TEST bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 301.991 secs (14222149 bytes/sec)
    5m2.00s real     0m0.61s user     4m15.20s system


#### NetBSD i386/virtio (RHEL7rc) [test05] ####

# dd if=/dev/zero of=/mnt/TEST bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 58.620 secs (73267951 bytes/sec)

#### NetBSD amd64/virtio (RHEL7rc) [test06] ####

# dd if=/dev/zero of=/mnt/TEST bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 58.278 secs (73697918 bytes/sec)


==== RAW DEVICE TESTS ====

#### OpenBSD i386/virtio (RHEL7rc) [test09] ####

# time dd if=/dev/zero of=/dev/sd0c bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 11793.765 secs (364173 bytes/sec)
  196m42.80s real     0m0.83s user   104m36.56s system

# time dd if=/dev/zero of=/dev/rsd0c bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 9726.739 secs (441563 bytes/sec)
  162m6.94s real     0m0.75s user    60m47.03s system


#### OpenBSD amd64/virtio (RHEL7rc) [test10] ####

# time dd if=/dev/zero of=/dev/sd0c bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 8600.437 secs (499389 bytes/sec)
  143m20.50s real     0m1.55s user     0m58.67s system

# time dd if=/dev/zero of=/dev/rsd0c bs=4096 count=1024x1024
1048576+0 records in
1048576+0 records out
4294967296 bytes transferred in 819.963 secs (5237999 bytes/sec)
   13m40.01s real     0m0.70s user     0m35.42s system


==== OTHER INFO ====

# dmesg
OpenBSD 5.5-current (RAMDISK_CD) #169: Fri Jun 13 12:51:59 MDT 2014
    dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/RAMDISK_CD
cpu0: QEMU Virtual CPU version 1.5.3 ("AuthenticAMD" 686-class, 512KB L2 cache) 
2.61 GHz
cpu0: 
FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,NXE,LONG,SSE3,CX16,LAHF,ABM,SSE4A,PERF
real mem  = 536399872 (511MB)
avail mem = 519979008 (495MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 06/23/99, BIOS32 rev. 0 @ 0xfc672, SMBIOS 
rev. 2.4 @ 0xfdde0 (10 entries)
bios0: vendor Bochs version "Bochs" date 01/01/2011
bios0: Red Hat KVM
acpi0 at bios0: rev 0
acpi0: sleep states S5
acpi0: tables DSDT FACP SSDT APIC RSDT
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: apic clock running at 999MHz
ioapic0 at mainbus0: apid 0 pa 0xfec00000, version 11, 24 pins
acpiprt0 at acpi0: bus 0 (PCI0)
bios0: ROM list: 0xc0000/0x1000! 0xc1000/0xa00 0xc2000/0x2400 0xed000/0x3000!
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82441FX" rev 0x02
pcib0 at pci0 dev 1 function 0 "Intel 82371SB ISA" rev 0x00
pciide0 at pci0 dev 1 function 1 "Intel 82371SB IDE" rev 0x00: DMA, channel 0 
wired to compatibility, channel 1 wired to compatibility
pciide0: channel 0 disabled (no drives)
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <QEMU, QEMU DVD-ROM, 1.5.> ATAPI 5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
uhci0 at pci0 dev 1 function 2 "Intel 82371SB USB" rev 0x01: apic 0 int 11
"Intel 82371AB Power" rev 0x03 at pci0 dev 1 function 3 not configured
virtio0 at pci0 dev 3 function 0 "Qumranet Virtio Network" rev 0x00: Virtio 
Network Device
vio0 at virtio0: address 52:54:00:19:55:b8
virtio0: apic 0 int 11
virtio1 at pci0 dev 4 function 0 "Qumranet Virtio Storage" rev 0x00: Virtio 
Block Device
vioblk0 at virtio1
scsibus1 at vioblk0: 2 targets
sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, > SCSI3 0/direct fixed
sd0: 10240MB, 512 bytes/sector, 20971520 sectors
virtio1: apic 0 int 11
virtio2 at pci0 dev 5 function 0 "Qumranet Virtio Memory" rev 0x00: Virtio 
Memory Balloon Device
virtio2: no matching child driver; not configured
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pcdisplay0 at isa0 port 0x3d0/16 iomem 0xb8000/32768
wsdisplay0 at pcdisplay0 mux 1: console (80x25, vt100 emulation), using wskbd0
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 1: density unknown
usb0 at uhci0: USB revision 1.0
uhub0 at usb0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
softraid0 at root
scsibus2 at softraid0: 256 targets
root on rd0a swap on rd0b dump on rd0b


# sysctl
kern.osrelease=5.5
hw.machine=i386
hw.model=QEMU Virtual CPU version 1.5.3 ("AuthenticAMD" 686-class, 512KB L2 
cache)
hw.product=KVM
hw.disknames=cd0:,sd0:819453647a0120e9,fd0:,rd0:70bbd6f4b5ade43a
hw.ncpufound=1

-- 
best regards
q#

Reply via email to