Hi Boqun Feng, sorry for the late reply. On 16/12/2019 00:19, Boqun Feng wrote: > Hi, > > This is the RFC patchset for vDSO support in ARM64 Hyper-V guest. To > test it, Michael's ARM64 support patchset: > > https://lore.kernel.org/linux-arm-kernel/1570129355-16005-1-git-send-email-mikelley@xxxxxxxxxxxxx/ > > is needed. > > Similar as x86, Hyper-V on ARM64 use a TSC page for guests to read > the virtualized hardware timer, this TSC page is read-only for the > guests, so could be used for vDSO data page. And the vDSO (userspace) > code could use the same code for timer reading as kernel, since > they read the same TSC page. > I had a look to your patches and overall, I could not understand why we can't use the arch_timer to do the same things you are doing with the one you introduced in this series. What confuses me is that KVM works just fine with the arch_timer which was designed with virtualization in mind. Why do we need another one? Could you please explain? > This patchset therefore extends ARM64's __vsdo_init() to allow multiple > data pages and introduces the vclock_mode concept similar to x86 to > allow different platforms (bare-metal, Hyper-V, etc.) to switch to > different __arch_get_hw_counter() implementations. The rest of this > patchset does the necessary setup for Hyper-V guests: mapping tsc page, > enabling userspace to read cntvct, etc. to enable vDSO. > > This patchset consists of 6 patches: > > patch #1 allows hv_get_raw_timer() definition to be overridden for > userspace and kernel to share the same hv_read_tsc_page() definition. > > patch #2 extends ARM64 to support multiple vDSO data pages. > > patch #3 introduces vclock_mode similiar to x86 to allow different > __arch_get_hw_counter() implementations for different clocksources. > > patch #4 maps Hyper-V TSC page into vDSO data page. > > patch #5 allows userspace to read cntvct, so that userspace can > efficiently read the clocksource. > > patch #6 enables the vDSO for ARM64 Hyper-V guest. > > The whole patchset is based on v5.5-rc1 plus Michael's ARM64 support > patchset, and I've done a few tests with: > > https://github.com/nlynch-mentor/vdsotest > > Comments and suggestions are welcome! > > Regards, > Boqun > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- Regards, Vincenzo
Attachment:
pEpkey.asc
Description: application/pgp-keys