From nobody Sun Feb 8 10:34:11 2026 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.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 579E326B2AD for ; Tue, 7 Oct 2025 22:14:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759875291; cv=none; b=gdkYu/bPaM/v0fsdyQdjTTrvePaISVza72ALes+xZRztazOeVHmqXqo0Iqw+q45JHAY7xJtW4B8Jo7FUU1EYWoBCoRZmhelpAkO5RCkVXj+DfFzsZGrHibnOpT+s4NlwaOuIeXGr2tX+LKc0hqXDLwKvgfOnWeyuvEEhqFQQ0FE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759875291; c=relaxed/simple; bh=DQgULNgEfY1Jt0H2/OfuNvBsjc9CKm5CpMZ3jXWuIWw=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=hXnasWvE/kAzYbMJKlOUS/e2w6y7rtALwPJIkl0qSmA1UAgOD/FRAFBzlVJ22UEGtm9x3I/q1PKcQr3jRInEVsau/BohD8Wfq3x5y8AR+ImjT/9zsC1LeG6r3qqa+JX48rtayMNKxdTHMRhbncAluoi5c5dHOG3pyTrxVybAtRs= 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=hfXdHTBv; arc=none smtp.client-ip=209.85.210.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="hfXdHTBv" Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-792722e4ebeso1501356b3a.3 for ; Tue, 07 Oct 2025 15:14:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1759875290; x=1760480090; 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=ZRjLOkLi9BSY1X/Dn5kuYV5Nji5pDR3uoMZxLkUFt2o=; b=hfXdHTBv15rANbphNVIFd1wb+x+WpzC/F+r+BCt9D9MdWv1N3c1n7RO/njPl1bq64P w0l+cWXfUg1RCpwt1EEzrfU1OHPuXjZFztPnSytFuAjWEQTfC648fwPrWWa/sWIWgrN0 FcY0GLBqV6nx+pKlyZA0lmMAjuCUwJhjv2FOPWaIhnuaIMV+SOx9pFQ2IjIUdC2K2nvn rVW7yUPZPOVJx74TZ9C0RoR+1CTLK6d1b4pgTKopTBm0C+kteDsURXDvExAHEG91bbzk dA1YHeB1FT83zZJdrd7b26Jv1N/nNcURkAXOFhJ2tYbPKiVCxBkPITKG/ksNmRgnxIwn 7CRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759875290; x=1760480090; 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=ZRjLOkLi9BSY1X/Dn5kuYV5Nji5pDR3uoMZxLkUFt2o=; b=WiXPxeN6YcoM7b/+LjP+pDS+0/nYkTnSXUh756yuKwjVZCHwrAnuZYyPyI9f3CfsQO VxnlXs9NmDnHsB3mTDzLEpSQ/In6xPVj+zT/mu+hk4w9KeITNpazkKfMAFF77fIjU4RX /+gSM/HFuflGGVAXBmG1zKV2wxkILI/cg9kRtPzClPsee9JBHavvPPmoxdML6xu3HO+/ JnxEiKJOEOa8CIiIpn+83gxmbkDtA55BXqrP8GGGpNjtYr7XQOWGqw8Ijbmxm2zliA11 oEEFf5VsBqkrnWVfdpo6nRPZvMHn+4AMtiJNNv8tcpbuFtpzXZpXLiXLnGhe0vm8Rij5 kgUw== X-Forwarded-Encrypted: i=1; AJvYcCUBhCgTE764n2WLTk7K6dRzY9/xuzEsy1LzOngP9g2kLozVLb8EWinJmfmw7BTK4qHfcXyfSksNeeGMYV4=@vger.kernel.org X-Gm-Message-State: AOJu0Yzt/VwVL9q+xqmYoQv9jrJdLRBgFfaegbmJSo+vjL8DiFpeZTDt 5/fxpnwKch4pUsFSvA5vvq0NOeX7P6Z/iTf+hBb4HzKHhP3wsxKEVhfOEntn+3tgChZHMn19OxI /3ELyMA== X-Google-Smtp-Source: AGHT+IEms4qpmxT3+KnDpQ4qOyqPi3vhEOg4w0WfOhks0tfRQIlFpS+IHju/WYm3RYsFn35p+Bdpiaz8XEQ= X-Received: from pfbig5.prod.google.com ([2002:a05:6a00:8b85:b0:77f:33ea:96e9]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3cce:b0:77e:5c9f:f85a with SMTP id d2e1a72fcca58-79385ce1122mr1342534b3a.14.1759875289698; Tue, 07 Oct 2025 15:14:49 -0700 (PDT) Reply-To: Sean Christopherson Date: Tue, 7 Oct 2025 15:14:15 -0700 In-Reply-To: <20251007221420.344669-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: <20251007221420.344669-1-seanjc@google.com> X-Mailer: git-send-email 2.51.0.710.ga91ca5db03-goog Message-ID: <20251007221420.344669-8-seanjc@google.com> Subject: [PATCH v12 07/12] KVM: selftests: Report stacktraces SIGBUS, SIGSEGV, SIGILL, and SIGFPE by default From: Sean Christopherson To: Marc Zyngier , Oliver Upton , Paolo Bonzini , Sean Christopherson Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, David Hildenbrand , Fuad Tabba , Ackerley Tng , Shivank Garg , Ashish Kalra , Vlastimil Babka Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Register handlers for signals for all selftests that are likely happen due to test (or kernel) bugs, and explicitly fail tests on unexpected signals so that users get a stack trace, i.e. don't have to go spelunking to do basic triage. Register the handlers as early as possible, to catch as many unexpected signals as possible, and also so that the common code doesn't clobber a handler that's installed by test (or arch) code. Signed-off-by: Sean Christopherson Reviewed-by: Ackerley Tng Tested-by: Ackerley Tng --- tools/testing/selftests/kvm/lib/kvm_util.c | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/sel= ftests/kvm/lib/kvm_util.c index 8b60b767224b..0c3a6a40d1a9 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -2290,11 +2290,35 @@ __weak void kvm_selftest_arch_init(void) { } =20 +static void report_unexpected_signal(int signum) +{ +#define KVM_CASE_SIGNUM(sig) \ + case sig: TEST_FAIL("Unexpected " #sig " (%d)\n", signum) + + switch (signum) { + KVM_CASE_SIGNUM(SIGBUS); + KVM_CASE_SIGNUM(SIGSEGV); + KVM_CASE_SIGNUM(SIGILL); + KVM_CASE_SIGNUM(SIGFPE); + default: + TEST_FAIL("Unexpected signal %d\n", signum); + } +} + void __attribute((constructor)) kvm_selftest_init(void) { + struct sigaction sig_sa =3D { + .sa_handler =3D report_unexpected_signal, + }; + /* Tell stdout not to buffer its content. */ setbuf(stdout, NULL); =20 + sigaction(SIGBUS, &sig_sa, NULL); + sigaction(SIGSEGV, &sig_sa, NULL); + sigaction(SIGILL, &sig_sa, NULL); + sigaction(SIGFPE, &sig_sa, NULL); + guest_random_seed =3D last_guest_seed =3D random(); pr_info("Random seed: 0x%x\n", guest_random_seed); =20 --=20 2.51.0.710.ga91ca5db03-goog