qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Question] dump memory when host pci device is used by


From: Wen Congyang
Subject: Re: [Qemu-devel] [Question] dump memory when host pci device is used by guest
Date: Mon, 10 Oct 2011 16:28:29 +0800
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100413 Fedora/3.0.4-2.fc13 Thunderbird/3.0.4

At 10/10/2011 03:48 PM, Jan Kiszka Write:
> On 2011-10-10 09:47, Wen Congyang wrote:
>> At 10/10/2011 03:22 PM, Jan Kiszka Write:
>>> On 2011-10-10 09:17, Wen Congyang wrote:
>>>> At 10/10/2011 03:01 PM, Jan Kiszka Write:
>>>>> On 2011-10-10 08:59, Wen Congyang wrote:
>>>>>> At 10/10/2011 02:52 PM, Jan Kiszka Write:
>>>>>>> On 2011-10-10 04:21, Wen Congyang wrote:
>>>>>>>> At 10/09/2011 06:23 PM, Richard W.M. Jones Write:
>>>>>>>>> On Sun, Oct 09, 2011 at 10:49:57AM +0200, Jan Kiszka wrote:
>>>>>>>>>> As explained in the other replies: It is way more future-proof to 
>>>>>>>>>> use an
>>>>>>>>>> interface for this which was designed for it (remote gdb) instead of
>>>>>>>>>> artificially relaxing reasonable constraints of the migration 
>>>>>>>>>> mechanism
>>>>>>>>>> plus having to follow that format with the post-processing tool.
>>>>>>>>>
>>>>>>>>> Any interface that isn't "get this information off my production
>>>>>>>>> server *now*" so that I can get the server restarted, and send it to
>>>>>>>>> an expert to analyse -- is a poor interface, whether it was designed
>>>>>>>>> like that or not.  Perhaps we don't have the right interface at all,
>>>>>>>>> but remote gdb is not it.
>>>>>>>>
>>>>>>>> What about the following idea?
>>>>>>>>
>>>>>>>> Introduce a new monitor command named dump, and this command accepts a 
>>>>>>>> filename.
>>>>>>>> We can use almost all migration's code. We use this command to dump 
>>>>>>>> guest's
>>>>>>>> memory, so there is no need to check whether the guest has a 
>>>>>>>> unmigratable device.
>>>>>>>
>>>>>>> I do not want to reject this proposal categorically, but I would like to
>>>>>>> see the gdb path fail /wrt essential requirements first. So far I don't
>>>>>>> see it would.
>>>>>>
>>>>>> ‘gdb path fail /wrt essential requirements’
>>>>>>
>>>>>> what does it mean?
>>>>>
>>>>> That you explain why reading reading memory and processor states via the
>>>>> remote gdb interface and dumping it into a proper core file cannot be
>>>>> made working for you.
>>>>
>>>> First, I think crash can not analyze such core file. But it is not very 
>>>> important.
>>>>
>>>> What is remote gdb interface?
>>>
>>> man qemu -> gdb.
>>>
>>>> Do you mean that: the supporter uses gdb from another machine
>>>
>>> Or locally. There are various transports possible.
>>>
>>>> to connect to customer's machine and get the data? If so, this way can not 
>>>> be
>>>> used when the customer needs to dump the guest's memory automatically when 
>>>> watchdog timeouts.
>>>
>>> It is just another channel that can conceptually be used like the
>>> monitor, by a management app like libvirt, directly or indirectly via a
>>> scripted gdb frontend, or also by a human who wants to save some ongoing
>>> gdb session for later analysis. This dual use make such an approach the
>>> preferred one.
>>
>> Is the following is right?
>>
>> 1. execute the monitor command 'gdbserver'
>> 2. run gdb and then 'target remote :1234'
> 
> Yep.

Can two guest use such port(1234) at the same time? If not, I think qemu should 
support to select
a port automatically.

Another problem is that: we should not require dev and debug tools(here is gdb) 
to be installed on the
production host.

> 
>>
>> But, unfortunately, the monitor command gdbserver does not exit when we use 
>> json to connect to monitor.
> 
> You mean via human-monitor-command (gdbserver is not a qmp command)?
Yes.

Thanks
Wen Congyang

> Would be a bug.
> 
> Jan
> 




reply via email to

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