From patchwork Thu Jun 5 10:36:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Ott X-Patchwork-Id: 894333 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A41AB2040B6 for ; Thu, 5 Jun 2025 10:37:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749119824; cv=none; b=cQUaiLsx7h5k6D5dIKul4YCm5kN7eRdp9jiGwPimaYptQm/jHHqUrmy8FKkuwDD+iUmKfpV1eSXeVL22JReTRLn5ZWGp+b8W4Pvw74jlHhG/Xf2ycJpIsetgkot0z6GnDCW6Lge7O+rb9goCdFs2dqORDoHK8NPa7L4UdsLsf+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749119824; c=relaxed/simple; bh=VzQyPkruYWrDZAOkmL/UT3N0xShjKnGR9pQJo0jQ/Qk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XHxHaQsOWrsQGWNdDLRKZVnk6pbD1H1s/JYYDvhj6Pw3DQnsO2T2xWsikP2IHw4caUERlkyA+i4+kb1EIzXZMRWnAlgtIiSvxO0mRggOptGWOH1cBfcs8/4UGwMb1RBCd4GnYH6CTbv5V3KWXSfzSMSRgHiZhRierG58SqTj/tA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=Uv+MQfO1; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Uv+MQfO1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1749119821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AdRsO2Uefrz8JMO751IFZEkS7KH/EcFqwNDUBdHYAOY=; b=Uv+MQfO1hJLdRNQc5RbCrFffkuT6VY62Vo/TMGCOFJBu0/GjkqEW5QL6claC+JfbUOsf8Y nK7N1LkCM9uXRz3UebFePpBymKvfdK/0YoDeNURLvddI7vNiSLGg+F0Hn5Vwzm2e2oS5F1 G/8W2MBbfvmnsBtZu/UsvD8WFxZPzsk= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-121-4pYT4vHhOsu4DCkDHKTbFg-1; Thu, 05 Jun 2025 06:37:00 -0400 X-MC-Unique: 4pYT4vHhOsu4DCkDHKTbFg-1 X-Mimecast-MFC-AGG-ID: 4pYT4vHhOsu4DCkDHKTbFg_1749119819 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-3a4ee113461so312442f8f.1 for ; Thu, 05 Jun 2025 03:37:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749119819; x=1749724619; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AdRsO2Uefrz8JMO751IFZEkS7KH/EcFqwNDUBdHYAOY=; b=cmCoNZa1k47quklYkeHnAul/De38aMT7f/dv//OdHHsS4FkID2ESXOmP6LR0FKVcyT ScllOXdSEkGuDcBTolTWRXPg4WjH1ArZHZTZ5eam/+cuI+vQeo/wf1jvUNEHziYV/ABP U0T2kCi/hzzXFew65di2fOSF+6dSnF7XS7BsaPTP4jgcWpIvLIkNXMnnwcNk3UxaRBWX WQ23c/ti98trept+zB99R1KFtN6QpVbPrOvn5GhoFrIiOsgv3EqazB/pFMRvzmbWlred HY6c8fdb6kRwmpRts3YKsd0Bl5PuwmuSULknY2NjhubKp5tO90aPwf6Iv42N1ypnTGS4 VIug== X-Forwarded-Encrypted: i=1; AJvYcCW0681k3CuuXrTzALX86n3PsouRpr/KmHSRhJxsyevNUNCbVm4vWEs2nz+Tnz2zECYILjsbVfaxmRV6RQOs7Eg=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2St+X5OAtEL1JxHdupA7Px+XB+my42uZ5v0F4W25i39nNms6W +igPGv51wfmSiCFnYRPb6pHKK/hsRkRcNhnpCN1c/OAg6jUIxssZN+DUh8edXgeUIiXFCQ7C6vO KaRJMBkyDbLOXXC8IXGWr0U5dbM34goi89EZ5FJV5R8b/R3qDAdkyendEvDjIDrmAXBxBhg== X-Gm-Gg: ASbGncsvSZREBN7BRuMgTsITbf3sRfaUJ1uPTll6x4P4vxREPJ32Dxrvbib5+kzYhUY mcK4OXql6ok1gp2nfwp85aYqYlFw4YIOerugOaTaVyeJuOS+sQSc+fwsWjWp4n14PgS60aQhL+t eiHwkrBaqtmargg2E7E6GT8P9Cv8JGMNdzwgBE0ZmIPB79ki11g8aj4L0EQWX2rouBlDXgRJN4m 1K5KZ9M12xfxBh0g2gVQia2C/BtTUrRydFXSay18RbYCq8Dm4nZBb8UXAxVHT1lF0A5iYo1bXOF fH52lzavJvy65HAlWuKMyN0xSl7mOc2wqJu0kx/n/crw+s36NV68dOkZTWzLWxouDCIYZta3dQ= = X-Received: by 2002:a05:6000:144e:b0:3a3:ec58:ebf2 with SMTP id ffacd0b85a97d-3a51d8f6a68mr5594165f8f.7.1749119819364; Thu, 05 Jun 2025 03:36:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFRjZpPO2+0jMcuZP9CR9nsUnOUJ7V0YuUBqF23a88OV3aPhw4HnJ7EZRrzi+l8ZxUNJutO1Q== X-Received: by 2002:a05:6000:144e:b0:3a3:ec58:ebf2 with SMTP id ffacd0b85a97d-3a51d8f6a68mr5594137f8f.7.1749119819002; Thu, 05 Jun 2025 03:36:59 -0700 (PDT) Received: from rh.fritz.box (p200300f6af1bce00e6fe5f11c0a7f4a1.dip0.t-ipconnect.de. [2003:f6:af1b:ce00:e6fe:5f11:c0a7:f4a1]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451f8311ae6sm14105175e9.2.2025.06.05.03.36.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 03:36:58 -0700 (PDT) From: Sebastian Ott To: Marc Zyngier , Oliver Upton Cc: Colton Lewis , Ricardo Koller , Joey Gouly , Suzuki K Poulose , Zenghui Yu , Shuah Khan , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Sebastian Ott Subject: [PATCH v3 1/4] KVM: arm64: selftests: fix help text for arch_timer_edge_cases Date: Thu, 5 Jun 2025 12:36:10 +0200 Message-ID: <20250605103613.14544-2-sebott@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250605103613.14544-1-sebott@redhat.com> References: <20250605103613.14544-1-sebott@redhat.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix the help text for arch_timer_edge_cases to show the correct option for setting the wait time. Signed-off-by: Sebastian Ott --- tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c b/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c index a36a7e2db434..c4716e0c1438 100644 --- a/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c +++ b/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c @@ -986,7 +986,7 @@ static void test_print_help(char *name) pr_info("\t-b: Test both physical and virtual timers (default: true)\n"); pr_info("\t-l: Delta (in ms) used for long wait time test (default: %u)\n", LONG_WAIT_TEST_MS); - pr_info("\t-l: Delta (in ms) used for wait times (default: %u)\n", + pr_info("\t-w: Delta (in ms) used for wait times (default: %u)\n", WAIT_TEST_MS); pr_info("\t-p: Test physical timer (default: true)\n"); pr_info("\t-v: Test virtual timer (default: true)\n"); From patchwork Thu Jun 5 10:36:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Ott X-Patchwork-Id: 894332 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE584215175 for ; Thu, 5 Jun 2025 10:37:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749119825; cv=none; b=XxvomefMbudTBIEySy0n8FnOUWYYsG52F6wYPDu5ar7C9tuMcDokI9f7R5Y0cuoYELJzGCKd7FQWlRZwZvPIv5+TPhtVskPrwTmR8sHJEThTP7blXpugJcmKXgSYalpDrW9iGmIMN0vWStz0K0t8oyIf85jrRtCXZCSTEK5uNUU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749119825; c=relaxed/simple; bh=cOsu4Qrb+3bx73g5aMRxtPG7+Gkx5amoz9G8WVXNU9c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EvvVxqGwbwW6bJ8wgOBmWgW4YoorEP9qbXFLS4cyoWoxXWkw8LIZVYJZl1ls5pY34C3uuvhn1FoUutN1xP2WEWD3ebBpt3k/ry5QNgHxPtp3uE8PWIPzaLzQnHnNLKX+yD+LumNQSITDMmLBnKE6BUjHGGX8N7aemajiJxiKu/Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=KfYLkCY5; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="KfYLkCY5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1749119823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HiFig5XrzaKxrne/VffAS5Dccms79XHv1+bktez4Dgg=; b=KfYLkCY5Ibfns3yY5fwO0kFdujfCOVRQ+CtLu8D2PM/PFTK0SWpN/1TIGv+Gobpzh8humL j+SIfyVP4YtskmjMO8eoz+Z8LyAR98nmOOMGw/OGb/hqFgmatXm7e5aCMt8IBnkJZQ2nka +z1LU7rjg+CN4fN89F5e6oqRdk/jLIw= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-235-FAw9IqG-OMuS56taOHyqaQ-1; Thu, 05 Jun 2025 06:37:01 -0400 X-MC-Unique: FAw9IqG-OMuS56taOHyqaQ-1 X-Mimecast-MFC-AGG-ID: FAw9IqG-OMuS56taOHyqaQ_1749119821 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-450d57a0641so5613945e9.3 for ; Thu, 05 Jun 2025 03:37:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749119821; x=1749724621; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HiFig5XrzaKxrne/VffAS5Dccms79XHv1+bktez4Dgg=; b=AMtFP44YsCx2+W7wGjZAOJu8FAK6kcDiqR+TUbz1hWyfgqEQZmoL6q9vfIGtVhOJ10 mo8GiSnhHYjic9ra82qxPYuvM7FjSlL7kxt3O5yvWnaqaNILE00k1arfbznpaXKMvJoZ sFguZF34x556Y7ccnAD2m6prmL8nDYagJ4VOHl4f8OUjTFwcastkHJaAQcLWpkMS0NBR IhdTqySIy2Q0jhUGOcX80mhUuFe1X5NFXn9z9cty2DmS/FgJypITBgSX4bKYExG/YAwG lVlT9KmtEDEW0qgE5VbqZtx8RHcPmgE5i6ORWp4hLfJlOuGjOJr3Mt/l8HmWzddsgFV5 NGMQ== X-Forwarded-Encrypted: i=1; AJvYcCW3uL+qOTKae3eaLi70RLNRDeyxen7Cpx7ky2B7254tkGEyuBLqC3K0c2qKzKQisKy79M3UwgdgXVnfRaf5Feg=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8w3+2o73ZZVVX88il6sbyCNg+K4Qar1lDn1GuO7/3YE9UsVvf j5R9+oBuS4GLRcg/Zi775abPg8Oy2hTU/aMxZS88f19LB0GS12AU1qJT3SZA98N8Iy98nEuGPD/ eqtCmW75B72qta8eEeU6F1ywUdiEM5TLgzr+zGsYuXWonTvCmpQnGRF1ERhwmTsTMQ7zqmA== X-Gm-Gg: ASbGncvbAVN9TYZWBnZcLAZUAZpBCxuHJOgasx+ytOVArrxXS9+k6/XYvtRn6YVXYXJ Y8WMmw4hztSypUltR8/wSxBW6GNpwpXqCSPbxJAVMn/P2O1cAtojstyJreOXTBGmH4SbVOw6N/z vw3uYtpmWmE9iJX07Ta/p41rvdvTBEqKgbMFVbjsWERRspIpDFypgtiNB/rhgM0JyWBBoi7Vbrm oOXdgGWlY5B0Cr6sdEMsPszAVa/grPvhstQZXgQXInH8xcjdQ3eCSZx9hEr2NCvZj1Xhay92Obr kvpkyvS+WZuJrQHg9M9ovJECQaLPeZmZNu4KSVq4/Iv7bXhUuuQF0x2iUJ052jSpPx80SJXjbg= = X-Received: by 2002:a05:600c:828f:b0:43d:ac5:11e8 with SMTP id 5b1f17b1804b1-451f0b26621mr50050475e9.21.1749119820630; Thu, 05 Jun 2025 03:37:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFs6aFjV1ri9gglwDDly0k/rNzs1/j6SDKTIoXHxHHy0T2KK5H3bwQ524CbBRzv8yzrX28AyQ== X-Received: by 2002:a05:600c:828f:b0:43d:ac5:11e8 with SMTP id 5b1f17b1804b1-451f0b26621mr50050275e9.21.1749119820235; Thu, 05 Jun 2025 03:37:00 -0700 (PDT) Received: from rh.fritz.box (p200300f6af1bce00e6fe5f11c0a7f4a1.dip0.t-ipconnect.de. [2003:f6:af1b:ce00:e6fe:5f11:c0a7:f4a1]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451f8311ae6sm14105175e9.2.2025.06.05.03.36.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 03:36:59 -0700 (PDT) From: Sebastian Ott To: Marc Zyngier , Oliver Upton Cc: Colton Lewis , Ricardo Koller , Joey Gouly , Suzuki K Poulose , Zenghui Yu , Shuah Khan , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Sebastian Ott Subject: [PATCH v3 2/4] KVM: arm64: selftests: fix thread migration in arch_timer_edge_cases Date: Thu, 5 Jun 2025 12:36:11 +0200 Message-ID: <20250605103613.14544-3-sebott@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250605103613.14544-1-sebott@redhat.com> References: <20250605103613.14544-1-sebott@redhat.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 arch_timer_edge_cases tries to migrate itself across host cpus. Before the first test it migrates to cpu 0 by setting up an affinity mask with only bit 0 set. After that it looks for the next possible cpu in the current affinity mask which still has only bit 0 set. So there is no migration at all. Fix this by reading the default mask at start and use this to find the next cpu in each iteration. Signed-off-by: Sebastian Ott --- tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c b/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c index c4716e0c1438..a813b4c6c817 100644 --- a/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c +++ b/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c @@ -849,17 +849,17 @@ static void guest_code(enum arch_timer timer) GUEST_DONE(); } +static cpu_set_t default_cpuset; + static uint32_t next_pcpu(void) { uint32_t max = get_nprocs(); uint32_t cur = sched_getcpu(); uint32_t next = cur; - cpu_set_t cpuset; + cpu_set_t cpuset = default_cpuset; TEST_ASSERT(max > 1, "Need at least two physical cpus"); - sched_getaffinity(0, sizeof(cpuset), &cpuset); - do { next = (next + 1) % CPU_SETSIZE; } while (!CPU_ISSET(next, &cpuset)); @@ -1046,6 +1046,8 @@ int main(int argc, char *argv[]) if (!parse_args(argc, argv)) exit(KSFT_SKIP); + sched_getaffinity(0, sizeof(default_cpuset), &default_cpuset); + if (test_args.test_virtual) { test_vm_create(&vm, &vcpu, VIRTUAL); test_run(vm, vcpu); From patchwork Thu Jun 5 10:36:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Ott X-Patchwork-Id: 894331 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2753F21930A for ; Thu, 5 Jun 2025 10:37:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749119828; cv=none; b=b7Q4bWDcLVuihhkPWBRc7U/s9ysLJ3NV5O9/nhSoH5Gw7G/Fw5fMK+tyKamUExBr/O+rbI2jZWyIvDw/gXMv3Gkr8HAmVeQpBQAVekeo+IsSXHCIyEhpG+fZQasRNDfpvoYX64nnPu8GC2z+TMmIRi6e2pJAEmPAqO+Zit0pvwo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749119828; c=relaxed/simple; bh=9XeYGeARuady+jct2m+tvWS5mZLD2RXXr/jmj8/Q/5M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IJfb45MfCEXQa2isudOZ+TOSmf6MS2e9eChzrwtQyPSn2NyTV+lv9YIOfL93YfC4M0edHGWjVfsrdjzxgcgcJr8oS6H/dhtF/E7k0/KsntSn9MHxpZ2L1FzL1N/oKUV8jFPbdeBwxDuU3JHWIsCR8ByRDWcuQXDQa04KhM6IuKc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=gKuHr8/Q; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="gKuHr8/Q" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1749119826; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0rVhjvVcIXx5T86Gzf/rZsso5uT7BOLjFW6qVNZ4D4g=; b=gKuHr8/QQutFNiIwdqshmF9EhcumleERero7/u1Zw0lQbAgekTS/KaJXCd5Th7Et3pyi3S 1dGgYpXUTbsy9WoX5JmrsB6rG0Esu1/2S/k+nlw7qVfyyxSSC4mH+6wXAuzltyKKYvC3WW qdJ1kAmF1QttH4NEqt91zxtBz14mqhU= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-569-T6_s-HglMrK5lH0dVQsw8w-1; Thu, 05 Jun 2025 06:37:03 -0400 X-MC-Unique: T6_s-HglMrK5lH0dVQsw8w-1 X-Mimecast-MFC-AGG-ID: T6_s-HglMrK5lH0dVQsw8w_1749119822 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-43eed325461so4702375e9.3 for ; Thu, 05 Jun 2025 03:37:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749119822; x=1749724622; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0rVhjvVcIXx5T86Gzf/rZsso5uT7BOLjFW6qVNZ4D4g=; b=OntzsE4K0Xs127IWw/Yf6QEfYSu2fWcxlCNcAjj/ShWMQcEsrwIDwQ5X8WLfBGteU8 llQ/7wET5O9y7+JRPn43keJP0rGQM2qqJFmEMj13w3VMdvho/Ef9k+1vDn+19xibeZK2 8gfLMMHa+cwFoUzt7LdGJeLE0NrLhhv8brxhbycq4k6ZS8FjbmD4O4lRcjY++zJPOptN BxpUA+M5NE9bYcGhed7xmcVTVYeeYuxV9/RBYrOW5b/Jf0S9JgmMCJNE7Ggop+/uJ1Kv axAj3W7yF9ZLrUBwuDoDvuUrg4Z7frn1cxdxDhC87IqXpbNSv2JxlRYfMTSJg80RSCtR ZTYA== X-Forwarded-Encrypted: i=1; AJvYcCUs4ENZ6faagUZfpgNMAMQVM90mJr79Ka4ip2pFGbI0B6blBRKG5mQvnoPz4tTzwLGvKJbUsdArqvNlWekLFwg=@vger.kernel.org X-Gm-Message-State: AOJu0YyUiOE8gHv93BslIf9pH2sBoAyD9hLnhnpbaJXS05Lke/1ayBsY IGc812OPevAN2pRwm6JxHjDMnRPscKCJ1wfz21Turc3fJX4XeWRODBVnZ6Bps3NSvThK4vKUEae 50jYQY/u8vd1XTzX8IgcuKdff6oSmoCrNoQ6Vp3vunCvlrHfx681+RLMoFiN1nvzUjSZ34w== X-Gm-Gg: ASbGnctRGkoqxhKaUHsT+LGMksgsiSCw04J4OKpWUoQ9oIriuogFw3uncEZi65I5w9q Nv1M43KAnZSIokjpR5aLGZPMa08nDizTvXIH8f4uPDVgQMrCpp1AQ4N/3PPvrq3MTV7AYa34diq T9Fa0ruUztWcg60CiD84DM0jij0Tpx3c14n4EXzczehU70TXE+VFpM68O2ZduseuhNeGrsK5djb Mr29jsB5mEfZw5hnNOBtgIY68i7U++XwuWHUPdYehoQoiSbWgyNY+t+sHrJgmnkegnJTZ7sdbPn 6VssMjfKVDb6kjPh6xFqwNxz5HBZkf+nh7UtidUwwHv5evwDiKidJKgIDo0U7btoKg8Jsz01Ww= = X-Received: by 2002:a05:600c:46d1:b0:450:d5f6:55f5 with SMTP id 5b1f17b1804b1-451f0a6a475mr59189905e9.6.1749119821942; Thu, 05 Jun 2025 03:37:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGl6x7gVIPWibQhMLU8nel9VytzISKQ2PPkA0o/8Tg4UeXbk96NsVZsi/1KR13ZEgWYC/qLMQ== X-Received: by 2002:a05:600c:46d1:b0:450:d5f6:55f5 with SMTP id 5b1f17b1804b1-451f0a6a475mr59189665e9.6.1749119821528; Thu, 05 Jun 2025 03:37:01 -0700 (PDT) Received: from rh.fritz.box (p200300f6af1bce00e6fe5f11c0a7f4a1.dip0.t-ipconnect.de. [2003:f6:af1b:ce00:e6fe:5f11:c0a7:f4a1]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451f8311ae6sm14105175e9.2.2025.06.05.03.37.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 03:37:00 -0700 (PDT) From: Sebastian Ott To: Marc Zyngier , Oliver Upton Cc: Colton Lewis , Ricardo Koller , Joey Gouly , Suzuki K Poulose , Zenghui Yu , Shuah Khan , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Sebastian Ott Subject: [PATCH v3 3/4] KVM: arm64: selftests: arch_timer_edge_cases - fix xval init Date: Thu, 5 Jun 2025 12:36:12 +0200 Message-ID: <20250605103613.14544-4-sebott@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250605103613.14544-1-sebott@redhat.com> References: <20250605103613.14544-1-sebott@redhat.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 arch_timer_edge_cases hits the following assertion in < 10% of the test runs: ==== Test Assertion Failure ==== arm64/arch_timer_edge_cases.c:490: timer_get_cntct(timer) >= DEF_CNT + (timer_get_cntfrq() * (uint64_t)(delta_2_ms) / 1000) pid=17110 tid=17110 errno=4 - Interrupted system call 1 0x0000000000404ec7: test_run at arch_timer_edge_cases.c:945 2 0x0000000000401fa3: main at arch_timer_edge_cases.c:1074 3 0x0000ffffa774b587: ?? ??:0 4 0x0000ffffa774b65f: ?? ??:0 5 0x000000000040206f: _start at ??:? timer_get_cntct(timer) >= DEF_CNT + msec_to_cycles(delta_2_ms) Enabling the timer without proper xval initialization in set_tval_irq() resulted in an early interrupt during timer reprogramming. Make sure to set the xval before setting the enable bit. Signed-off-by: Sebastian Ott --- tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c b/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c index a813b4c6c817..be8bbedc933b 100644 --- a/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c +++ b/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c @@ -191,8 +191,8 @@ static void set_tval_irq(enum arch_timer timer, uint64_t tval_cycles, { atomic_set(&shared_data.handled, 0); atomic_set(&shared_data.spurious, 0); - timer_set_ctl(timer, ctl); timer_set_tval(timer, tval_cycles); + timer_set_ctl(timer, ctl); } static void set_xval_irq(enum arch_timer timer, uint64_t xval, uint32_t ctl, From patchwork Thu Jun 5 10:36:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Ott X-Patchwork-Id: 894607 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F1E7218821 for ; Thu, 5 Jun 2025 10:37:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749119828; cv=none; b=MebMZ1FU0kU/fr7t2Lhhnf79pn5mTT474mbA2VHPpz2WJ6tq9RsZ7ROXUMD6HclaArkuXmXfm+0lGKw9o2Zcc3H+Zqy8Em/MZWZTxcBmMmvdFUTWO37VzbySbic58WGrolCO+gl8/J1Ciuo6y0C9Xd6dVKsXRSUYL7gxLIW9eJ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749119828; c=relaxed/simple; bh=KbwWFQ1kTo+qRw1U/gTjGAckXKWUWt6XmW7dlBGCSqw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cDskZpN9UBZFiEN2DKPzmQC07UKbBSQBZC5AomOJv/AGzx6LdgK+zhS6lI8qrX98KwzzpNtJHTpOQfpQUaeUxH61d5z4P7p9SfqT218C/XxdiAhsQpuRJX4PCTYTwuVE4F3ChVFaJETpyMGgevAH0OI1/JrHWjDBHrIqYMDPEv4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=UFxvB3m/; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="UFxvB3m/" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1749119825; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=amWbxwyASZoUP07CpGcLTUSUvzxbgFk3ulFVLl61SIw=; b=UFxvB3m/NmZFQ4HCFPecHfmIpmoMLhnv+SFZIVy+/t+Z/9yLA88T0Be5ee99ubrXV1jv07 lFtYxtvOXnJbZ3LGm1tqjJnQy88BSB8yEzGKk18fHOUXNeYQgmBZPBe94A3o0p1YqhIj+F BwzoZsDgK7Yd78q0ud+blzYtDaSWYWQ= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-688-XybFjlU7MbCQr6r_TOqxDA-1; Thu, 05 Jun 2025 06:37:04 -0400 X-MC-Unique: XybFjlU7MbCQr6r_TOqxDA-1 X-Mimecast-MFC-AGG-ID: XybFjlU7MbCQr6r_TOqxDA_1749119823 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-450d57a0641so5614115e9.3 for ; Thu, 05 Jun 2025 03:37:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749119823; x=1749724623; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=amWbxwyASZoUP07CpGcLTUSUvzxbgFk3ulFVLl61SIw=; b=oknnl9ORToAVrPn1QX9C3TCa4LoIW/lloJnoQv1rwX/aKnSBrgx9Nc6Q9gdyw6FRXu a2xMgswh80rud8FGHBoqN+A5K6mj5w+Fc6h5ZFeUJiE+ROSYkp6L+o1hjpXRfohuBSTG OOpaMPjtj2XwM7GWbHMI8otUG9PTfrshdtDOWX/l9heiT0wc1B5qT80o6VgQpretUhwV dxHZHlH7EXbySU1/syuxOvZLsSLZrqfHeMdZjvBCvwYDXj17Txr8uLTc/TU+9GdP/deM lGJYe5A6hApIvkofPCLJAcO8spXamJb6BprsS6d/QmTzAWRpLFoDhDCW3Uu6h6FQu3LA lHDQ== X-Forwarded-Encrypted: i=1; AJvYcCXnoDFLJSJR12buBXKFMln+WSnf61wnK3xuCx19ThemtSzedjooS9ZpCzu0Fiy3zwDD9UBy20Imfy9FPC9N8NQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxB9iERLsXiryIEjCvMT+CXqtZ+c7M/lfHpt4gjEb2NuGnNHleT QVUDpDxl5drKOdwObjgB8oEjQ39ysgnqnREGTrPJQDdvR58+i0gs2ZXg8YNXROBeGSy7GF8DXPT V+uCZ1ANKwh1jCN8LGhrWmcFYHCTRQ4eG7FV0IVvpEGw4KXwmFmEabVvYaw4SS0p3NR9ORQ== X-Gm-Gg: ASbGncsY9EbuhBab8Lu/gT/lEl86AcpdhrJZyKvCZVGbFmudZ7/II7jBUUjyDb5oLOB fI0o4UUmdVMxbZRbUcLPPMsSxkn/1tfr0bcRVC8tKBMqhdQWcdJssEKS2IQD0ZQk+nFY7jdlZFi TY59iDtCLiNOwGyH99NTSmUrzEewqRrDDpb/xMYfnUKaUsulBwyGqxSRL4jg5L1iwkXxTKzeRYs QQDluctTKAb+slLXDjjidEHMD0Kgr4+/2JV7olNEH8lyzMiQumV2gT4kCRDCh/R/QMKNqOMOW7g OsNQ4NKAz/271yINdq6RW88wU50UOYoasrDXhYDPbFlW3z8OMqafWjuxZ5yY1mkg6i11uACi0A= = X-Received: by 2002:a05:600c:3b2a:b0:450:d5c8:29ae with SMTP id 5b1f17b1804b1-451f0a72e7bmr51415175e9.1.1749119823009; Thu, 05 Jun 2025 03:37:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHmtZcZkRv3ekScQM6gx63V+kNA53R9LzjK0Zl5xkWmfvukrEiqxBs91K876Y3Lvx+XWubrwg== X-Received: by 2002:a05:600c:3b2a:b0:450:d5c8:29ae with SMTP id 5b1f17b1804b1-451f0a72e7bmr51414985e9.1.1749119822583; Thu, 05 Jun 2025 03:37:02 -0700 (PDT) Received: from rh.fritz.box (p200300f6af1bce00e6fe5f11c0a7f4a1.dip0.t-ipconnect.de. [2003:f6:af1b:ce00:e6fe:5f11:c0a7:f4a1]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451f8311ae6sm14105175e9.2.2025.06.05.03.37.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 03:37:02 -0700 (PDT) From: Sebastian Ott To: Marc Zyngier , Oliver Upton Cc: Colton Lewis , Ricardo Koller , Joey Gouly , Suzuki K Poulose , Zenghui Yu , Shuah Khan , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Sebastian Ott Subject: [PATCH v3 4/4] KVM: arm64: selftests: arch_timer_edge_cases - determine effective counter width Date: Thu, 5 Jun 2025 12:36:13 +0200 Message-ID: <20250605103613.14544-5-sebott@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250605103613.14544-1-sebott@redhat.com> References: <20250605103613.14544-1-sebott@redhat.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 arch_timer_edge_cases uses ~0 as the maximum counter value, however there's no architectural guarantee that this is valid. Figure out the effective counter width based on the effective frequency like it's done by the kernel. This also serves as a workaround for AC03_CPU_14 that led to the following assertion failure on ampere-one machines: ==== Test Assertion Failure ==== arm64/arch_timer_edge_cases.c:169: timer_condition == istatus pid=11236 tid=11236 errno=4 - Interrupted system call 1 0x0000000000404ce7: test_run at arch_timer_edge_cases.c:938 2 0x0000000000401ebb: main at arch_timer_edge_cases.c:1053 3 0x0000ffff9fa8625b: ?? ??:0 4 0x0000ffff9fa8633b: ?? ??:0 5 0x0000000000401fef: _start at ??:? 0x1 != 0x0 (timer_condition != istatus) Note that the following subtest only worked since the counter initialized with CVAL_MAX would instantly overflow (which is no longer the case): test_set_cnt_after_cval_no_irq(timer, 0, DEF_CNT, CVAL_MAX, sm); To fix this we could swap CVAL_MAX for 0 here but since that is already done by test_move_counters_behind_timers() let's remove that subtest. Link: https://lore.kernel.org/kvmarm/ac1de1d2-ef2b-d439-dc48-8615e121b07b@redhat.com Link: https://amperecomputing.com/assets/AmpereOne_Developer_ER_v0_80_20240823_28945022f4.pdf Signed-off-by: Sebastian Ott --- .../kvm/arm64/arch_timer_edge_cases.c | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c b/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c index be8bbedc933b..b4d22b3ab7cc 100644 --- a/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c +++ b/tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c @@ -22,7 +22,8 @@ #include "gic.h" #include "vgic.h" -static const uint64_t CVAL_MAX = ~0ULL; +/* Depends on counter width. */ +static uint64_t CVAL_MAX; /* tval is a signed 32-bit int. */ static const int32_t TVAL_MAX = INT32_MAX; static const int32_t TVAL_MIN = INT32_MIN; @@ -30,8 +31,8 @@ static const int32_t TVAL_MIN = INT32_MIN; /* After how much time we say there is no IRQ. */ static const uint32_t TIMEOUT_NO_IRQ_US = 50000; -/* A nice counter value to use as the starting one for most tests. */ -static const uint64_t DEF_CNT = (CVAL_MAX / 2); +/* Counter value to use as the starting one for most tests. Set to CVAL_MAX/2 */ +static uint64_t DEF_CNT; /* Number of runs. */ static const uint32_t NR_TEST_ITERS_DEF = 5; @@ -732,12 +733,6 @@ static void test_move_counters_ahead_of_timers(enum arch_timer timer) test_set_cnt_after_tval(timer, 0, tval, (uint64_t) tval + 1, wm); } - - for (i = 0; i < ARRAY_SIZE(sleep_method); i++) { - sleep_method_t sm = sleep_method[i]; - - test_set_cnt_after_cval_no_irq(timer, 0, DEF_CNT, CVAL_MAX, sm); - } } /* @@ -975,6 +970,8 @@ static void test_vm_create(struct kvm_vm **vm, struct kvm_vcpu **vcpu, test_init_timer_irq(*vm, *vcpu); vgic_v3_setup(*vm, 1, 64); sync_global_to_guest(*vm, test_args); + sync_global_to_guest(*vm, CVAL_MAX); + sync_global_to_guest(*vm, DEF_CNT); } static void test_print_help(char *name) @@ -1035,6 +1032,17 @@ static bool parse_args(int argc, char *argv[]) return false; } +static void set_counter_defaults(void) +{ + const uint64_t MIN_ROLLOVER_SECS = 40ULL * 365 * 24 * 3600; + uint64_t freq = read_sysreg(CNTFRQ_EL0); + uint64_t width = ilog2(MIN_ROLLOVER_SECS * freq); + + width = clamp(width, 56, 64); + CVAL_MAX = GENMASK_ULL(width - 1, 0); + DEF_CNT = CVAL_MAX / 2; +} + int main(int argc, char *argv[]) { struct kvm_vcpu *vcpu; @@ -1047,6 +1055,7 @@ int main(int argc, char *argv[]) exit(KSFT_SKIP); sched_getaffinity(0, sizeof(default_cpuset), &default_cpuset); + set_counter_defaults(); if (test_args.test_virtual) { test_vm_create(&vm, &vcpu, VIRTUAL);