Re: [RFC] KVM: SVM: do not drop VMCB CPL to 0 if SS is not present

From: Paolo Bonzini
Date: Tue May 30 2017 - 12:05:52 EST




On 30/05/2017 17:58, Roman Penyaev wrote:
> Indeed, what is left is eventually take it from SS.RPL. J.

Ahah! :) But I only suggested that in specific cases.

> But jokes aside, with your last patch you seems fixed a race problem
> when "CS.RPL is not equal to the CPL in the few instructions between
> setting CR0.PE and reloading CS".

Yes, exactly. The symptom was a crash (triple fault) when you kept
interrupting with "info cpus" a guest that repeatedly went to protected
mode and back to real mode.

> We will have CPL in var->dpl, and it seems ok. All we need is not
> to lose it on the way kernel->userspace->kernel.

You're right. So what do you think of the other suggestion (svm.c
doesn't clear attributes for unusable registers, QEMU only clears P for
unusable registers)?

Thanks,

Paolo