qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 0/8] Basic device state visualization


From: Jan Kiszka
Subject: [Qemu-devel] Re: [PATCH 0/8] Basic device state visualization
Date: Fri, 14 May 2010 18:24:24 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

Avi Kivity wrote:
> On 05/14/2010 04:20 PM, Jan Kiszka wrote:
>> While recently fixing the SCSI reset issues, I once again had the need
>> for displaying the state of involved devices. So far the common approach
>> is to attach gdb to qemu (or even inject some printf). But that time I
>> hacked up a 30-minute patch to dump the vmstate of any (fully converted)
>> qdev device.
>>    
> 
> Wonderful! may even motivate some more qmp conversions.

Yeah, a few low handing fruits are already gone (the vmstate series I
sent out recently). I've some stuff for hpet here, but I did not tough
[IO]APIC yet as that should be based on top of Glauber's work for
in-kernel irqchip support.

> 
>> This series now lays the ground for more sophisticated visulization. It
>> adds the monitor command 'device_show<qdev-path>', freezes the vmstate
>> of the addressed device, sticks it into a QMP dict, and either transmit
>> this via QMP or pretty-prints it on a monitor console. Some example:
>>
>> (qemu) device_show /i440FX-pcihost/pci.0/piix3-usb-uhci
>> dev: piix3-usb-uhci, id ""
>>    dev.
>>      version_id:         00000002
>>      config:             a0 7d d1 00 00 00 00 00 - b0 7e d1 00 00 00 00 00
>>                          ...
>>      irq_state:          00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00
>>    num_ports_vmstate:    02
>>    ports[00].
>>        ctrl:             0083
>>    ports[01].
>>        ctrl:             0080
>>    cmd:                  00c1
>>    status:               0000
>>    intr:                 0000
>>    frnum:                0077
>>    fl_base_addr:         0fffc000
>>    sof_timing:           40
>>    status2:              00
>>    frame_timer:          0000000000cb2bd0
>>
>> Basically, this is the level of support I recently saw in a
>> demonstration of some commercial simulator as well. We are just lacking
>> support for the yet unconverted devices. And I think we can even do
>> better on the long term, e.g. by annotating state variables that contain
>> flags, or by pretty-printing buffers like the PCI config space, or...
>>
>>    
> 
> Will be interesting to pass these annotations via qmp as well.

For sure. We could e.g. convert QBuffers to QInts or QInts to QBools
once we know their names and positions. This is where the harder work
starts (that's why I proposed it for GSOC :) ).

> 
>> Let's give this a start, I bet it will be helpful while adding complex
>> device models like AHCI or EHCI. Looking forward to feedback!
>>    
> 
> I'd like to see qmp command documentation for this.
> 

Will add it once the doc baseline is merged.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux



reply via email to

[Prev in Thread] Current Thread [Next in Thread]