[libvirt] [PATCH RFC 6/7] qemu: Spawn qemu under mount namespace

Michal Privoznik mprivozn at redhat.com
Mon Nov 14 17:07:43 UTC 2016


On 14.11.2016 17:57, Daniel P. Berrange wrote:
> On Mon, Nov 14, 2016 at 05:43:30PM +0100, Michal Privoznik wrote:
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>>  src/qemu/qemu_domain.c  | 233 ++++++++++++++++++++++++++++++++++++++++++++++++
>>  src/qemu/qemu_domain.h  |   8 ++
>>  src/qemu/qemu_process.c |  13 +++
>>  3 files changed, 254 insertions(+)
>>
>> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
>> index 8cba755..3a0170c 100644
>> --- a/src/qemu/qemu_domain.c
>> +++ b/src/qemu/qemu_domain.c
>> @@ -55,6 +55,7 @@
>>  
>>  #include <sys/time.h>
>>  #include <fcntl.h>
>> +#include <sys/mount.h>
>>  
>>  #include <libxml/xpathInternals.h>
>>  
>> @@ -86,6 +87,21 @@ VIR_ENUM_IMPL(qemuDomainAsyncJob, QEMU_ASYNC_JOB_LAST,
>>                "start",
>>  );
>>  
>> +#define QEMU_DEV_MAJ_MEMORY  1
>> +#define QEMU_DEV_MAJ_TTY     5
>> +#define QEMU_DEV_MAJ_KVM     10
>> +#define QEMU_DEV_MAJ_PTY     136
>> +
>> +#define QEMU_DEV_MIN_CONSOLE 1
>> +#define QEMU_DEV_MIN_FULL    7
>> +#define QEMU_DEV_MIN_FUSE    229
>> +#define QEMU_DEV_MIN_KVM     232
>> +#define QEMU_DEV_MIN_NULL    3
>> +#define QEMU_DEV_MIN_PTMX    2
>> +#define QEMU_DEV_MIN_RANDOM  8
>> +#define QEMU_DEV_MIN_TTY     0
>> +#define QEMU_DEV_MIN_URANDOM 9
>> +#define QEMU_DEV_MIN_ZERO    5
>>  
>>  struct _qemuDomainLogContext {
>>      int refs;
>> @@ -6658,3 +6674,220 @@ qemuDomainSupportsVideoVga(virDomainVideoDefPtr video,
>>  
>>      return true;
>>  }
>> +
>> +
>> +static int
>> +qemuDomainPopulateDevices(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
>> +                          virDomainObjPtr vm ATTRIBUTE_UNUSED,
>> +                          const char *path)
>> +{
>> +    int ret = -1;
>> +    virFileDevices devs[] = {
>> +        { QEMU_DEV_MAJ_MEMORY, QEMU_DEV_MIN_NULL, 0666, "/null" },
>> +        { QEMU_DEV_MAJ_MEMORY, QEMU_DEV_MIN_ZERO, 0666, "/zero" },
>> +        { QEMU_DEV_MAJ_MEMORY, QEMU_DEV_MIN_FULL, 0666, "/full" },
>> +        { QEMU_DEV_MAJ_KVM,  QEMU_DEV_MIN_KVM, 0660, "/kvm"},
>> +        { QEMU_DEV_MAJ_MEMORY, QEMU_DEV_MIN_RANDOM, 0666, "/random" },
>> +        { QEMU_DEV_MAJ_MEMORY, QEMU_DEV_MIN_URANDOM, 0666, "/urandom" },
>> +        { QEMU_DEV_MAJ_TTY, QEMU_DEV_MIN_TTY, 0666, "/tty" },
> 
> BTW, QEMU shouldn't need /dev/tty

Yeah, I'm probably gonna replace this with cfg->cgroupDeviceACL (or with
 defaultDeviceACL[] from qemu_cgroup.c) anyway because some files are
missing here.

Michal




More information about the libvir-list mailing list