On Mon, Oct 14, 2024 at 04:46:14PM +0200, David Hildenbrand wrote: > Let's make it a generic KVM hypercall, allowing other subfunctions to > be more independent of virtio. > > This is a preparation for documenting a new hypercall. > > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> > --- > Documentation/virt/kvm/s390/s390-diag.rst | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) ... > -DIAGNOSE function code 'X'500' - KVM virtio functions > ------------------------------------------------------ > +DIAGNOSE function code 'X'500' - KVM functions > +---------------------------------------------- > > -If the function code specifies 0x500, various virtio-related functions > -are performed. > +If the function code specifies 0x500, various KVM-specific functions > +are performed, including virtio functions. > > -General register 1 contains the virtio subfunction code. Supported > -virtio subfunctions depend on KVM's userspace. Generally, userspace > -provides either s390-virtio (subcodes 0-2) or virtio-ccw (subcode 3). > +General register 1 contains the subfunction code. Supported subfunctions > +depend on KVM's userspace. Regarding virtio subfunctions, generally > +userspace provides either s390-virtio (subcodes 0-2) or virtio-ccw > +(subcode 3). Reading this file leaves a number of questions open: how does one know which subcodes are supported, and what happens if an unsupported subcode is used? I'm afraid there is no indication available and the only way to figure out is to try and if it is unsupported the result is a specification exception. Is that correct? If so, it would be nice to document that too; but that is not necessarily your problem. I guess we won't see too many new diag 500 subcodes, or would it make sense to implement some query subcode?