> -----Original Message----- > From: Wood Scott-B07421 > Sent: Tuesday, July 29, 2014 11:20 PM > To: Alexander Graf > Cc: Bhushan Bharat-R65777; kvm-ppc@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; Yoder > Stuart-B08248 > Subject: Re: [PATCH 6/6] KVM: PPC: BOOKE: Emulate debug registers and exception > > On Tue, 2014-07-29 at 16:06 +0200, Alexander Graf wrote: > > On 29.07.14 00:33, Scott Wood wrote: > > > On Mon, 2014-07-28 at 16:04 +0200, Alexander Graf wrote: > > >> On 11.07.14 10:39, Bharat Bhushan wrote: > > >>> This patch emulates debug registers and debug exception to support > > >>> guest using debug resource. This enables running gdb/kgdb etc in > > >>> guest. > > >>> > > >>> On BOOKE architecture we cannot share debug resources between QEMU > > >>> and guest because: > > >>> When QEMU is using debug resources then debug exception must > > >>> be always enabled. To achieve this we set MSR_DE and also set > > >>> MSRP_DEP so guest cannot change MSR_DE. > > >>> > > >>> When emulating debug resource for guest we want guest > > >>> to control MSR_DE (enable/disable debug interrupt on need). > > >>> > > >>> So above mentioned two configuration cannot be supported > > >>> at the same time. So the result is that we cannot share > > >>> debug resources between QEMU and Guest on BOOKE architecture. > > >>> > > >>> In the current design QEMU gets priority over guest, this means > > >>> that if QEMU is using debug resources then guest cannot use them > > >>> and if guest is using debug resource then QEMU can overwrite them. > > >>> > > >>> Signed-off-by: Bharat Bhushan <Bharat.Bhushan@xxxxxxxxxxxxx> > > >>> --- > > >>> Hi Alex, > > >>> > > >>> I thought of having some print in register emulation if QEMU is > > >>> using debug resource, Also when QEMU overwrites guest written > > >>> values but that looks excessive. If I uses some variable which get > > >>> set when guest starts using debug registers and check in debug set > > >>> ioctl then that look ugly. Looking for suggestions > > >> Whatever you do, have QEMU do the print, not the kernel. > > > How would that be accomplished? How would the kernel know to exit > > > to QEMU, and how would the exit reason be conveyed? > > > > QEMU is the one forcefully enabling debug and overwriting guest debug > > registers, so it also knows when it did overwrite valid ones. > > QEMU knows when it overwrites the guest values, but it doesn't know if, after > enabling host debug, the guest tries to write to the debug registers and it gets > nopped. Do we want that QEMU first get DBCR0 to know whether it is overwriting whenever set/clear debug register? > If we keep the EDM setting, then we can at least say the situation is > no worse than with a JTAG. Yes Thanks -Bharat > > -Scott > ��.n��������+%������w��{.n�����o�^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�