From: "wangyanan (Y)" <wangyanan55@huawei.com>
To: Paolo Bonzini <pbonzini@redhat.com>, <kvm@vger.kernel.org>,
<linux-kselftest@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Cc: Andrew Jones <drjones@redhat.com>,
Ben Gardon <bgardon@google.com>,
"Sean Christopherson" <seanjc@google.com>,
Vitaly Kuznetsov <vkuznets@redhat.com>,
Peter Xu <peterx@redhat.com>, Ingo Molnar <mingo@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Jiri Olsa <jolsa@redhat.com>,
"Arnaldo Carvalho de Melo" <acme@redhat.com>,
Arnd Bergmann <arnd@arndb.de>,
Michael Kerrisk <mtk.manpages@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
<wanghaibin.wang@huawei.com>, <yuzenghui@huawei.com>
Subject: Re: [PATCH v6 00/10] KVM: selftests: some improvement and a new test for kvm page table
Date: Tue, 6 Apr 2021 11:05:22 +0800 [thread overview]
Message-ID: <31ab81be-bf14-62f3-d579-9685ccec578a@huawei.com> (raw)
In-Reply-To: <20210330080856.14940-1-wangyanan55@huawei.com>
Kindly ping...
Hi Paolo,
Will this series be picked up soon, or is there any other work for me to do?
Regards,
Yanan
On 2021/3/30 16:08, Yanan Wang wrote:
> Hi,
> This v6 series can mainly include two parts.
> Rebased on kvm queue branch: https://git.kernel.org/pub/scm/virt/kvm/kvm.git/log/?h=queue
>
> In the first part, all the known hugetlb backing src types specified
> with different hugepage sizes are listed, so that we can specify use
> of hugetlb source of the exact granularity that we want, instead of
> the system default ones. And as all the known hugetlb page sizes are
> listed, it's appropriate for all architectures. Besides, a helper that
> can get granularity of different backing src types(anonumous/thp/hugetlb)
> is added, so that we can use the accurate backing src granularity for
> kinds of alignment or guest memory accessing of vcpus.
>
> In the second part, a new test is added:
> This test is added to serve as a performance tester and a bug reproducer
> for kvm page table code (GPA->HPA mappings), it gives guidance for the
> people trying to make some improvement for kvm. And the following explains
> what we can exactly do through this test.
>
> The function guest_code() can cover the conditions where a single vcpu or
> multiple vcpus access guest pages within the same memory region, in three
> VM stages(before dirty logging, during dirty logging, after dirty logging).
> Besides, the backing src memory type(ANONYMOUS/THP/HUGETLB) of the tested
> memory region can be specified by users, which means normal page mappings
> or block mappings can be chosen by users to be created in the test.
>
> If ANONYMOUS memory is specified, kvm will create normal page mappings
> for the tested memory region before dirty logging, and update attributes
> of the page mappings from RO to RW during dirty logging. If THP/HUGETLB
> memory is specified, kvm will create block mappings for the tested memory
> region before dirty logging, and split the blcok mappings into normal page
> mappings during dirty logging, and coalesce the page mappings back into
> block mappings after dirty logging is stopped.
>
> So in summary, as a performance tester, this test can present the
> performance of kvm creating/updating normal page mappings, or the
> performance of kvm creating/splitting/recovering block mappings,
> through execution time.
>
> When we need to coalesce the page mappings back to block mappings after
> dirty logging is stopped, we have to firstly invalidate *all* the TLB
> entries for the page mappings right before installation of the block entry,
> because a TLB conflict abort error could occur if we can't invalidate the
> TLB entries fully. We have hit this TLB conflict twice on aarch64 software
> implementation and fixed it. As this test can imulate process from dirty
> logging enabled to dirty logging stopped of a VM with block mappings,
> so it can also reproduce this TLB conflict abort due to inadequate TLB
> invalidation when coalescing tables.
>
> Links about the TLB conflict abort:
> https://lore.kernel.org/lkml/20201201201034.116760-3-wangyanan55@huawei.com/
>
> ---
>
> Change logs:
>
> v5->v6:
> - Address Andrew Jones's comments for v5 series
> - Add Andrew Jones's R-b tags in some patches
> - Rebased on newest kvm/queue tree
> - v5: https://lore.kernel.org/lkml/20210323135231.24948-1-wangyanan55@huawei.com/
>
> v4->v5:
> - Use synchronization(sem_wait) for time measurement
> - Add a new patch about TEST_ASSERT(patch 4)
> - Address Andrew Jones's comments for v4 series
> - Add Andrew Jones's R-b tags in some patches
> - v4: https://lore.kernel.org/lkml/20210302125751.19080-1-wangyanan55@huawei.com/
>
> v3->v4:
> - Add a helper to get system default hugetlb page size
> - Add tags of Reviewed-by of Ben in the patches
> - v3: https://lore.kernel.org/lkml/20210301065916.11484-1-wangyanan55@huawei.com/
>
> v2->v3:
> - Add tags of Suggested-by, Reviewed-by in the patches
> - Add a generic micro to get hugetlb page sizes
> - Some changes for suggestions about v2 series
> - v2: https://lore.kernel.org/lkml/20210225055940.18748-1-wangyanan55@huawei.com/
>
> v1->v2:
> - Add a patch to sync header files
> - Add helpers to get granularity of different backing src types
> - Some changes for suggestions about v1 series
> - v1: https://lore.kernel.org/lkml/20210208090841.333724-1-wangyanan55@huawei.com/
>
> ---
>
> Yanan Wang (10):
> tools headers: sync headers of asm-generic/hugetlb_encode.h
> mm/hugetlb: Add a macro to get HUGETLB page sizes for mmap
> KVM: selftests: Use flag CLOCK_MONOTONIC_RAW for timing
> KVM: selftests: Print the errno besides error-string in TEST_ASSERT
> KVM: selftests: Make a generic helper to get vm guest mode strings
> KVM: selftests: Add a helper to get system configured THP page size
> KVM: selftests: Add a helper to get system default hugetlb page size
> KVM: selftests: List all hugetlb src types specified with page sizes
> KVM: selftests: Adapt vm_userspace_mem_region_add to new helpers
> KVM: selftests: Add a test for kvm page table code
>
> include/uapi/linux/mman.h | 2 +
> tools/include/asm-generic/hugetlb_encode.h | 3 +
> tools/include/uapi/linux/mman.h | 2 +
> tools/testing/selftests/kvm/.gitignore | 1 +
> tools/testing/selftests/kvm/Makefile | 3 +
> .../selftests/kvm/demand_paging_test.c | 8 +-
> .../selftests/kvm/dirty_log_perf_test.c | 14 +-
> .../testing/selftests/kvm/include/kvm_util.h | 4 +-
> .../testing/selftests/kvm/include/test_util.h | 21 +-
> .../selftests/kvm/kvm_page_table_test.c | 506 ++++++++++++++++++
> tools/testing/selftests/kvm/lib/assert.c | 4 +-
> tools/testing/selftests/kvm/lib/kvm_util.c | 59 +-
> tools/testing/selftests/kvm/lib/test_util.c | 163 +++++-
> tools/testing/selftests/kvm/steal_time.c | 4 +-
> 14 files changed, 733 insertions(+), 61 deletions(-)
> create mode 100644 tools/testing/selftests/kvm/kvm_page_table_test.c
>
next prev parent reply other threads:[~2021-04-06 3:05 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-30 8:08 [PATCH v6 00/10] KVM: selftests: some improvement and a new test for kvm page table Yanan Wang
2021-03-30 8:08 ` [PATCH v6 01/10] tools/headers: sync headers of asm-generic/hugetlb_encode.h Yanan Wang
2021-03-30 8:08 ` [PATCH v6 02/10] mm/hugetlb: Add a macro to get HUGETLB page sizes for mmap Yanan Wang
2021-03-30 8:08 ` [PATCH v6 03/10] KVM: selftests: Use flag CLOCK_MONOTONIC_RAW for timing Yanan Wang
2021-04-17 13:23 ` Paolo Bonzini
2021-04-19 6:40 ` wangyanan (Y)
2021-04-19 8:22 ` David Laight
2021-04-19 9:33 ` wangyanan (Y)
2021-03-30 8:08 ` [PATCH v6 04/10] KVM: selftests: Print the errno besides error-string in TEST_ASSERT Yanan Wang
2021-03-30 8:08 ` [PATCH v6 05/10] KVM: selftests: Make a generic helper to get vm guest mode strings Yanan Wang
2021-03-30 8:08 ` [PATCH v6 06/10] KVM: selftests: Add a helper to get system configured THP page size Yanan Wang
2021-03-30 8:08 ` [PATCH v6 07/10] KVM: selftests: Add a helper to get system default hugetlb " Yanan Wang
2021-03-30 8:08 ` [PATCH v6 08/10] KVM: selftests: List all hugetlb src types specified with page sizes Yanan Wang
2021-03-30 8:08 ` [PATCH v6 09/10] KVM: selftests: Adapt vm_userspace_mem_region_add to new helpers Yanan Wang
2021-03-30 8:08 ` [PATCH v6 10/10] KVM: selftests: Add a test for kvm page table code Yanan Wang
2021-04-06 3:05 ` wangyanan (Y) [this message]
2021-04-17 13:22 ` [PATCH v6 00/10] KVM: selftests: some improvement and a new test for kvm page table Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=31ab81be-bf14-62f3-d579-9685ccec578a@huawei.com \
--to=wangyanan55@huawei.com \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=arnd@arndb.de \
--cc=bgardon@google.com \
--cc=drjones@redhat.com \
--cc=jolsa@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mtk.manpages@gmail.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=wanghaibin.wang@huawei.com \
--cc=yuzenghui@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).