On Wed, Feb 7, 2024 at 8:41 AM Oliver Upton <oliver.upton@xxxxxxxxx> wrote: > > On Wed, Feb 07, 2024 at 07:39:50AM -0800, Sean Christopherson wrote: > > Having said that... > > > be part of this patch. Because otherwise, advertising KVM_CAP_MEMORY_FAULT_INFO > > is a lie. Userspace can't catch KVM in the lie, but that doesn't make it right. > > > > That should in turn make it easier to write a useful changelog. > > The feedback still stands. The capability needs to be squashed into the > patch that actually introduces the functionality. > > -- > Thanks, > Oliver Hold on, I think there may be confusion here. KVM_CAP_MEMORY_FAULT_INFO is the mechanism for reporting annotated EFAULTs. These are generic in that other things (such as the guest memfd stuff) may also report information to userspace using annotated EFAULTs. KVM_CAP_EXIT_ON_MISSING is the thing that says "do an annotated EFAULT when a stage-2 violation would require faulting in host mapping" On both x86 and arm64, the relevant functionality is added and the cap is advertised in a single patch. I think it makes sense to enable/advertise the two caps separately (as I've done here). The former, after all, just says that userspace "may get annotated EFAULTs for whatever reason" (as opposed to the latter cap, which says that userspace *will* get annotated EFAULTs when the stage-2 handler is failed). So even if arm64 userspaces never get annotated EFAULTs as of this patch, I don't think we're "lying" to them. Consider a related problem: suppose that code is added in core KVM which also generates annotated EFAULTs, and that later the arm64 "Enable KVM_CAP_EXIT_ON_MISSING" patch [1] ends up needing to be reverted for some reason. If the two patches were merged, that revert would silence *all* annotated EFAULTs for arm64, which seems incorrect. James and I had this discussion in [2] (I propose an updated description there too). [1] https://lore.kernel.org/kvm/20231109210325.3806151-10-amoorthy@xxxxxxxxxx/ [2] https://lore.kernel.org/kvm/CAF7b7mrALBBWCg+ctU867BjQhtLQNuX=Yo8u9TZEuDTEtCV6qw@xxxxxxxxxxxxxx/