On 14/06/21 23:21, Jing Zhang wrote:
+ /* Copy kvm stats values */
+ copylen = header->header.data_offset + size_stats - pos;
+ copylen = min(copylen, remain);
+ if (copylen > 0) {
+ src = stats + pos - header->header.data_offset;
+ if (copy_to_user(dest, src, copylen))
+ return -EFAULT;
+ remain -= copylen;
+ pos += copylen;
+ dest += copylen;
+ }
Hi Jing,
this code is causing usercopy warnings because the statistics are not
part of the vcpu slab's usercopy region. You need to move struct
kvm_vcpu_stat next to struct kvm_vcpu_arch, and adjust the call to
kmem_cache_create_usercopy in kvm_init.
Can you post a new version of the series, and while you are at it
explain the rationale for binary stats in the commit message for this
patch? This should include:
- the problem statement (e.g. frequency of the accesses)
- what are the benefits compared to debugfs
- why the schema is included in the file descriptor as well
You can probably find a lot or all of the information in my emails from
the last couple days, but you might also have other breadcrumbs from
Google's internal implementation of binary stats.
Thanks,
Paolo