From 53bf85de47b6cb1f727c71bbcc533d0ed78efc64 Mon Sep 17 00:00:00 2001 From: George Dunlap Date: Fri, 21 Dec 2018 15:41:06 +0000 Subject: [PATCH] dm_depriv: Describe expected usage of device_model_user parameter A number of subsequent patches rely on as-yet undefined behavior for what the `device_model_user` parameter does. Rather than implement it incorrectly (or randomly), or remove the feature, describe an expected usage for the feature. Further patches will make decisions based on this expected usage. Signed-off-by: George Dunlap Acked-by: Ian Jackson --- docs/features/qemu-deprivilege.pandoc | 17 +++++++++++++++++ tools/libxl/libxl_types.idl | 1 - 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/features/qemu-deprivilege.pandoc b/docs/features/qemu-deprivilege.pandoc index f941525189..ce21a60ef7 100644 --- a/docs/features/qemu-deprivilege.pandoc +++ b/docs/features/qemu-deprivilege.pandoc @@ -66,6 +66,23 @@ this, create a user named `xen-qemuuser-shared`; for example: adduser --no-create-home --system xen-qemuuser-shared +A final way to set up a separate process for qemus is to allocate one +UID per VM, and set the UID in the domain config file with the +`device_model_user` argument. For example, suppose you have a VM +named `c6-01`. You might do the following: + + adduser --system --no-create-home --group xen-qemuuser-c6-01 + +And then in your config file, the following line: + + device_model_user="xen-qemuuser-c6-01" + +NOTE: It is important when using `device_model_user` that EACH VM HAVE +A SEPARATE UID, and that none of these UIDs map to root. xl will +throw an error a uid maps to zero, but not if multiple VMs have the +same uid. Multiple VMs with the same device model uid will cause +problems. + ## Domain config changes The core domain config change is to add the following line to the diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index 51cf06a3a2..141c46e42a 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -495,7 +495,6 @@ libxl_domain_build_info = Struct("domain_build_info",[ ("device_model", string), ("device_model_ssidref", uint32), ("device_model_ssid_label", string), - # device_model_user is not ready for use yet ("device_model_user", string), # extra parameters pass directly to qemu, NULL terminated -- 2.39.5