On 2020/12/4 下午3:56, Mike Christie wrote:
+static long vhost_vring_set_cpu(struct vhost_dev *d, struct vhost_virtqueue
*vq,
+ void __user *argp)
+{
+ struct vhost_vring_state s;
+ int ret = 0;
+
+ if (vq->private_data)
+ return -EBUSY;
+
+ if (copy_from_user(&s, argp, sizeof s))
+ return -EFAULT;
+
+ if (s.num == -1) {
+ vq->cpu = s.num;
+ return 0;
+ }
+
+ if (s.num >= nr_cpu_ids)
+ return -EINVAL;
+
+ if (!d->ops || !d->ops->get_workqueue)
+ return -EINVAL;
+
+ if (!d->wq)
+ d->wq = d->ops->get_workqueue();
+ if (!d->wq)
+ return -EINVAL;
+
+ vq->cpu = s.num;
+ return ret;
+}
So one question here. Who is in charge of doing this set_cpu? Note
that sched_setaffinity(2) requires CAP_SYS_NICE to work, so I wonder
whether or not it's legal for unprivileged Qemu to do this.
Thanks
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization