Hi Amit, Thanks for the patch and incorporating V3 review comments. Further review comments inline below:
Amit Machhiwal <[email protected]> writes: > Add documentation for the KVM_PPC_GET_COMPAT_CAPS ioctl to the KVM API > documentation. > > The ioctl exposes host processor compatibility modes supported for > nested KVM guests on PowerPC systems. The documentation includes > comprehensive error code descriptions, structure field definitions > including the size field for forward compatibility, and KVM-specific > capability bit constants. > > Signed-off-by: Amit Machhiwal <[email protected]> > --- > Documentation/virt/kvm/api.rst | 47 ++++++++++++++++++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst > index 52bbbb553ce1..ba6feba74d7d 100644 > --- a/Documentation/virt/kvm/api.rst > +++ b/Documentation/virt/kvm/api.rst > @@ -6553,6 +6553,53 @@ KVM_S390_KEYOP_SSKE > Sets the storage key for the guest address ``guest_addr`` to the key > specified in ``key``, returning the previous value in ``key``. > > +4.145 KVM_PPC_GET_COMPAT_CAPS > +----------------------------- > +:Capability: KVM_CAP_PPC_COMPAT_CAPS > +:Architectures: powerpc > +:Type: vm ioctl > +:Parameters: struct kvm_ppc_compat_caps (out) > +:Returns: 0 on success, negative value on failure > + > +Errors include: > + > + ======== ============================================================ > + EFAULT if ``struct kvm_ppc_compat_caps`` cannot be read from or > + written to userspace > + EINVAL if the ``size`` field is smaller than the current structure > + size, or if the backend implementation fails to retrieve or > + map CPU compatibility capabilities > + ENOTTY if the backend does not implement the ``get_compat_caps`` > + operation (e.g., on non-pseries platforms or when the > + required KVM operations are not available) > + ======== ============================================================ > + > +IBM POWER system server-based processors provide a compatibility mode feature > +where an Nth generation processor can operate in modes consistent with > earlier > +generations such as (N-1) and (N-2). > + > +This ioctl provides userspace with information about the CPU compatibility > modes > +supported by the current host processor for booting the nested KVM guests on > +PowerNV (KVM nested APIv1) and PowerVM (KVM nested APIv2) platforms. > + Please add a detail on how returned 'size' field can be less than what the userspace has sent and how it should be handled. > +:: > + > + struct kvm_ppc_compat_caps { > + __u64 flags; /* Reserved for future use */ > + __u64 size; /* Size of this structure */ > + __u64 compat_capabilities; /* Capabilities supported by the host */ > + }; > + > +The ``compat_capabilities`` bit field describes the processor compatibility > +modes supported by the host. For example, the following bits indicate support > +for specific processor modes. > + > +:: > + > + KVM_PPC_COMPAT_CAP_POWER9 (bit 1): KVM guests can run in Power9 processor > mode > + KVM_PPC_COMPAT_CAP_POWER10 (bit 2): KVM guests can run in Power10 > processor mode > + KVM_PPC_COMPAT_CAP_POWER11 (bit 3): KVM guests can run in Power11 > processor mode > + > .. _kvm_run: > > 5. The kvm_run structure > -- > 2.50.1 (Apple Git-155) > -- Cheers ~ Vaibhav
