Message ID | 20200922204910.7265-1-dbrazdil@google.com (mailing list archive) |
---|---|
Headers | show |
Series | Independent per-CPU data section for nVHE | expand |
On Tue, 22 Sep 2020, David Brazdil wrote: > Introduce '.hyp.data..percpu' as part of ongoing effort to make nVHE > hyp code self-contained and independent of the rest of the kernel. The percpu subsystems point is to enable the use of special hardware instructions that can perform address calculation and a memory operation in one interruptible instruction. This is in particular useful to avoid higher overhead for memory management related counters because preempt disable/enable etc can be avoided. ARM cannot do that and thus has a LC/SC loop. This is a patchset for ARM64 so its not clear to me what kind of advantage there would be against a simple implementation that does a regular fetch from a base address with an offset. > Main benefits: > * independent nVHE per-CPU data section that can be unmapped from host, > * more robust linking of nVHE hyp code, > * no need for hyp-specific macros to access per-CPU variables. Maybe simply don't use percpu variables for your arm code? Those pointers to data will be much more indepedent of the rest of the kernel and allow a much higher degree of being self-contained.
On Tue, 22 Sep 2020 21:49:00 +0100, David Brazdil wrote: > Introduce '.hyp.data..percpu' as part of ongoing effort to make nVHE > hyp code self-contained and independent of the rest of the kernel. > > Main benefits: > * independent nVHE per-CPU data section that can be unmapped from host, > * more robust linking of nVHE hyp code, > * no need for hyp-specific macros to access per-CPU variables. > > [...] Applied to next, thanks! [01/10] kvm: arm64: Partially link nVHE hyp code, simplify HYPCOPY commit: ab25464bdabd45f283cc1194e332040f89071106 [02/10] kvm: arm64: Move nVHE hyp namespace macros to hyp_image.h commit: ce492a16ffb8814d9651c3fdafc363bfa1b01189 [03/10] kvm: arm64: Only define __kvm_ex_table for CONFIG_KVM commit: 3471ee06e33e413d7fa73c1aa3092e6e794b9e05 [04/10] kvm: arm64: Remove __hyp_this_cpu_read commit: 717cf94adb54095d14a6674baea73123188f2901 [05/10] kvm: arm64: Remove hyp_adr/ldr_this_cpu commit: ea391027d35546d9155f1350123b5af8bddec706 [06/10] kvm: arm64: Add helpers for accessing nVHE hyp per-cpu vars commit: 572494995bc3d282336bfd8162741929402910b9 [07/10] kvm: arm64: Duplicate arm64_ssbd_callback_required for nVHE hyp commit: df4c8214a18d202fa0ec221a001f640e020f7e44 [08/10] kvm: arm64: Create separate instances of kvm_host_data for VHE/nVHE commit: 2a1198c9b436402582f7beed57028044b819329c [09/10] kvm: arm64: Set up hyp percpu data for nVHE commit: 30c953911c4370bfb622ee1c2fcc7e78c84df800 [10/10] kvm: arm64: Remove unnecessary hyp mappings commit: a3bb9c3a00551726590137e3974495ce6cf6b758 Cheers, M.