On 17/06/21 09:03, Greg KH wrote:
- 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