On 11/02/20 14:22, Thomas Gleixner wrote:
Paolo Bonzini <pbonzini@xxxxxxxxxx> writes:
On 03/02/20 16:16, Xiaoyao Li wrote:
A sane guest should never tigger emulation on a split-lock access, but
it cannot prevent malicous guest from doing this. So just emulating the
access as a write if it's a split-lock access to avoid malicous guest
polluting the kernel log.
Saying that anything doing a split lock access is malicious makes little
sense.
Correct, but we also have to accept, that split lock access can be used
in a malicious way, aka. DoS.
Indeed, a more accurate emulation such as temporarily disabling
split-lock detection in the emulator would allow the guest to use split
lock access as a vehicle for DoS, but that's not what the commit message
says. If it were only about polluting the kernel log, there's
printk_ratelimited for that. (In fact, if we went for incorrect
emulation as in this patch, a rate-limited pr_warn would be a good idea).
It is much more convincing to say that since this is pretty much a
theoretical case, we can assume that it is only done with the purpose of
DoS-ing the host or something like that, and therefore we kill the guest.
Split lock detection is essentially a debugging feature, there's a
reason why the MSR is called "TEST_CTL". So you don't want to make the
The fact that it ended up in MSR_TEST_CTL does not say anything. That's
where they it ended up to be as it was hastily cobbled together for
whatever reason.
Or perhaps it was there all the time in test silicon or something like
that... That would be a very plausible reason for all the quirks behind it.
Paolo