Hi Vaibhav, Thanks for reviewing this patch. Please find my response below.
On 2026/06/19 11:44 AM, Vaibhav Jain wrote: > 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. Good point! However, with the suggested change from patch-1 (using strict equality check `user_size != sizeof(host_caps)`, the returned size will always equal what userspace sent, because we reject any size mismatch with -EINVAL. I'll update the documentation to clarify the strict size matching behavior: - Userspace must set size to sizeof(struct kvm_ppc_compat_caps) before the ioctl - The kernel validates this with strict equality (!= check) - Returns -EINVAL if size doesn't match - On success, the returned size will always equal what was sent This should eliminates the forward-compatibility scenario where returned size could differ from sent size. Thank, Amit > > > +:: > > + > > + 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
