From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:54935) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RDBDL-0000E2-BS for qemu-devel@nongnu.org; Mon, 10 Oct 2011 04:28:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RDBDG-00082L-9H for qemu-devel@nongnu.org; Mon, 10 Oct 2011 04:27:59 -0400 Received: from [222.73.24.84] (port=60501 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RDBDA-0007s5-Pf for qemu-devel@nongnu.org; Mon, 10 Oct 2011 04:27:54 -0400 Message-ID: <4E92ACAD.4080004@cn.fujitsu.com> Date: Mon, 10 Oct 2011 16:28:29 +0800 From: Wen Congyang MIME-Version: 1.0 References: <4E8ECA91.8040409@cn.fujitsu.com> <4E8ED167.1000705@siemens.com> <20111008151622.GA17181@amd.home.annexia.org> <4E916035.5050906@web.de> <20111009102338.GN16799@amd.home.annexia.org> <4E92568E.2010507@cn.fujitsu.com> <4E929618.4040403@web.de> <4E9297CB.8010303@cn.fujitsu.com> <4E929848.6030105@web.de> <4E929BFC.20406@cn.fujitsu.com> <4E929D38.5050008@web.de> <4E92A315.9040200@cn.fujitsu.com> <4E92A35E.2070207@web.de> In-Reply-To: <4E92A35E.2070207@web.de> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [Question] dump memory when host pci device is used by guest List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Luiz Capitulino , "Richard W.M. Jones" , qemu-devel 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 t= o use an >>>>>>>>>> interface for this which was designed for it (remote gdb) instea= d of >>>>>>>>>> artificially relaxing reasonable constraints of the migration me= chanism >>>>>>>>>> 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 desig= ned >>>>>>>>> like that or not. Perhaps we don't have the right interface at a= ll, >>>>>>>>> but remote gdb is not it. >>>>>>>> >>>>>>>> What about the following idea? >>>>>>>> >>>>>>>> Introduce a new monitor command named dump, and this command accep= ts a filename. >>>>>>>> We can use almost all migration's code. We use this command to dum= p guest's >>>>>>>> memory, so there is no need to check whether the guest has a unmig= ratable device. >>>>>>> >>>>>>> I do not want to reject this proposal categorically, but I would li= ke to >>>>>>> see the gdb path fail /wrt essential requirements first. So far I d= on't >>>>>>> see it would. >>>>>> >>>>>> =91gdb path fail /wrt essential requirements=92 >>>>>> >>>>>> 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 ver= y 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' >=20 > Yep. Can two guest use such port(1234) at the same time? If not, I think qemu sh= ould 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. >=20 >> >> But, unfortunately, the monitor command gdbserver does not exit when we = use json to connect to monitor. >=20 > You mean via human-monitor-command (gdbserver is not a qmp command)? Yes. Thanks Wen Congyang > Would be a bug. >=20 > Jan >=20