lkml.org 
[lkml]   [2021]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Set DBGCLAIM when self-host debug is enabled
On Wed, Jan 06, 2021 at 08:23:56PM +0800, Mark Rutland wrote:
> On Wed, Jan 06, 2021 at 06:29:53PM +0800, tingwei@codeaurora.org wrote:
> > Hi Will and Mark,
>
> Hi Tingwei,
>
> > In recent implementation of save/restore ARM debug registers in
> > EL2/EL3, we found it's necessary to know whether self-host debug is
> > enabled so EL2/EL3 can avoid saving/restoring debug registers but no
> > one is using debug.
>
> In what situation are you considering? I assume you mean idle sequences
> using CPU_SUSPEND?
>
> Generally our expectation for CPU_SUSPEND is:
>
> * Where StateType==0, the debug state is preserved with all other
> PE state.
>
> * Where StateType==1 and the PE returns "warm" without having entered a
> powerdown state, the debug state is preserved along with all other PE
> state.
>
> * Where StateType==1, and the PE returns "cold" after having entered a
> powerdown state (i.e. we return via the entry point address), the
> debug state is not preserved.
>
> ... and I'm missing where you could avoid saving the state. What
> situation(s) did you have in mind?
>
In StateType==1 case, EL2/EL3 can save debug registers before PE suspend
and restore them after PE resume. If EL2/EL3 doesn't know whether external
debugger or self-host debugger is using debug registers, it can save and
restore bindly everytime. However, if EL2/EL3 can get the information from
DBGCLAIM, it can only save/restore debug registers when debug is ongoing
which means DGBCLAIM[0] is set by external debugger or DGBCLAIM[1] is set
by self-host debugger.

> > In ARM PSCI, it has one option to set DBGCLAIM[1] to 1 to indicate
> > that debug is in use by a self-host debugger. Do you think it's
> > resonable to add this to Kernel?
> >
> > For example, can we set DBGCLAIM[1] to 1 in enable_debug_monitors()
> > and clear it in disable_debug_monitors().
>
> I was under the impression that this was solely for the benefit of an
> external debugger, and should have no functional impact on the PSCI
> implementation from the kernel's PoV, so as above I think we need a
> better description of the case you're trying to address.

If self-host debugger like gdb/kgdb is used for debug, Kernel can set
DBGCLAIM[1] to inform EL2/EL3.

Thanks,
Tingwei
>
> Thanks,
> Mark.

\
 
 \ /
  Last update: 2021-01-08 05:03    [W:0.052 / U:2.424 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site