On 17/06/21 09:03, Greg KH wrote:
3. Fd-based solution provides the possibility that a telemetry can
    read KVM stats in a less privileged situation.
"possiblity"?  Does this work or not?  Have you tested it?


I think this is essentially s/that/for/.  But more precisely:

3. Compared for example to a ioctl, a separate file descriptor makes it possible for an external program to read statistics, while maintaining privilege separation between VMM and telemetry code.


+       snprintf(&kvm_vm_stats_header.id[0], sizeof(kvm_vm_stats_header.id),
+                       "kvm-%d", task_pid_nr(current));

Why do you write to this static variable for EVERY read?  Shouldn't you
just do it once at open?  How can it change?

Wait, it's a single shared variable, what happens when multiple tasks
open this thing and read from it?  You race between writing to this
variable here and then:

+       return kvm_stats_read(&kvm_vm_stats_header, &kvm_vm_stats_desc[0],
+               &kvm->stat, sizeof(kvm->stat), user_buffer, size, offset);

Accessing it here.

So how is this really working?

It's not - Jing, kvm_vm_stats_header is small enough that you can store a copy in struct kvm.

Paolo

_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to