Klemens Nanni writes:
> On Thu, Apr 01, 2021 at 06:49:07AM -0400, Dave Voutila wrote: >> This diff documents the ioctl(2) values supported by vmm(4). Besides >> vmd(8) there's at least one application I've seen (Solo5) directly using >> vmm(4). >> >> For now I've tried to have short summary-level details, enough to >> provide a general idea of purpose. The data structures aren't included >> in the doc, but the mention of <machine/vmmvar.h> at least points to >> where they're defined for now. > That seems fair. > >> Feedback on my mdoc macro usage or verbiage? OK? > See inline, but you can also use `mandoc -T lint ./vmm.4' and any > warnings and errors. > Very cool, did not know that. I've updated the diff using your feedback. See below. >> Index: share/man/man4/man4.amd64/vmm.4 >> =================================================================== >> RCS file: /cvs/src/share/man/man4/man4.amd64/vmm.4,v >> retrieving revision 1.5 >> diff -u -p -r1.5 vmm.4 >> --- share/man/man4/man4.amd64/vmm.4 6 Dec 2015 19:06:17 -0000 1.5 >> +++ share/man/man4/man4.amd64/vmm.4 1 Apr 2021 10:36:50 -0000 >> @@ -22,6 +22,8 @@ >> .Nd virtual machine monitor >> .Sh SYNOPSIS >> .Cd "vmm0 at mainbus0" >> +.Pp >> +.In machine/vmmvar.h >> .Sh DESCRIPTION >> The >> .Nm >> @@ -67,6 +69,45 @@ driver requires at least one CPU with ha >> capabilities and nested or extended paging capabilities to be >> present on the host. >> For more information, consult the CPU vendor's documentation. >> +.Pp >> +The following >> +.Xr ioctl 2 >> +commands are provided for managing >> +.Nm >> +guests: >> +.Pp >> +.Bl -tag -width Ds -offset indent >> +.It Dv VMM_IOC_CREATE Fa "struct vm_create_params *" >> +Create a VM, initializing >> +.Xr vmm 4 > That's the page itself, just use .Nm here like you did in the last > sentence. > >> +if not yet started. (Does not start the VCPU.) >> +.It Dv VMM_IOC_RUN Fa "struct vm_run_params *" >> +Run a VCPU for a defined VM. Returns on VM-exit, the VCPU stopped, or > I'd use imperative mood, i.e. omit "s"^ and add ^ "when", I guess. > Good idea. It reads better like that. >> +an error occurred > New sentences go to new lines. Got it. > >> +.It Dv VMM_IOC_INFO Fa "struct vm_info_params *" >> +Get information about the VMs currently hosted by >> +.Xr vmm 4 > This and all following sentences lack punctuation; with .Nm as per > above that'd be ".Nm ." (mind the space between macro and dot if the > line ends with a macro). > >> +.It Dv VMM_IOC_TERM Fa "struct vm_terminate_params *" >> +Terminate a given VM >> +.It Dv VMM_IOC_RESETCPU Fa "struct vm_resetcpu_params *" >> +Reset a VCPU to power-on-init state using the provided register state >> +.It Dv VMM_IOC_INTR Fa "struct vm_intr_params *" >> +Signal a pending interrupt for a VCPU >> +.It Dv VMM_IOC_READREGS Fa "struct vm_rwregs_params *" >> +Read registers of a VCPU >> +.It Dv VMM_IOC_WRITEREGS Fa "struct vm_rwregs_params *" >> +Write registers values of a VCPU >> +.It Dv VMM_IOC_READVMPARAMS Fa "struct vm_revmparams_params *" >> +Read paravirtualized hardware parameters (such as >> +.Xr pvclock 4 >> +version) for a VM >> +.It Dv VMM_IOC_WRITEVMPARAMS Fa "struct vm_rwvmparams_params *" >> +Write paravirtualized hardware parameters (such as >> +.Xr pvclock 4 >> +guest physical addresss) for a VM >> +.It Dv VMM_IOC_MPROTECT_EPT Fa "struct vm_mprotect_ept_params *" >> +Set access protections on guest page table entries >> +(only supported on hosts providing EPT or RVI) > Missing .El here. Done. > >> .Sh SEE ALSO >> .Xr cpu 4 , >> .Xr intro 4 , >> OK? -dv Index: share/man/man4/man4.amd64/vmm.4 =================================================================== RCS file: /cvs/src/share/man/man4/man4.amd64/vmm.4,v retrieving revision 1.5 diff -u -p -r1.5 vmm.4 --- share/man/man4/man4.amd64/vmm.4 6 Dec 2015 19:06:17 -0000 1.5 +++ share/man/man4/man4.amd64/vmm.4 2 Apr 2021 00:28:26 -0000 @@ -22,6 +22,8 @@ .Nd virtual machine monitor .Sh SYNOPSIS .Cd "vmm0 at mainbus0" +.Pp +.In machine/vmmvar.h .Sh DESCRIPTION The .Nm @@ -67,6 +69,45 @@ driver requires at least one CPU with ha capabilities and nested or extended paging capabilities to be present on the host. For more information, consult the CPU vendor's documentation. +.Pp +The following +.Xr ioctl 2 +commands are provided for managing +.Nm +guests: +.Bl -tag -width Ds -offset indent +.It Dv VMM_IOC_CREATE Fa "struct vm_create_params *" +Create a VM, initializing +.Nm +if not yet started. (Does not start the VCPU.) +.It Dv VMM_IOC_RUN Fa "struct vm_run_params *" +Run a VCPU for a defined VM. +Return on VM-exit, when the VCPU stopped, or an error occurred +.It Dv VMM_IOC_INFO Fa "struct vm_info_params *" +Get information about the VMs currently hosted by +.Nm . +.It Dv VMM_IOC_TERM Fa "struct vm_terminate_params *" +Terminate a given VM. +.It Dv VMM_IOC_RESETCPU Fa "struct vm_resetcpu_params *" +Reset a VCPU to power-on-init state using the provided register state. +.It Dv VMM_IOC_INTR Fa "struct vm_intr_params *" +Signal a pending interrupt for a VCPU. +.It Dv VMM_IOC_READREGS Fa "struct vm_rwregs_params *" +Read registers of a VCPU. +.It Dv VMM_IOC_WRITEREGS Fa "struct vm_rwregs_params *" +Write registers values of a VCPU. +.It Dv VMM_IOC_READVMPARAMS Fa "struct vm_revmparams_params *" +Read paravirtualized hardware parameters (such as +.Xr pvclock 4 +version) for a VM. +.It Dv VMM_IOC_WRITEVMPARAMS Fa "struct vm_rwvmparams_params *" +Write paravirtualized hardware parameters (such as +.Xr pvclock 4 +guest physical addresss) for a VM. +.It Dv VMM_IOC_MPROTECT_EPT Fa "struct vm_mprotect_ept_params *" +Set access protections on guest page table entries +(only supported on hosts providing EPT or RVI) +.El .Sh SEE ALSO .Xr cpu 4 , .Xr intro 4 ,