[RFC,1/5] docs: add feature document for Xen hypervisor sysfs-like support
diff mbox series

Message ID 20190911062001.25931-2-jgross@suse.com
State New
Headers show
Series
  • Add hypervisor sysfs-like support
Related show

Commit Message

Juergen Gross Sept. 11, 2019, 6:19 a.m. UTC
On the 2019 Xen developer summit there was agreement that the Xen
hypervisor should gain support for a hierarchical name-value store
similar to the Linux kernel's sysfs.

In the beginning there should only be basic support: entries can be
added from the hypervisor itself only, there is a simple hypercall
interface to read the data.

Add a feature document for setting the base of a discussion regarding
the desired functionality and the entries to add.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/features/hypervisorfs.pandoc | 110 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)
 create mode 100644 docs/features/hypervisorfs.pandoc

Comments

Jan Beulich Sept. 11, 2019, 9:28 a.m. UTC | #1
On 11.09.2019 08:19, Juergen Gross wrote:
> +# Overview
> +
> +The Hypervisor FS is a hierarchical name-value store for reporting
> +information to guests, especially dom0.  It is similar to the Linux
> +kernel's sysfs, but without the functionality to directly alter
> +entries values. Entries and directories are created by the hypervisor,
> +while the toolstack is able to use a hypercall to query the entry
> +values.
> +
> +# User details
> +
> +With:
> +
> +    xenfs --ls <path>
> +
> +the user can list the entries of a specific path of the FS. Using:
> +
> +    xenfs --cat <path>
> +
> +the content of an entry can be retrieved.

Just one initial remark: I think the -- prefix to the commands
should be omitted; they should be used for option-like arguments
only.

Jan
Juergen Gross Sept. 11, 2019, 9:29 a.m. UTC | #2
On 11.09.19 11:28, Jan Beulich wrote:
> On 11.09.2019 08:19, Juergen Gross wrote:
>> +# Overview
>> +
>> +The Hypervisor FS is a hierarchical name-value store for reporting
>> +information to guests, especially dom0.  It is similar to the Linux
>> +kernel's sysfs, but without the functionality to directly alter
>> +entries values. Entries and directories are created by the hypervisor,
>> +while the toolstack is able to use a hypercall to query the entry
>> +values.
>> +
>> +# User details
>> +
>> +With:
>> +
>> +    xenfs --ls <path>
>> +
>> +the user can list the entries of a specific path of the FS. Using:
>> +
>> +    xenfs --cat <path>
>> +
>> +the content of an entry can be retrieved.
> 
> Just one initial remark: I think the -- prefix to the commands
> should be omitted; they should be used for option-like arguments
> only.

Fine with me.


Juergen

Patch
diff mbox series

diff --git a/docs/features/hypervisorfs.pandoc b/docs/features/hypervisorfs.pandoc
new file mode 100644
index 0000000000..e13a3c9b0a
--- /dev/null
+++ b/docs/features/hypervisorfs.pandoc
@@ -0,0 +1,110 @@ 
+% Hypervisor FS
+% Revision 1
+
+\clearpage
+
+# Basics
+---------------- ---------------------
+         Status: e.g. **Supported**
+
+  Architectures: all
+
+     Components: Hypervisor, toolstack
+---------------- ---------------------
+
+# Overview
+
+The Hypervisor FS is a hierarchical name-value store for reporting
+information to guests, especially dom0.  It is similar to the Linux
+kernel's sysfs, but without the functionality to directly alter
+entries values. Entries and directories are created by the hypervisor,
+while the toolstack is able to use a hypercall to query the entry
+values.
+
+# User details
+
+With:
+
+    xenfs --ls <path>
+
+the user can list the entries of a specific path of the FS. Using:
+
+    xenfs --cat <path>
+
+the content of an entry can be retrieved.
+
+The FS structure is:
+
+    /
+        buildinfo/           directory containing build-time data
+            config           contents of .config file used to build Xen
+        cpu-bugs/            x86: directory of cpu bug information
+            l1tf             "Vulnerable" or "Not vulnerable"
+            mds              "Vulnerable" or "Not vulnerable"
+            meltdown         "Vulnerable" or "Not vulnerable"
+            spec-store-bypass "Vulnerable" or "Not vulnerable"
+            spectre-v1       "Vulnerable" or "Not vulnerable"
+            spectre-v2       "Vulnerable" or "Not vulnerable"
+            mitigations/     directory of mitigation settings
+                bti-thunk    "N/A", "RETPOLINE", "LFENCE" or "JMP"
+                spec-ctrl    "No", "IBRS+" or IBRS-"
+                ibpb         "No" or "Yes"
+                l1d-flush    "No" or "Yes"
+                md-clear     "No" or "VERW"
+                l1tf-barrier "No" or "Yes"
+            active-hvm/      directory for mitigations active in hvm doamins
+                msr-spec-ctrl "No" or "Yes"
+                rsb          "No" or "Yes"
+                eager-fpu    "No" or "Yes"
+                md-clear     "No" or "Yes"
+            active-pv/       directory for mitigations active in pv doamins
+                msr-spec-ctrl "No" or "Yes"
+                rsb          "No" or "Yes"
+                eager-fpu    "No" or "Yes"
+                md-clear     "No" or "Yes"
+                xpti         "No" or list of "dom0", "domU", "PCID on"
+                l1tf-shadow  "No" or list of "dom0", "domU"
+        parameters/          directory with hypervisor parameter values
+                             (boot/runtime parameters)
+
+# Technical details
+
+Access to the hypervisor filesystem is done via the stable new hypercall
+__HYPERVISOR_filesystem_op.
+
+* hypercall interface specification
+    * `xen/include/public/filesystem.h`
+* hypervisor internal files
+    * `xen/include/xen/filesystem.h`
+    * `xen/common/filesystem.c`
+* `libxenfs`
+    * `tools/libs/libxenfs/*`
+* `xenfs`
+    * `tools/misc/xenfs.c`
+    
+# Testing
+
+Any new parameters or hardware mitigations should be verified to show up
+correctly in the filesystem.
+
+# Areas for improvement
+
+* More detailed access rights
+* Entries per domain and/or per cpupool
+* Possibility to modify values via filesystem access
+
+# Known issues
+
+* None
+
+# References
+
+* None
+
+# History
+
+------------------------------------------------------------------------
+Date       Revision Version  Notes
+---------- -------- -------- -------------------------------------------
+2019-08-29 1        Xen 4.13 Document written
+---------- -------- -------- -------------------------------------------