Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933147AbbD1Im0 (ORCPT ); Tue, 28 Apr 2015 04:42:26 -0400 Received: from static.88-198-71-155.clients.your-server.de ([88.198.71.155]:49759 "EHLO socrates.bennee.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932271AbbD1ImW (ORCPT ); Tue, 28 Apr 2015 04:42:22 -0400 References: <1427814488-28467-1-git-send-email-alex.bennee@linaro.org> <1427814488-28467-7-git-send-email-alex.bennee@linaro.org> <20150414082558.GS6186@cbox> <87y4li6hua.fsf@linaro.org> <20150427200407.GG23335@cbox> From: Alex =?utf-8?Q?Benn=C3=A9e?= To: Peter Maydell Cc: Christoffer Dall , kvm-devel , arm-mail-list , "kvmarm\@lists.cs.columbia.edu" , Marc Zyngier , Alexander Graf , Andrew Jones , Paolo Bonzini , Zhichao Huang , "J. Kiszka" , David Hildenbrand , Bharat Bhushan , bp@suse.de, Gleb Natapov , Jonathan Corbet , Russell King , Catalin Marinas , Will Deacon , "open list\:DOCUMENTATION" , open list Subject: Re: [PATCH v2 06/10] KVM: arm64: guest debug, add SW break point support In-reply-to: Date: Tue, 28 Apr 2015 09:42:38 +0100 Message-ID: <87wq0wr6dd.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: alex.bennee@linaro.org X-SA-Exim-Scanned: No (on socrates.bennee.com); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2592 Lines: 60 Peter Maydell writes: > On 27 April 2015 at 21:04, Christoffer Dall wrote: >> On Thu, Apr 23, 2015 at 03:26:53PM +0100, Alex Bennée wrote: >>> >>> Christoffer Dall writes: >>> >>> > On Tue, Mar 31, 2015 at 04:08:04PM +0100, Alex Bennée wrote: >>> >> + * just need to report the PC and the HSR values to userspace. >>> >> + * Userspace may decide to re-inject the exception and deliver it to >>> >> + * the guest if it wasn't for the host to deal with. >>> > >>> > now I'm confused - does userspace setup the guest to receive an >>> > exception or does it tell KVM to emulate an exception for the guest or >>> > do we execute the breakpoint without trapping the debug exception? >>> >>> I've made it all go through userspace as we may have to translate the >>> hypervisor visible exception code to what the guest was expecting to see. >>> >> >> ok, so I think you should re-phrase something like: >> >> "Userspace may decide that this exception is caused by the guest using >> debugging itself, and may in that case emulate the guest debug exception >> in userspace before resuming KVM." >> >> But does that really work? Given that we don't support KVM-TCG >> migration, this sounds a little strange. Did we test it? > > The QEMU patches have a TODO note at the point where you'd want > to do this... Design-wise you can do the reinjection in the > kernel or in userspace (ppc QEMU does this in userspace, for > instance) because it's pretty much just setting registers to fake > up the exception-entry into EL1. Code-wise QEMU's ARM code isn't > set up to do it right now, but it shouldn't be too difficult to > persuade the TCG exception-entry code to work for this case too. > > Does the kernel already have a conveniently implemented "inject > exception into guest" lump of code? If so it might be less effort > to do it that way round, maybe. So you pointed out we can't just re-inject the exceptions we get as we need to map from things like ESR_ELx_EC_WATCHPT_LOW to ESR_ELx_EC_WATCHPT_CUR before re-injection. Of course if it is as simple as modifying the ESR_EL1 register and returning +ve in the handle_exit path then I can do that but I assumed if any other wrangling needs doing it should be done in userspace. > > -- PMM -- Alex Bennée -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/