* [Qemu-devel] Qemu crashed with lsi booting
@ 2012-07-26 8:31 Frediano Ziglio
2012-07-27 2:26 ` Kevin O'Connor
2012-07-27 5:51 ` Paolo Bonzini
0 siblings, 2 replies; 4+ messages in thread
From: Frediano Ziglio @ 2012-07-26 8:31 UTC (permalink / raw)
To: Paul Brook; +Cc: kevin, qemu-devel, kraxel
I always get an assert launching this command
sudo ./x86_64-softmmu/qemu-system-x86_64 -m 1024 -hda test.qcow
-device lsi -drive file=/dev/sdb,if=none,id=XXX -device
scsi-block,drive=XXX -enable-kvm -bios ~/seabios/out/bios.bin -serial
file:out.txt
lsi_scsi: error: Multiple IO pending for request 0x7fd1075bf100
qemu-system-x86_64: /home/fredianoz/qemu/hw/lsi53c895a.c:774:
lsi_do_command: Assertion `s->current == ((void *)0)' failed.
(sometimes I don't get the "Multiple IO ending" line).
I'm using a recent SeaBIOS which support booting from LSI SCSI.
Qemu version
$ git branch -v
* master 61dc008 Revert "audio: Make PC speaker audio card available by default"
I'm using SeaBIOS commit 9d6bac1d32b72cdf7c0ad009c1371a2e69084de3
(some minor changes in order to support 4k sectors).
Adding some debugging to SeaBIOS lsi code seems that drivers send
initial INQUIRY request but after that all requests have some problems
and lead to a lot of reset command.
Frediano
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] Qemu crashed with lsi booting
2012-07-26 8:31 [Qemu-devel] Qemu crashed with lsi booting Frediano Ziglio
@ 2012-07-27 2:26 ` Kevin O'Connor
2012-07-27 5:51 ` Paolo Bonzini
1 sibling, 0 replies; 4+ messages in thread
From: Kevin O'Connor @ 2012-07-27 2:26 UTC (permalink / raw)
To: Frediano Ziglio; +Cc: kraxel, Paul Brook, qemu-devel
On Thu, Jul 26, 2012 at 09:31:29AM +0100, Frediano Ziglio wrote:
> I always get an assert launching this command
>
> sudo ./x86_64-softmmu/qemu-system-x86_64 -m 1024 -hda test.qcow
> -device lsi -drive file=/dev/sdb,if=none,id=XXX -device
> scsi-block,drive=XXX -enable-kvm -bios ~/seabios/out/bios.bin -serial
> file:out.txt
> lsi_scsi: error: Multiple IO pending for request 0x7fd1075bf100
> qemu-system-x86_64: /home/fredianoz/qemu/hw/lsi53c895a.c:774:
> lsi_do_command: Assertion `s->current == ((void *)0)' failed.
>
> (sometimes I don't get the "Multiple IO ending" line).
>
> I'm using a recent SeaBIOS which support booting from LSI SCSI.
I'm not seeing this crash with basic HD support on my system when
using a simple image on qemu 1.1.1 with: -drive
id=X,file=image,if=scsi
We'll have to wait for Gerd to return to investigate further.
Alternatively, you might want to try different possibilities to narrow
down what is failing.
-Kevin
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] Qemu crashed with lsi booting
2012-07-26 8:31 [Qemu-devel] Qemu crashed with lsi booting Frediano Ziglio
2012-07-27 2:26 ` Kevin O'Connor
@ 2012-07-27 5:51 ` Paolo Bonzini
2012-07-27 12:09 ` Frediano Ziglio
1 sibling, 1 reply; 4+ messages in thread
From: Paolo Bonzini @ 2012-07-27 5:51 UTC (permalink / raw)
To: Frediano Ziglio; +Cc: Paul Brook, Kevin O'Connor, qemu-devel, Gerd Hoffmann
Il 26/07/2012 10:31, Frediano Ziglio ha scritto:
> sudo ./x86_64-softmmu/qemu-system-x86_64 -m 1024 -hda test.qcow
> -device lsi -drive file=/dev/sdb,if=none,id=XXX -device
> scsi-block,drive=XXX -enable-kvm -bios ~/seabios/out/bios.bin -serial
> file:out.txt
> lsi_scsi: error: Multiple IO pending for request 0x7fd1075bf100
> qemu-system-x86_64: /home/fredianoz/qemu/hw/lsi53c895a.c:774:
> lsi_do_command: Assertion `s->current == ((void *)0)' failed.
>
> (sometimes I don't get the "Multiple IO ending" line).
>
> I'm using a recent SeaBIOS which support booting from LSI SCSI.
>
> Qemu version
>
> $ git branch -v
> * master 61dc008 Revert "audio: Make PC speaker audio card available by default"
>
> I'm using SeaBIOS commit 9d6bac1d32b72cdf7c0ad009c1371a2e69084de3
> (some minor changes in order to support 4k sectors).
Can you share them? 4k sectors are not supported by BIOS at all
AFAIK... Does virtio-scsi work with those changes?
> Adding some debugging to SeaBIOS lsi code seems that drivers send
> initial INQUIRY request but after that all requests have some problems
> and lead to a lot of reset command.
Can you gather tracing output for the following events:
scsi_req_data
scsi_req_dequeue
scsi_req_parsed
scsi_req_parse_bad
scsi_req_build_sense
scsi_inquiry
scsi_test_unit_ready
(Perhaps you can also instrument scsi_req_cancel for tracing).
The timing doesn't matter, so you can use the stderr backend:
--enable-trace-backend=stderr
Place the above list in a file (one tracepoint per line) and then start
QEMU with -trace events=/path/to/file.txt.
You could also try github.com/bonzini/qemu.git, branch scsi-next (it
shouldn't fix anything, but I added a couple more assertions).
Paolo
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] Qemu crashed with lsi booting
2012-07-27 5:51 ` Paolo Bonzini
@ 2012-07-27 12:09 ` Frediano Ziglio
0 siblings, 0 replies; 4+ messages in thread
From: Frediano Ziglio @ 2012-07-27 12:09 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Paul Brook, Kevin O'Connor, qemu-devel, Gerd Hoffmann
[-- Attachment #1: Type: text/plain, Size: 2466 bytes --]
2012/7/27 Paolo Bonzini <pbonzini@redhat.com>:
> Il 26/07/2012 10:31, Frediano Ziglio ha scritto:
>> sudo ./x86_64-softmmu/qemu-system-x86_64 -m 1024 -hda test.qcow
>> -device lsi -drive file=/dev/sdb,if=none,id=XXX -device
>> scsi-block,drive=XXX -enable-kvm -bios ~/seabios/out/bios.bin -serial
>> file:out.txt
>> lsi_scsi: error: Multiple IO pending for request 0x7fd1075bf100
>> qemu-system-x86_64: /home/fredianoz/qemu/hw/lsi53c895a.c:774:
>> lsi_do_command: Assertion `s->current == ((void *)0)' failed.
>>
>> (sometimes I don't get the "Multiple IO ending" line).
>>
>> I'm using a recent SeaBIOS which support booting from LSI SCSI.
>>
>> Qemu version
>>
>> $ git branch -v
>> * master 61dc008 Revert "audio: Make PC speaker audio card available by default"
>>
>> I'm using SeaBIOS commit 9d6bac1d32b72cdf7c0ad009c1371a2e69084de3
>> (some minor changes in order to support 4k sectors).
>
> Can you share them? 4k sectors are not supported by BIOS at all
> AFAIK... Does virtio-scsi work with those changes?
>
>> Adding some debugging to SeaBIOS lsi code seems that drivers send
>> initial INQUIRY request but after that all requests have some problems
>> and lead to a lot of reset command.
>
> Can you gather tracing output for the following events:
>
> scsi_req_data
> scsi_req_dequeue
> scsi_req_parsed
> scsi_req_parse_bad
> scsi_req_build_sense
> scsi_inquiry
> scsi_test_unit_ready
>
> (Perhaps you can also instrument scsi_req_cancel for tracing).
>
> The timing doesn't matter, so you can use the stderr backend:
>
> --enable-trace-backend=stderr
>
> Place the above list in a file (one tracepoint per line) and then start
> QEMU with -trace events=/path/to/file.txt.
>
> You could also try github.com/bonzini/qemu.git, branch scsi-next (it
> shouldn't fix anything, but I added a couple more assertions).
>
> Paolo
It's currently a quite complicated setup. I used a virtual SCSI disk.
However Linux is happy with it and does not crash.
Also I got an assert even using scsi-hd directly (I had to disable
multipathd). It seems that the LSI Qemu driver assert when code try to
send two commands (second without waiting first completion).
Attached error with trace enabled (err.txt) and serial output with
SeaBIOS debug level set to 8.
To support these 4kb disk in SeaBIOS I just changed the line in src/blockcmd.c
if (drive->blksize != DISK_SECTOR_SIZE) {
to
if (drive->blksize != DISK_SECTOR_SIZE && drive->blksize != 4096) {
Frediano
[-- Attachment #2: serial.txt.gz --]
[-- Type: application/x-gzip, Size: 2609 bytes --]
[-- Attachment #3: err.txt.gz --]
[-- Type: application/x-gzip, Size: 877 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-07-27 12:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-26 8:31 [Qemu-devel] Qemu crashed with lsi booting Frediano Ziglio
2012-07-27 2:26 ` Kevin O'Connor
2012-07-27 5:51 ` Paolo Bonzini
2012-07-27 12:09 ` Frediano Ziglio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).