* qemu (so that it shares the same view of the system). */
virCommandSetPreExecHook(cmd, qemuProcessStartPRDaemonHook, vm);
+ if (cfg->schedCore == QEMU_SCHED_CORE_FULL) {
+ pid_t cookie_pid = vm->pid;
+
+ if (cookie_pid <= 0)
+ cookie_pid = priv->schedCoreChildPID;
+
+ virCommandSetRunAmong(cmd, cookie_pid);
+ }
+
if (virCommandRun(cmd, NULL) < 0)
goto cleanup;
int *exitstatus,
int *cmdret)
{
+ g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
+ qemuDomainObjPrivate *priv = vm->privateData;
+
if (virSecurityManagerSetChildProcessLabel(driver->securityManager,
vm->def, cmd) < 0)
return -1;
virCommandSetUID(cmd, uid);
if (gid != (gid_t) -1)
virCommandSetGID(cmd, gid);
+ if (cfg->schedCore == QEMU_SCHED_CORE_FULL) {
+ pid_t pid = vm->pid;
+
+ if (pid <= 0)
+ pid = priv->schedCoreChildPID;
+
+ virCommandSetRunAmong(cmd, pid);
+ }
if (virSecurityManagerPreFork(driver->securityManager) < 0)
return -1;
virDomainFSDef *fs)
{
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
+ qemuDomainObjPrivate *priv = vm->privateData;
g_autoptr(virCommand) cmd = NULL;
g_autofree char *socket_path = NULL;
g_autofree char *pidfile = NULL;
virCommandNonblockingFDs(cmd);
virCommandDaemonize(cmd);
+ if (cfg->schedCore == QEMU_SCHED_CORE_FULL) {
+ pid_t cookie_pid = vm->pid;
+
+ if (cookie_pid <= 0)
+ cookie_pid = priv->schedCoreChildPID;
+
+ virCommandSetRunAmong(cmd, cookie_pid);
+ }
+
+
if (qemuExtDeviceLogCommand(driver, vm, cmd, "virtiofsd") < 0)
goto error;