From nobody Fri Dec 19 19:16:38 2025 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08531280A2B for ; Fri, 16 May 2025 21:59:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747432761; cv=none; b=LT3QJ3vJv1W5Js+R3ewd4A/rx2g1eC7qGHwiN30Qi1qIk/GrzM9Qyjr7SSyvVgMWa8QhO2GZvAiY6HTgXn09NGh6mQanodZHdeFAemEZxVV+g3oeHfLxVxiz7xt69POJXvKmEFoAuapo0+difjZP/quPSbM6vC/vxj9+3TXCCcY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747432761; c=relaxed/simple; bh=g/go1qPaDWwik2ajMGyD/ChS9WlSP8Y7lcyUF+0Lue0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Aa9gXpVg3jECbbLMnDI4Jm56+58HkwhPtKpaMtHFrbGPOBBCbQ/sLW3ZjtDj4W1JX7wX4vamFRwKpEk/K6K4wDS/gNE4hmvhPBeAbs5FwR2PN/yv/8vKsbI44X/0FJPlxoMvr/AW+kgaLKopIHabzvsVIsZPgnsXaY3GKe4SUdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Pzm6RbEU; arc=none smtp.client-ip=209.85.215.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Pzm6RbEU" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-b26e33ae9d5so2393525a12.1 for ; Fri, 16 May 2025 14:59:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747432758; x=1748037558; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=l3nNlVUvO2lcUj8RcxSSosFUJbxSSdk1JxW52pofM28=; b=Pzm6RbEUF5kup/TBRdxt8XmPIezpvmicI/K2OqPonTDnu5bvsMrgLkU+RVgc4pvKnE 5BRKmDO9OQZkDzakLqc7TVy0s6Q5CbZNqt8+nQRDOq7WkSrga88T7LrnEq48WBOJmL5D KE8vFtQRklnZRzlSuFMZbq392NfQOnLURX7TwKeegIeFDrgF5ucXuzyln0MJdP901XTr x7z2YodYGSMAVF2F1tRjfcjbqmJ1RSPwkaNvrtlmiqiaR7GM6jiAXpAy7ccoGZoAzW9Z JNNgGC/GMQVPqm3pKo62AMnkj7utOZQUiCTNnXcGnRg18TFvciUJH+AMFdpT6h+CVuzk pOew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747432758; x=1748037558; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=l3nNlVUvO2lcUj8RcxSSosFUJbxSSdk1JxW52pofM28=; b=TwXgEF2PNJuBl40u13NZEJxhy7PZKEJt0mzATWgrUO7xlBuhFuzE7XwZYIl085BJQx 0TXCMHVk05ag+oBCLQQTALGfz9o8dFsT+16tPrUqVOoBuY2x4wRIa2LwfjMdys9W7cPx qsCBBsQXLHv8sC15IAuaYG1d9ztWmLqEH93G5SghqOOg7IWVRcZGOuyS7DxSm8MC6yMc cFVoE0idTrut7TyfA5UVRnIzQAyVwpedH9l+bx1wr6ofUSl3y6OI/zOgUjssCkZcZJDq mwGdmU6PO5ZPkstzQKF5dn/TXcR7vT0VOLz++h/CEpZsWoXkYo34J9lt23el5h2Seebv 6ueA== X-Forwarded-Encrypted: i=1; AJvYcCXLzPCKwZRSYKzkHuECcLPmgu254oOlFOL08ABcHyezPMHBlzqiNnfdPA7NcNoLp4Nd+9Hx9w4qamoEpOo=@vger.kernel.org X-Gm-Message-State: AOJu0YydneZwrZ36PnNYOe+TkQVEgkK4FmgvD4oTJr/y+2ZL+/qCpMvo 6gWT+9eb2qq8PqLo1C/UR5Evt9E8iQS+M2VusQDkqjfr4vBQdDOPQvcIX39EBQpa6fwbqsgKPBu mxXMUvg== X-Google-Smtp-Source: AGHT+IHUOTee0P07hQeTysg+Uvi4l85B+YRvOoTaJtEIwFy4sXiKwr45OYiwajuSHQOORPy4lBm1AX3WxDI= X-Received: from pjbpd3.prod.google.com ([2002:a17:90b:1dc3:b0:2f9:e05f:187f]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2d47:b0:2ee:9e06:7db0 with SMTP id 98e67ed59e1d1-30e830fbe8fmr5513546a91.11.1747432758258; Fri, 16 May 2025 14:59:18 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 16 May 2025 14:59:06 -0700 In-Reply-To: <20250516215909.2551628-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250516215909.2551628-1-seanjc@google.com> X-Mailer: git-send-email 2.49.0.1112.g889b7c5bd8-goog Message-ID: <20250516215909.2551628-2-seanjc@google.com> Subject: [PATCH 1/4] KVM: selftests: Verify KVM is loaded when getting a KVM module param From: Sean Christopherson To: Paolo Bonzini , Sean Christopherson Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, James Houghton Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Probe /dev/kvm when getting a KVM module param so that attempting to load a module param super early in a selftest generates a SKIP message about KVM not being loaded/enabled, versus some random parameter not existing. E.g. KVM x86's unconditional retrieval of force_emulation_prefix during kvm_selftest_arch_init() generates a rather confusing error message that takes far too much triage to understand. Signed-off-by: Sean Christopherson --- tools/testing/selftests/kvm/include/x86/processor.h | 6 +++++- tools/testing/selftests/kvm/lib/kvm_util.c | 3 +++ tools/testing/selftests/kvm/lib/x86/processor.c | 10 ---------- .../kvm/x86/vmx_exception_with_invalid_guest_state.c | 2 +- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/tools/testing/selftests/kvm/include/x86/processor.h b/tools/te= sting/selftests/kvm/include/x86/processor.h index b11b5a53ebd5..2efb05c2f2fb 100644 --- a/tools/testing/selftests/kvm/include/x86/processor.h +++ b/tools/testing/selftests/kvm/include/x86/processor.h @@ -1150,7 +1150,6 @@ do { \ =20 void kvm_get_cpu_address_width(unsigned int *pa_bits, unsigned int *va_bit= s); void kvm_init_vm_address_properties(struct kvm_vm *vm); -bool vm_is_unrestricted_guest(struct kvm_vm *vm); =20 struct ex_regs { uint64_t rax, rcx, rdx, rbx; @@ -1325,6 +1324,11 @@ static inline bool kvm_is_forced_emulation_enabled(v= oid) return !!get_kvm_param_integer("force_emulation_prefix"); } =20 +static inline bool kvm_is_unrestricted_guest_enabled(void) +{ + return get_kvm_intel_param_bool("unrestricted_guest"); +} + uint64_t *__vm_get_page_table_entry(struct kvm_vm *vm, uint64_t vaddr, int *level); uint64_t *vm_get_page_table_entry(struct kvm_vm *vm, uint64_t vaddr); diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/sel= ftests/kvm/lib/kvm_util.c index 50edc59cc0ca..b21ba80e3015 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -64,6 +64,9 @@ static ssize_t get_module_param(const char *module_name, = const char *param, ssize_t bytes_read; int fd, r; =20 + /* Verify KVM is loaded, to provide a more helpful SKIP message. */ + close(open_kvm_dev_path_or_exit()); + r =3D snprintf(path, path_size, "/sys/module/%s/parameters/%s", module_name, param); TEST_ASSERT(r < path_size, diff --git a/tools/testing/selftests/kvm/lib/x86/processor.c b/tools/testin= g/selftests/kvm/lib/x86/processor.c index a92dc1dad085..d4c19ac885a9 100644 --- a/tools/testing/selftests/kvm/lib/x86/processor.c +++ b/tools/testing/selftests/kvm/lib/x86/processor.c @@ -1264,16 +1264,6 @@ unsigned long vm_compute_max_gfn(struct kvm_vm *vm) return min(max_gfn, ht_gfn - 1); } =20 -/* Returns true if kvm_intel was loaded with unrestricted_guest=3D1. */ -bool vm_is_unrestricted_guest(struct kvm_vm *vm) -{ - /* Ensure that a KVM vendor-specific module is loaded. */ - if (vm =3D=3D NULL) - close(open_kvm_dev_path_or_exit()); - - return get_kvm_intel_param_bool("unrestricted_guest"); -} - void kvm_selftest_arch_init(void) { host_cpu_is_intel =3D this_cpu_is_intel(); diff --git a/tools/testing/selftests/kvm/x86/vmx_exception_with_invalid_gue= st_state.c b/tools/testing/selftests/kvm/x86/vmx_exception_with_invalid_gue= st_state.c index 3fd6eceab46f..2cae86d9d5e2 100644 --- a/tools/testing/selftests/kvm/x86/vmx_exception_with_invalid_guest_stat= e.c +++ b/tools/testing/selftests/kvm/x86/vmx_exception_with_invalid_guest_stat= e.c @@ -110,7 +110,7 @@ int main(int argc, char *argv[]) struct kvm_vm *vm; =20 TEST_REQUIRE(host_cpu_is_intel); - TEST_REQUIRE(!vm_is_unrestricted_guest(NULL)); + TEST_REQUIRE(!kvm_is_unrestricted_guest_enabled()); =20 vm =3D vm_create_with_one_vcpu(&vcpu, guest_code); get_set_sigalrm_vcpu(vcpu); --=20 2.49.0.1112.g889b7c5bd8-goog From nobody Fri Dec 19 19:16:38 2025 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B79A280A5C for ; Fri, 16 May 2025 21:59:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747432764; cv=none; b=iq96pZ/UwIwtD70DBl+EMkCL+7HN3gmwczHV/MFW81NP27ZGot2IGX5hsyTnWwHgWi4Cuak0Ss7ALbsZC4ex8yay8DVw8YmiuiRupUt9PPBsOVavriiA+7fkYWt1T6yy3DNDEEUjz+u1uqWhJ5Tseg8FPhMBTzMEK9/X5mWftQE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747432764; c=relaxed/simple; bh=MikFEr4HqqS+pVF8rj06QgpGwG6o3rHfGWhDct6+D2k=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=b7OXiVtetWQWhmqLyf5aWSjmF3oNax9c6IJvCLeoaP77lL2vZ8IBGDFqOfklVnlJXHNURQ6H+aIVI76lfbjjjPn3/DSFkjIWP5GdzMob/bMdogV5OLISdhbwyRZ03vga+Ud+PlworHB9jPp5L4eVKKsUJ1M3fUA5Dv/Q/f3x7Mk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=nEh3d5px; arc=none smtp.client-ip=209.85.216.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="nEh3d5px" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-30c54b40096so2866436a91.1 for ; Fri, 16 May 2025 14:59:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747432762; x=1748037562; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=od57Uif9JXwzPGg1ZsXd/H6KCCp4Qwcw4ZkcBnz9lJ4=; b=nEh3d5pxvlTqxyvgANcPXMJ6+CRud7mB3LLIuGO5gGpDXJjlErOHHojbBV+zZ+s+KW F+heuqxNoqhlDX+2bGtoe2swKmefSCJOJUWAIkbJyokyKZaMARdtsdWMCfZInX8/ceSD NcsPKyXL2T3PtOPl0NL3UeHREPGNwWoNMPuSpcrnfA8g0hUoqrLQRpNXvulMAjJLVzgN NT+GmuxYTy/wvP3RZKi+/qZwGdkNA/cQszgfP8NSt/qAu/3gHWMaiVux/hqt1LXXUuiq TNL2UQCzr6Ra9TF7QqYl/4etE/gEyg27C/gw3oCF47NcocIwRLMbDHCvg2OYmRdFWS/l c13Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747432762; x=1748037562; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=od57Uif9JXwzPGg1ZsXd/H6KCCp4Qwcw4ZkcBnz9lJ4=; b=WACbiRKJc7o8ZYtKUvPRQRYaZzvaLsaBzBygK5RnAAboN03GpmdlDcfjma8ELcy81C trvoo67ULAoMLTTB6N+xcghtWjwjy9JQC5AXC8nIMgixy+GLS+YKm3h+ftkKdW15jqQo wImT38REABPYt0a/QUCghxAjdFxDiVoQZ0+RVoc6Itl4w5vvj6C7MhC/Ab74/7PE1R22 zYv4/PJaLZSYj6BfFxSYVCy/DoFeUHXKugiq0TFVFFhDSoUEEXukkfr8o2GzPjqNY2+k 2U1+JopRKfdPdTL13+bjVCZuBmfRJJceK+21HhXy35kqSWXTPMbfU1dJ6nCyuSzdlyhQ 83sw== X-Forwarded-Encrypted: i=1; AJvYcCWNbIrt5uLszatLgkAwy5qjKroSyGtgCggB/WgGFCH2+CFon3/86LhKfdL6+AiyXl09q53nCp9zpkIErUs=@vger.kernel.org X-Gm-Message-State: AOJu0YxCuQzF4utGRZqDo24uVQvL0O9JjG0L9Z+SkjZpMf4/a8d6xJs4 CqWsIC9eAiTlTDSlBoIv3QELyG03hooAlDFnmcaFzqbHuayVRpbIaI/C07C/p9B1dzxxEiFf+Vj YEsXwFA== X-Google-Smtp-Source: AGHT+IG9bNv7a/9QPFZUcyZf2gm8jW+54q4wdOSEKXquqXb4UQPxygJn7Tlt+dka9X1WlTQqm+fkqYZJZdc= X-Received: from pjc7.prod.google.com ([2002:a17:90b:2f47:b0:308:65f7:9f24]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:56cc:b0:2fe:8282:cb9d with SMTP id 98e67ed59e1d1-30e7d5a8ab9mr7357576a91.28.1747432761942; Fri, 16 May 2025 14:59:21 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 16 May 2025 14:59:07 -0700 In-Reply-To: <20250516215909.2551628-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250516215909.2551628-1-seanjc@google.com> X-Mailer: git-send-email 2.49.0.1112.g889b7c5bd8-goog Message-ID: <20250516215909.2551628-3-seanjc@google.com> Subject: [PATCH 2/4] KVM: selftests: Add __open_path_or_exit() variant to provide extra help info From: Sean Christopherson To: Paolo Bonzini , Sean Christopherson Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, James Houghton Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add an inner __open_path_or_exit() API to let the caller provide additional information on ENOENT to try and help the user figure out why the test is being skipped, e.g. for files like the page_idle bitmap needed by the access tracking perf, which is dependent on a Kconfig. Immediately convert /dev/kvm to the new API, both as an example and because users might not know that some architectures/setups require loading KVM. Signed-off-by: Sean Christopherson --- .../testing/selftests/kvm/include/kvm_util.h | 1 + tools/testing/selftests/kvm/lib/kvm_util.c | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing= /selftests/kvm/include/kvm_util.h index a1fc52bbdf7a..ee29e5d0c5ad 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h @@ -247,6 +247,7 @@ struct vm_guest_mode_params { }; extern const struct vm_guest_mode_params vm_guest_mode_params[]; =20 +int __open_path_or_exit(const char *path, int flags, const char *enoent_he= lp); int open_path_or_exit(const char *path, int flags); int open_kvm_dev_path_or_exit(void); =20 diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/sel= ftests/kvm/lib/kvm_util.c index b21ba80e3015..b133f2b1dbf7 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -26,15 +26,26 @@ static uint32_t last_guest_seed; =20 static int vcpu_mmap_sz(void); =20 -int open_path_or_exit(const char *path, int flags) +int __open_path_or_exit(const char *path, int flags, const char *enoent_he= lp) { int fd; =20 fd =3D open(path, flags); - __TEST_REQUIRE(fd >=3D 0 || errno !=3D ENOENT, "Cannot open %s: %s", path= , strerror(errno)); - TEST_ASSERT(fd >=3D 0, "Failed to open '%s'", path); + if (fd < 0) + goto error; =20 return fd; + +error: + if (errno =3D=3D ENOENT) + ksft_exit_skip("- Cannot open '%s': %s. %s\n", + path, strerror(errno), enoent_help); + TEST_FAIL("Failed to open '%s'", path); +} + +int open_path_or_exit(const char *path, int flags) +{ + return __open_path_or_exit(path, flags, ""); } =20 /* @@ -48,7 +59,7 @@ int open_path_or_exit(const char *path, int flags) */ static int _open_kvm_dev_path_or_exit(int flags) { - return open_path_or_exit(KVM_DEV_PATH, flags); + return __open_path_or_exit(KVM_DEV_PATH, flags, "Is KVM loaded and enable= d?"); } =20 int open_kvm_dev_path_or_exit(void) --=20 2.49.0.1112.g889b7c5bd8-goog From nobody Fri Dec 19 19:16:38 2025 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA9D2280313 for ; Fri, 16 May 2025 21:59:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747432769; cv=none; b=s94ssj6UXiBWXSqtw9aW76u/kDr/j8vvbucjIHAWNaJYkycReUyCuCkKNMyrXw6Apn/GxnjedCzyl818BXYrs1narVklWu6guJNC7ZZM6D/v+KS3JMLG33NblrtGYBHeqANlUVbXYRbhzbiBipWRIaCgkE6HEd8AREOn59j5rok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747432769; c=relaxed/simple; bh=XuQn38073KHqrzPrijgLyDNDCPtL6wvRlD+O0fD5OUo=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Pccw641LCmJyqeNPfCwBCu+BunJBYG8XknHG9Icy0bjOPqgWjFVLE8Rin8jPdzQidSXsNQgI7Txq2nMx/RObACEJj9SNDUUpVgtHlkstCgAbgMXQgWYtaOrqO3foqnZiuvDU02SXzqWDCY2c0rK8NSLtgTGKipqvmujJaH85SRY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=aH8CvCg6; arc=none smtp.client-ip=209.85.210.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="aH8CvCg6" Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-7424eb14904so2326705b3a.0 for ; Fri, 16 May 2025 14:59:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747432767; x=1748037567; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=pDqYazeOU2MMjFDIvxd/6WS3ibNxsUMiTmQuhluxDl0=; b=aH8CvCg6UAtqjiKGFR1lSxGdgm07KX1kNwfdaQUtus6Jel3GCc/P7DdqUGNMLSes11 ppQI8rvmyC+8Bb9UNomaRUxmCsNuI0oZKPmTEA+aLUh5plrQ1HJTkGyIffcUNUjniHME ApiyKSAnBWBIJOfQjzfbkxLLgBWslWlDjS6U/UM0/XHOJfErUHJLvU1N3hPkLCx7yEVd 0j6wQVZqUz76lPQo/1cg4ahUx2yQwQ1vQJvJmr868ZDTXWnp1foyCMQaonkyMna9irjv OgzmV0G1+CZ1xCPGa1dUv2cw6wk32IQv8Vgaviu2JMztm1yHmPxc6lk6q8kraZGQlkEv hfeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747432767; x=1748037567; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pDqYazeOU2MMjFDIvxd/6WS3ibNxsUMiTmQuhluxDl0=; b=BdiaURB3nzbQpYmGZSHBNBqlZE0g4m7+N/r5cnXMObzciDdTBWwKNGDcmO9fEq2Ty3 1YptoPp5SnFBEaYwanbnhT8ZlssAjIaj2ikyfybZTIilHF8CJAaFYf6KzySrRjYoHgLv ZUnbI/6V+6YipWzptYTOgRSqDU0JxrQ0v8sGQFyRZG9D4/koA0YWv/Mj39B5SE3w3uPI 6XSN3aXn9ZEvDQKflKG80k8YgvLyW+mjnZTEMUSX36lYGuHulkDHQAs2IbogkzwgvCbp ySvmkLf/Nq7yaXkvG/bruBMxSdeuaGC1ER6gr9TP/iWqQmSmh7KVJl3XlNyWUZHAUMo/ eSKw== X-Forwarded-Encrypted: i=1; AJvYcCVCkZ2kHG0om+76hZc+2KxgH1X1+iPd8AboJT9bXmm59vBt+ItJiXwfGZC9QQBrajz5vkiywfieD1lKT/0=@vger.kernel.org X-Gm-Message-State: AOJu0YytcH2pzEN7nw/c8fSZv+g4eCXvfCwBp3pYsqr/wbn6eQV1ELUC 36GPxb3JxMNPY7DWAEWQpfzUqTE1+HpmafGqTjQpoPMCOIbqXhAsfU2ZdVLYgSIdWNSsXo0vdHR GbQI5YQ== X-Google-Smtp-Source: AGHT+IEMpqGq+n5rZKXrfZWJxx7HdXHB3++83H1QA7R+pncGD6kY27CVeqAueI1gRToAFbpOxhL8FJB+P4c= X-Received: from pgcu198.prod.google.com ([2002:a63:79cf:0:b0:b26:e8ed:2bbe]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:3289:b0:203:9660:9e4a with SMTP id adf61e73a8af0-21621a18c62mr7063111637.41.1747432766886; Fri, 16 May 2025 14:59:26 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 16 May 2025 14:59:08 -0700 In-Reply-To: <20250516215909.2551628-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250516215909.2551628-1-seanjc@google.com> X-Mailer: git-send-email 2.49.0.1112.g889b7c5bd8-goog Message-ID: <20250516215909.2551628-4-seanjc@google.com> Subject: [PATCH 3/4] KVM: selftests: Play nice with EACCES errors in open_path_or_exit() From: Sean Christopherson To: Paolo Bonzini , Sean Christopherson Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, James Houghton Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Expand the SKIP conditions of the open_path_or_exit() helper to skip on EACCES as well as ENOENT. Most often, lack of permissions to a file needed by a KVM selftests is due to a file being root-only by default, not because of any bug/misconfiguration that warrants failing a test. Signed-off-by: Sean Christopherson --- tools/testing/selftests/kvm/lib/kvm_util.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/sel= ftests/kvm/lib/kvm_util.c index b133f2b1dbf7..cd415f70de98 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -37,9 +37,10 @@ int __open_path_or_exit(const char *path, int flags, con= st char *enoent_help) return fd; =20 error: - if (errno =3D=3D ENOENT) + if (errno =3D=3D EACCES || errno =3D=3D ENOENT) ksft_exit_skip("- Cannot open '%s': %s. %s\n", - path, strerror(errno), enoent_help); + path, strerror(errno), + errno =3D=3D EACCES ? "Root required?" : enoent_help); TEST_FAIL("Failed to open '%s'", path); } =20 --=20 2.49.0.1112.g889b7c5bd8-goog From nobody Fri Dec 19 19:16:38 2025 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F5CB28137D for ; Fri, 16 May 2025 21:59:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747432771; cv=none; b=a9dVFj1SXysMOnq1pxtRGHK3TZLouXVr25e48W/2tfIslE2OkvtxMBg7ZcmDpwsXYexEzIYAvY5+GCpDJVd0DzSw2SSNfNyxBlI4Xzw1st3oFtOLApUTbA9z0HGALHF65oGs+5jw38Dqahr5hBem4QnBcWtrjqY65jEZnrpieR0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747432771; c=relaxed/simple; bh=fHzQNuAEGzAs0V+/3iJg5MoPsJofX2suDpfAK1XD40o=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=rxW2zKbeagS5Pg4WqpWBqov6z5mIomRv9/pdDmfLrc9Uo7YeyWF15XZ9m3Qnh72rhmwrMNo51NCFbU0zIeWOUjV6mdrpHXnsPUAG/vlomNeowfixIAt2km2uNl4F4ivgNyplfbg9yecas3HJJNJzj1opgRZWvnxUKI2oARMrc3A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=sxAPbcgX; arc=none smtp.client-ip=209.85.210.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="sxAPbcgX" Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-74299055c3dso3323094b3a.0 for ; Fri, 16 May 2025 14:59:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747432769; x=1748037569; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=KJLKvOEBBRqQbKBXlovuW7nBLdsIgFKyRZr0KCcKFF4=; b=sxAPbcgXfTvyZbyytJYNRJy1NoqtZVTDYJPDNdzyB4xvojx1YtX1/Pq/GzfpNGEWph iB1jeHLkW1gVBYIF+ABLf7eRf6HauCvGZYDkSpNfU3xOPy36SYObh0p6nRR57auPdhLL 6J0J5S+Vo5RqjjCmToX9fE+m7ax7rJXgRczl5yn23UBwrT9u8rKMkwwNUJJcosZmV0+I lF61EDy3layoGId3gFMAGlpykBTZD+n3PmtkyQjrDHy3aRi1c0lJZkJ4/7veoTR3yuHw /tkWgacVKmsqd/R3zX5WodIFT5hJFv00uwaV8pAmTM8DT6/RP2UkH1aPHWkDYuZQbiqC XE7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747432769; x=1748037569; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=KJLKvOEBBRqQbKBXlovuW7nBLdsIgFKyRZr0KCcKFF4=; b=IsyMzWxtiQxVO7BeU3VDtG6Rgi4AV4f6rW1sAe0wjB36eYqO+Hwz6hx1/vkaMg1/AZ E4KCcQH3HAkKXDEV3TV9VFpoGHCYWqWODA/GRstsS6juyKCFc7EJpHYk1lZ/tKHt5V+V UGMnRDXP6U/WEkb0dsPsv3qjtPhOwcnVeMvCn2Gb+g809UCaCHhcGhUV/fmfAQK+fxoh Q2wAW0UtLVUKrRQ7bRAq4gACUHz/jVx9/G3ZqOHbvw2l7yqG15KUcA1AskT1EOxPl61e RORChsXUt1IFuSZges8HM9dM5qRWGT97VKJJyt8WOBi4O2yBGK5TVXD0EvOcrvqkbM7v xcWw== X-Forwarded-Encrypted: i=1; AJvYcCWXkQvcpntiYXMSwNKFPVzy5DBTPQkplJ/C9nHKKd5qBruxgMvmsTrADJ6BGCrFUCgFLdIpgakEyccYNEo=@vger.kernel.org X-Gm-Message-State: AOJu0Yy8YlqloVPsRkPzxPNXkuA0MVqlxOWTHlZmv87exMj8956cZ02+ ohxLsUC43FFTEi612jvxOvqWzKBC8d15XEVFVb0iNGUjj1axr8GM7GP2rd6x5jQm97B0HBytMr5 F6IBFRQ== X-Google-Smtp-Source: AGHT+IE+ZDBFv/EaWegJcGZxqlIbLXp60sd2aeiJn9nLSrWpqIbz5IJGRoEqQKdaxj00HZApGs0eC5hkpLs= X-Received: from pfey12.prod.google.com ([2002:a62:b50c:0:b0:739:485f:c33e]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:2e9b:b0:73e:1e21:b653 with SMTP id d2e1a72fcca58-742a978e6a3mr6863851b3a.5.1747432769498; Fri, 16 May 2025 14:59:29 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 16 May 2025 14:59:09 -0700 In-Reply-To: <20250516215909.2551628-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250516215909.2551628-1-seanjc@google.com> X-Mailer: git-send-email 2.49.0.1112.g889b7c5bd8-goog Message-ID: <20250516215909.2551628-5-seanjc@google.com> Subject: [PATCH 4/4] KVM: selftests: Print a more helpful message for EACCESS in access tracking test From: Sean Christopherson To: Paolo Bonzini , Sean Christopherson Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, James Houghton Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use open_path_or_exit() helper to probe /sys/kernel/mm/page_idle/bitmap in the access tracking perf test so that a helpful/pertinent SKIP message is printed if the file exists but is inaccessible, e.g. because the file has the kernel's default 0600 permissions. Cc: James Houghton Signed-off-by: Sean Christopherson --- tools/testing/selftests/kvm/access_tracking_perf_test.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/kvm/access_tracking_perf_test.c b/tool= s/testing/selftests/kvm/access_tracking_perf_test.c index da7196fd1b23..c9de66537ec3 100644 --- a/tools/testing/selftests/kvm/access_tracking_perf_test.c +++ b/tools/testing/selftests/kvm/access_tracking_perf_test.c @@ -596,11 +596,8 @@ int main(int argc, char *argv[]) if (ret) return ret; } else { - page_idle_fd =3D open("/sys/kernel/mm/page_idle/bitmap", O_RDWR); - __TEST_REQUIRE(page_idle_fd >=3D 0, - "Couldn't open /sys/kernel/mm/page_idle/bitmap. " - "Is CONFIG_IDLE_PAGE_TRACKING enabled?"); - + page_idle_fd =3D __open_path_or_exit("/sys/kernel/mm/page_idle/bitmap", = O_RDWR, + "Is CONFIG_IDLE_PAGE_TRACKING enabled?"); close(page_idle_fd); =20 puts("Using page_idle for aging"); --=20 2.49.0.1112.g889b7c5bd8-goog