Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp3148012ybf; Tue, 3 Mar 2020 00:07:54 -0800 (PST) X-Google-Smtp-Source: ADFU+vtR4dea3ZRTzpJoeT7sa5LF26eW4RW126ohxuvGUhjW2hDmBK+4r/s8+jJ1+pr7ScEyjbO+ X-Received: by 2002:a54:4816:: with SMTP id j22mr1708254oij.162.1583222874165; Tue, 03 Mar 2020 00:07:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583222874; cv=none; d=google.com; s=arc-20160816; b=Lrj9pC5oCUwvSiE0LfpQiOYD6P4ywbdne3TssqucESnyQGIndHuhJqD88Xo4pOOnhA 7qh7FyOJ6yHAvPIaCVq4RzoP5lw1RW+NfBPuNdDzeKA+mK+5SqkiKffXxEWxEo4ttpO8 KzJz6OkBK7mFzNJ66tj/12/fjqvf29zq8nPJyQEVUYFORy7+Yp8KeoGZNhQUHDFSApfx vYGxpu4r3OiaOf6SGOnPBqAHcWZsURCPYdjgAbm6wrCJ2HOLrwbjw2VtY4qsmv+trYZo XhXCh/042makLHsJ9lhi9/VDUnlwlLuuvH7UO5z+NWsrjudZqRmhapbtqYap1OKIobov 11QA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=HgTLsCiLv3/9SWknRACMJNAtLEIKpjmxPUiGLDP+z3k=; b=TEjlBADQ9JUhiBt3yKC0qfAc+secv9MlNwH4G0ZJCz8cU6rgRdanJaPhcBceoieqJ4 1VgSWzOjhNOhwLWhVFJ0BCLfDpYg/84IFyOkPOlm5SQ2xtZwvWiqQ925bhmJ5pCQR4Bg Zf7Pxnpl2lUikxbLaZpTsQj5Y7vKB6YSWY3iWQaKJaxHZ5mXY86wBKh61ciFcJgGL31z LoR6GyoecSDAiHoORtVl0dIpiMyCe20z8o0u+tzaLm/P6qjjPUH+eWsB88DAzokeUSeo iF6NmYMa7yLDymUlKobGreWL6AEP69vUEjN4CJeUoAdiuyyrN4R58bsyHS15BxU+ix4z t/LQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l25si8145005otq.76.2020.03.03.00.07.41; Tue, 03 Mar 2020 00:07:54 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727761AbgCCIHX (ORCPT + 99 others); Tue, 3 Mar 2020 03:07:23 -0500 Received: from szxga06-in.huawei.com ([45.249.212.32]:44314 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727594AbgCCIHX (ORCPT ); Tue, 3 Mar 2020 03:07:23 -0500 Received: from DGGEMS410-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 50C3727143BE5F251882; Tue, 3 Mar 2020 16:07:19 +0800 (CST) Received: from localhost (10.173.228.206) by DGGEMS410-HUB.china.huawei.com (10.3.19.210) with Microsoft SMTP Server id 14.3.439.0; Tue, 3 Mar 2020 16:07:13 +0800 From: Jay Zhou To: CC: , , , , , , , , Subject: [PATCH] kvm: selftests: Support dirty log initial-all-set test Date: Tue, 3 Mar 2020 16:07:10 +0800 Message-ID: <20200303080710.1672-1-jianjay.zhou@huawei.com> X-Mailer: git-send-email 2.14.1.windows.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.173.228.206] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since the new capability KVM_DIRTY_LOG_INITIALLY_SET of KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 has been introduced, tweak the clear_dirty_log_test to test it. Signed-off-by: Jay Zhou --- tools/testing/selftests/kvm/clear_dirty_log_test.c | 4 ++++ tools/testing/selftests/kvm/dirty_log_test.c | 20 +++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/kvm/clear_dirty_log_test.c b/tools/testing/selftests/kvm/clear_dirty_log_test.c index 7493369..11672ec 100644 --- a/tools/testing/selftests/kvm/clear_dirty_log_test.c +++ b/tools/testing/selftests/kvm/clear_dirty_log_test.c @@ -1,2 +1,6 @@ #define USE_CLEAR_DIRTY_LOG +#define KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE (1 << 0) +#define KVM_DIRTY_LOG_INITIALLY_SET (1 << 1) +#define KVM_DIRTY_LOG_MANUAL_CAPS (KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE | \ + KVM_DIRTY_LOG_INITIALLY_SET) #include "dirty_log_test.c" diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c index 5614222..7e21addc4 100644 --- a/tools/testing/selftests/kvm/dirty_log_test.c +++ b/tools/testing/selftests/kvm/dirty_log_test.c @@ -264,6 +264,10 @@ static struct kvm_vm *create_vm(enum vm_guest_mode mode, uint32_t vcpuid, #define DIRTY_MEM_BITS 30 /* 1G */ #define PAGE_SHIFT_4K 12 +#ifdef USE_CLEAR_DIRTY_LOG +static u64 dirty_log_manual_caps; +#endif + static void run_test(enum vm_guest_mode mode, unsigned long iterations, unsigned long interval, uint64_t phys_offset) { @@ -320,7 +324,7 @@ static void run_test(enum vm_guest_mode mode, unsigned long iterations, struct kvm_enable_cap cap = {}; cap.cap = KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2; - cap.args[0] = 1; + cap.args[0] = dirty_log_manual_caps; vm_enable_cap(vm, &cap); #endif @@ -438,8 +442,18 @@ int main(int argc, char *argv[]) #endif #ifdef USE_CLEAR_DIRTY_LOG - if (!kvm_check_cap(KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2)) { - fprintf(stderr, "KVM_CLEAR_DIRTY_LOG not available, skipping tests\n"); + dirty_log_manual_caps = + kvm_check_cap(KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2); + if (!dirty_log_manual_caps) { + fprintf(stderr, "KVM_CLEAR_DIRTY_LOG not available, " + "skipping tests\n"); + exit(KSFT_SKIP); + } + if (dirty_log_manual_caps != KVM_DIRTY_LOG_MANUAL_CAPS && + dirty_log_manual_caps != KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE) { + fprintf(stderr, "KVM_CLEAR_DIRTY_LOG not valid caps " + "%"PRIu64", skipping tests\n", + dirty_log_manual_caps); exit(KSFT_SKIP); } #endif -- 1.8.3.1