Re: [PATCH v2] arm64:kgdb: Fix kernel single-stepping

From: Marc Zyngier
Date: Thu Feb 20 2020 - 10:06:05 EST


On 2020-02-20 14:50, Corey Minyard wrote:
On Thu, Feb 20, 2020 at 02:21:36PM +0000, Marc Zyngier wrote:
On 2020-02-19 15:24, minyard@xxxxxxx wrote:
> From: Corey Minyard <cminyard@xxxxxxxxxx>

[...]

> After studying the EL0 handling for this, I realized an issue with using
> MDSCR to check if single step is enabled: it can be expensive on a VM.
> So check the task flag first to see if single step is enabled. Then
> check MDSCR if the task flag is set.

Very tangential remark: I'd really like people *not* to try and optimize
Linux based on the behaviour of a hypervisor. In general, reading a
system register is fast, and the fact that it traps on a given hypervisor
at some point may not be true in the future, nor be a valid assumption
across hypervisors.

Normally I would agree, but I based this upon git commit
https://github.com/torvalds/linux/commit/2a2830703a2371b47f7b50b1d35cb15dc0e2b717
which seemed to say that it was a significant enough factor to do in the
EL0 case.

And that's a blast from a distant past. Hypervisors have changed drastically
over these 6 years, and I'm still sitting on a bunch of patches that *could*
change the way MDSCR_EL1 is handled.

M.
--
Jazz is not dead. It just smells funny...