[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Summary of CD, DVD passthrough tests with -drive if=scsi
From: |
Thomas Schmitt |
Subject: |
[Qemu-devel] Summary of CD, DVD passthrough tests with -drive if=scsi |
Date: |
Sun, 06 Nov 2011 12:26:54 +0100 |
Hi,
since i had to give up the plan to test BD burning, i now post the
first summary of passthrough testing on base of if=scsi .
Next i will try to follow Paolo Bonzini's proposal to use if=virtio.
-------------------------------------------------------------------------
List of successes and failures with various CD and DVD use cases
on an internal SATA drive at host Debian 6.0.2
Linux ... 2.6.32-5-amd64 #1 SMP Tue Jun 14 09:42:28 UTC 2011 x86_64
with guest Debian 6.0.3
Linux ... 2.6.32-5-686 #1 SMP Mon Oct 3 04:15:24 UTC 2011 i686
qemu source is a git clone obtained on November 2 by
git clone git://git.qemu.org/qemu.git
File VERSION has date Nov 2 13:41 (+0100)
$ cat VERSION
0.15.90
$ git describe
fatal: No annotated tags can describe
'e072ea2fd8fdceef64159b9596d3c15ce01bea91'.
However, there were unannotated tags: try --tags.
$ git describe --tags
v1.0-rc0
qemu start:
.../x86_64-softmmu/qemu-system-x86_64 \
-L .../pc-bios \
-enable-kvm \
-nographic \
-m 512 \
-net nic,model=ne2k_pci \
-net user,hostfwd=tcp::5557-:22 \
-hda /dvdbuffer/i386-install.qemu \
-drive file=/dev/sg2,if=scsi \
-cdrom /dvdbuffer/pseudo_drive
-------------------------------------------------------------------------
Successes:
All media types
Tray loading and ejecting.
CD-RW (and most probably CD-R)
Writing a session with a single track with write type TAO.
As first session and as add-on session.
DVD+RW
Writing if SET STREAMING is omitted.
DVD-RW (and most probably DVD-R)
Write type Incremental (aka Packet) if SET STREAMING is omitted.
Blanking.
Writing to thoroughly formatted DVD-RW if SET STREAMING is omitted.
DVD+R
Writing sessions without using RESERVE TRACK, if SET STREAMING is omitted.
Closing of medium.
-------------------------------------------------------------------------
Failures:
I count and classify them by these poetic category names:
1 HOST CRASHER kernel Oops and crash of the host system
2 DRIVE FREEZER makes the drive unusable on the host until host reboot
4 GUEST KILLER makes guest freeze or qemu abort
1 MEDIUM KILLER makes medium unusable (at least for current libburn)
2 SHOWSTOPPER prevents usage of drive or medium
2 ANNOYING severely hampers usage of medium
1 UGLY deprives user of less important information
USB attached drive
* HOST CRASHER
* SHOWSTOPPER
An USB attached drive does not perform any SCSI command,
qemu ioctl() gets "No such device",
host gets kernel Oops when guest is shut down,
host shell sessions are frozen until hardware reset button.
CD-RW (and most probably CD-R)
* DRIVE FREEZER
* GUEST KILLER
Writing a first session to blank media with write type SAO.
The guest freezes. The drive gets unusable by the host system
until host reboot.
SEND CUE SHEET
5d 00 00 00 00 00 00 00 20 00
To drive: 32b
41 00 00 01 00 00 00 00 41 01 00 10 00 00 00 00 41 01 01 10
00 00 02 00 41 aa 01 01 00 00 35 30
DVD in general
* DRIVE FREEZER
* GUEST KILLER
Guest freezes, qemu goes to 100% CPU, after
SET STREAMING
b6 00 00 00 00 00 00 00 00 00 1c 00
To drive: 28b
00 00 00 00 00 00 00 00 00 23 04 88 10 00 00 00 00 00 03 e8
10 00 00 00 00 00 03 e8
The drive is unusable by the host afterwards
* ANNOYING
Guest SG_IO timeout with READ DISC STRUCTURE formats
0x04 , 0x11 , 0x0e , 0x10.
READ DISC STRUCTURE
ad 00 00 00 00 00 00 04 00 04 00 00
READ DISC STRUCTURE
ad 00 00 00 00 00 00 11 00 04 00 00
READ DISC STRUCTURE
ad 00 00 00 00 00 00 0e 00 04 00 00
READ DISC STRUCTURE
ad 00 00 00 00 00 00 10 00 04 00 00
DVD+RW
* SHOWSTOPPER
Failure to write to unformatted or partly formatted DVD+RW.
FORMAT UNIT
04 11 00 00 00 00
To drive: 12b
00 02 00 08 ff ff ff ff 98 00 00 00
+++ sense data = F0 00 0B 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00
+++ key=B asc=00h ascq=00h ( 488 ms)
DVD-RW
* GUEST KILLER
Guest freezes with DVD-RW write type DAO. qemu is on 100 % CPU.
Most probably after RESERVE TRACK, although this command is not shown
by the SCSI log. But the command before it is shown and the medium
has inconsistent knowledge of the desired track size.
* ANNOYING
Failure to format sequential DVD-RW, and to write to partially
formatted DVD-RW.
* UGLY
Failure to deliver progress of Blanking DVD-RW via REQUEST SENSE.
REQUEST SENSE
03 00 00 00 12 00
From drive: 18b
f0 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00
0 ms
TEST UNIT READY delivers the desired information.
DVD+R
* GUEST KILLER
* MEDIUM KILLER
Guest freezes, medium has unwritten open reserved track after
RESERVE TRACK
53 00 00 00 00 00 00 0f 30 00
-------------------------------------------------------------------------
Proposals:
Mode page 2A of emulated ATAPI DVD-ROM should have page length 0x14
like SCSI CD-ROM, rather than 0x12. (Just add two 0-bytes to its end
and adkust the size dependent fields.)
MODE SENSE(6) should be thrown out of ATAPI DVD-ROM emulation.
Its implementation is wrong. It is not specified in the ATAPI list
of MMC-2. MMC-5 prescribes to use MODE SENSE(10).
Let passthrough operate on /dev/sr too.
Using /dev/sg as superuser makes the hard disk prone to be used
as qemu -drive by mistake of the user.
-------------------------------------------------------------------------
Have a nice day :)
Thomas
- [Qemu-devel] Summary of CD, DVD passthrough tests with -drive if=scsi,
Thomas Schmitt <=
Re: [Qemu-devel] Summary of CD, DVD passthrough tests with -drive if=scsi, Paolo Bonzini, 2011/11/09