On Thu, Aug 20, 2020 at 3:55 PM Jim Mattson <jmattson@xxxxxxxxxx> wrote: > > On Thu, Aug 20, 2020 at 2:59 PM Alexander Graf <graf@xxxxxxxxxx> wrote: > > > Do we really need to do all of this dance of differentiating in kernel > > space between an exit that's there because user space asked for the exit > > and an MSR access that would just generate a #GP? > > > > At the end of the day, user space *knows* which MSRs it asked to > > receive. It can filter for them super easily. > > If no one else has an opinion, I can let this go. :-) > > However, to make the right decision in kvm_emulate_{rdmsr,wrmsr} > (without the unfortunate before and after checks that Aaron added), > kvm_{get,set}_msr should at least distinguish between "permission > denied" and "raise #GP," so I can provide a deny list without asking > for userspace exits on #GP. Actually, I think this whole discussion is moot. You no longer need the first ioctl (ask for a userspace exit on #GP). The allow/deny list is sufficient. Moreover, the allow/deny list checks can be in kvm_emulate_{rdmsr,wrmsr} before the call to kvm_{get,set}_msr, so we needn't be concerned with distinguishable error values either.