Re: [PATCH v10 2/9] KVM: Introduce per-page memory attributes
From: Sean Christopherson <seanjc@google.com>
Date: 2023-01-17 17:27:23
Also in:
kvm, linux-arch, linux-doc, linux-fsdevel, linux-mm, lkml, qemu-devel
On Tue, Jan 17, 2023, Chao Peng wrote:
On Tue, Jan 17, 2023 at 11:21:10AM +0800, Binbin Wu wrote:quoted
On 12/2/2022 2:13 PM, Chao Peng wrote:quoted
In confidential computing usages, whether a page is private or shared is necessary information for KVM to perform operations like page fault handling, page zapping etc. There are other potential use cases for per-page memory attributes, e.g. to make memory read-only (or no-exec, or exec-only, etc.) without having to modify memslots. Introduce two ioctls (advertised by KVM_CAP_MEMORY_ATTRIBUTES) to allow userspace to operate on the per-page memory attributes. - KVM_SET_MEMORY_ATTRIBUTES to set the per-page memory attributes to a guest memory range. - KVM_GET_SUPPORTED_MEMORY_ATTRIBUTES to return the KVM supported memory attributes. KVM internally uses xarray to store the per-page memory attributes. Suggested-by: Sean Christopherson <seanjc@google.com> Signed-off-by: Chao Peng <redacted> Link: https://lore.kernel.org/all/Y2WB48kD0J4VGynX@google.com/ (local) --- Documentation/virt/kvm/api.rst | 63 ++++++++++++++++++++++++++++ arch/x86/kvm/Kconfig | 1 + include/linux/kvm_host.h | 3 ++ include/uapi/linux/kvm.h | 17 ++++++++Should the changes introduced in this file also need to be added in tools/include/uapi/linux/kvm.h ?Yes I think.
I'm not sure how Paolo or others feel, but my preference is to never update KVM's uapi headers in tools/ in KVM's tree. Nothing KVM-related in tools/ actually relies on the headers being copied into tools/, e.g. KVM selftests pulls KVM's headers from the .../usr/include/ directory that's populated by `make headers_install`. Perf's tooling is what actually "needs" the headers to be copied into tools/, so my preference is to let the tools/perf maintainers deal with the headache of keeping everything up-to-date.
But I'm hesitate to include in this patch or not. I see many commits sync kernel kvm.h to tools's copy. Looks that is done periodically and with a 'pull' model.