From nobody Sat Sep 26 13:18:34 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010012.outbound.protection.outlook.com [40.93.198.12]) (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 755CB472089; Tue, 1 Sep 2026 08:22:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788250976; cv=fail; b=cHAwZsVvu9LtHs1nWB5hgfX3H/Zr2+nNCbqeYJt1O1D242RwtE/ObnwnHoeobALzWwIlI5CMg0IrQVwpfGznGEdfKyOEW3oZIVMRzRaoeV6tIw8x9E9WKv0XJo1RH2tg5rOqDLroHWIuAqp/DtrMibtVPAuGtMV4cLCpju8qToA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788250976; c=relaxed/simple; bh=uULm3+58swldolRx4XxyFhe5hMTja2qFnCGpdRR7w3k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=bYUjuwXjlI+Uv+6lHC/0ldofeFpVIa87b88Kb9o2tQkE43fH+9SBUlhJ2r7RcoFw3+PJx1DlIJX0eKRrVGBwmFQL6QTJhLgnNpEthD6aILiFM9JXk94BJ1ep+pyZ+gl5LoKs3tcTd2gxVsg8//qZfqV0O82cE/5vHQN8hKPKrfQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=PDTKVWwa; arc=fail smtp.client-ip=40.93.198.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="PDTKVWwa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QSzveoYt1xbhjhcifdiOimQDzjbKTtCK+5YWU1zcrHEOIPxBgLdJhis6Qr+lZz7JmyZqsunfRGcRNPtxY4RtuxAZMCVJkEhasmfG3EWkvBo2TQ73jUJ5wGTiZF68HCRBNYWFG6GS/rnI2C8kbS2qBrtHhnCWo+3cxaXfjf1h3ddzAKN8V/rVqM1zS21aF1kla3Gzyxcct75C2148YYmqK/AzbVTTvKXkSR/MkeIwLDUXoV+JJnhB4JprhJF2sLxwKLmoP8jKFx3cjkbr6a3vFRzoBDsgBfNp2a3oOx2FV5E+NeMta3z1MRcbHWrsidg5szf2CnnjCQTJBKyU4RSj9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yZsoW4CXKCuWiZOL7BnrrsD+64x/efmspSZX8+b7RK8=; b=hq/iVBaijW51r/fjXJapL2G/azw8slP/NBuwXzFK0oeiTIS610IpBFsU8epnG8xvKlddEwQp5H8/Q5e+2dJzhOGuWXOssFgRYHntetDa7fRR3XtO7Slw8oGqyDkHk+Kk1xmNT9UvgM/a4nyebcwslzGHUVB/3Ph70fQacB4L1aqctm3UvAz1sbwG0fWNBcKdW6s/+lln8TKuJtU0Wck4T1IJyzo9pipnRN5RhQOe4qJYbY+nxce+kI7BaNQD3IImA+rLcJqXGjKP/n8jkazrNKQZwFpjz4+T1sWejGITodsXGtL0Fd65HS+a5A6FQGqWINjvEWLMShdTHQXIWT7euA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=redhat.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yZsoW4CXKCuWiZOL7BnrrsD+64x/efmspSZX8+b7RK8=; b=PDTKVWwahSr193N5FdyF2uw+GiRDPnSg2jqWBXtn7oirdeCUnFKCMbyUJ9uZRCY91yw13axtdztRE4MLJQ6qW80XXu8JaROjVj8Cc4YAFATaR73Tm2FtSU7yo6eZBPMI/Dll/tM4shEjswCVufsbiiwssEVYtWP9mxhzPZ7i2hU= Received: from MW4PR03CA0262.namprd03.prod.outlook.com (2603:10b6:303:b4::27) by DM4PR12MB7573.namprd12.prod.outlook.com (2603:10b6:8:10f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.11; Tue, 1 Sep 2026 08:22:51 +0000 Received: from MWH0EPF000C6188.namprd02.prod.outlook.com (2603:10b6:303:b4:cafe::6) by MW4PR03CA0262.outlook.office365.com (2603:10b6:303:b4::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.360.13 via Frontend Transport; Tue, 1 Sep 2026 08:22:51 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000C6188.mail.protection.outlook.com (10.167.249.120) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Tue, 1 Sep 2026 08:22:51 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Tue, 1 Sep 2026 03:22:47 -0500 From: Shivank Garg Date: Tue, 1 Sep 2026 08:22:38 +0000 Subject: [PATCH v2 1/4] KVM: selftests: fix maxnode arguments in xapic_ipi_test Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260901-gmem-selftests-fix-v2-1-5a273153354c@amd.com> References: <20260901-gmem-selftests-fix-v2-0-5a273153354c@amd.com> In-Reply-To: <20260901-gmem-selftests-fix-v2-0-5a273153354c@amd.com> To: Sean Christopherson , Paolo Bonzini , David Hildenbrand , Shuah Khan , Jim Mattson , Peter Shier , Ricardo Koller , Ackerley Tng CC: , , , Shivank Garg X-Mailer: b4 0.15-dev-47d62 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788250963; l=1369; i=shivankg@amd.com; s=20260518; h=from:subject:message-id; bh=uULm3+58swldolRx4XxyFhe5hMTja2qFnCGpdRR7w3k=; b=4Qxc4JnLMdaDwUdKmm1g6ucdNr60Qh1MKEdonbD0Q90J0ZAQ9a7Q+YJmMzhbSPJ6qygkLyJnM PRU2K30YASBDwCQPrWEqJSA5caXTUXELgBK7DeYcXINaFvokfCnT5jb X-Developer-Key: i=shivankg@amd.com; a=ed25519; pk=2l2QGTeXuGkZTtfmx0nPQU8iFZfjYmX/ymMojitevx4= X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000C6188:EE_|DM4PR12MB7573:EE_ X-MS-Office365-Filtering-Correlation-Id: a0634849-e981-42a8-01e0-08df080236fc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|82310400026|23010399003|1800799024|36860700016|11063799006|18002099003|22082099003|56012099006|6133799003|10067099003; X-Microsoft-Antispam-Message-Info: PKBo1C4XCdiGns1q9Yjg/WJoksXsLrT0sZJn7OPz/pZ1O4cK8NWrYQ3aik/LJJVH9S5MZ6ouDzdSDFyXyYPa0rjOXLMZiqgrJ0Vm0Eq8ZB6zLjIU6FdCXql+HCDmPp7Y/PtElQq58ZQooHElM6mfeKdiWKYMvHj/HURseo5lGQB6iWifnN91HgsgF6rIHCpMOBkYfsQdBz4R3xko8R8msavuU3bS3NRSFmfBBpyzNZ39oWvSamG/uL1Vu/g1Rx7u423kHXMFz4gP4u2awAbCqeoTK1JyVSN3Ib8RTAY1mYLM60gyQ+XoIyFeC2OM4uoSq5HcW0pZd9IMTvvY18Xk7qpVyjNq6VBe+DpbkM7XtaELraskqmV0mNhgr3Pc2MuItmFrRvw4mO1PVW0YqgHADbsAgS9buOouHP3YkKEHliaNszdCGJC/JjvcqQn6HEKBWxYEaMcs/R2CbV/ZdIRl5/I3BS1Q3YH2YQmD9BzYLzZgYeZ89FU1isZZLBjD5yYQJwqsarlWGkOcb2dAFNJ/6GdO5i9kZTR6f1SmspyKcN+n31AK0FBQZxW8wL+k+qyw/mvqi1hYNT0f7M3WwIas3/3suJO1DRmDFUTzKqxZenYEtxbOZ17qDhX+gyWX5DpOEyNiqM4I5SGvRYHB2q06xgxCY24e0F/NYUJem7TH2S5l10j2EW3EynRn6/SxJDq6fNwzxTdpHReDfFZnbMLxhA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(82310400026)(23010399003)(1800799024)(36860700016)(11063799006)(18002099003)(22082099003)(56012099006)(6133799003)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dNKCNVYRWxkpawF5TCZwhhBmq5seITRqULTGTMAPW2yqBIzMS4nJoY9S/wKDwxcugbOUpQvutcPwxdMumksWWwNavGu/WM9FilTRY5fxwVDdgqV/CXDqaBroJsTCE5AHovXR5fjFJG3iQfIDrD1izVAZN4Kg5ElD7rvxQptCEnaVzVVzryPq+OLL7P6FjTlyuno87c7bZ07+ysRBFY/GZyWriwVwH4tiLIOKfKEXuu4JxUsdq+hA0hkLnYbgqpZEnm6WkoLeWcFcaqwtqUzpbfbC56GDzGz+Hn0mwo8HloGz5w7uwPmS9dl2r1DQvMgKYH0QJr+fiV5w/IMTKN9gkVhvWDryS2P6dJY3tgkbjjaIc8qrE94tkGAP0ve3XjibMZXrRPjNMbKaoyjIu3qkT6ORBOLBqf8dLOabKo3OiXaZaV/rgSiyOzrDQhk5ocm2 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2026 08:22:51.4005 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a0634849-e981-42a8-01e0-08df080236fc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000C6188.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7573 migrate_pages() syscall expect maxnode to be one greater than the number of bits in the nodemask. do_migrations() passes the size of nodemask in bytes to migrate_pages(). This sets the maxnode to 8, so kernel only checks node IDs 0-6 even though the nodemask covers node IDs 0-63. Pass the nodemask size in bits plus one because get_nodes() in mempolicy does --maxnode. Fixes: 678e90a349a4 ("KVM: selftests: Test IPI to halted vCPU in xAPIC whil= e backing page moves") Signed-off-by: Shivank Garg --- tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c b/tools/testi= ng/selftests/kvm/x86/xapic_ipi_test.c index 469e3ab16460..0f11f4d7cc3d 100644 --- a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c +++ b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c @@ -291,7 +291,7 @@ void do_migrations(struct test_data_page *data, int run= _secs, int delay_usecs, * KVM_CREATE_VCPU ioctl. If that assumption ever changes this * test may break or give a false positive signal. */ - pages_not_moved =3D migrate_pages(0, sizeof(nodemasks[from]), + pages_not_moved =3D migrate_pages(0, sizeof(nodemasks[from]) * 8 + 1, &nodemasks[from], &nodemasks[to]); if (pages_not_moved < 0) --=20 2.43.0 From nobody Sat Sep 26 13:18:34 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010029.outbound.protection.outlook.com [52.101.201.29]) (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 AB2872C21D8; Tue, 1 Sep 2026 08:23:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788251010; cv=fail; b=qgNsqbwDm4XQfJ76hTp7RAC6CtCr9wCKIlr1OajTUyRCtvpFMX911RBIBgZ++V8flLo3L0v07SGV7iGvebuTodPmc7NqFRVCQRSZJA+02hWANnWaiZ0w3SbdOPbmqWzH47bZePOGAsXRmBLdgBNkBFXrt1gUUP6LnxFoKlow8v8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788251010; c=relaxed/simple; bh=tGs0zuwD3KrzordnWtzNhu5Gh9LoxN7mqeSymJN6U8o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=h9OhDQTTnqAajKvLe0cLGlqDt55Xai+lGXw4KCv9yjsHNAI1eXuFPfznVXeQ9va6UYEw+Chz7MA1B+updt2hafCB2/s0rHyhZByfXyIou1cosmcvYGahsZXmpHuWwrN4PcsRhkU4dQ9th/9h8n9DMgNPIzjwONVs4IHTpTzBEU4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=pReWdd+g; arc=fail smtp.client-ip=52.101.201.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="pReWdd+g" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UoCSLwjrdH/+DoiHnqRu+800WihPUWJtRNIEw621yHOU0/swXnlk+CRMYRaaj9k4yoZfMvY0v8y0EYtmTIqtbeH7KBaGcsVWKrx49FBrcgcCgdEGVyOqyY6THfR4ARnl2FP6/WGghTzF0nkLnk3a//+z/XjMeXsD7UH1Gg2cXdnTIeeiOoSKFn4xq4iPOJe8bOw056P3Guw7YIO5zOPMQsSMZL81RAXEWQEfOi1izH42ASIAgHGVY/p6azGVeQaoDqklpWNKDmkDSGlRoT1Vj2sFI84T6F8y6alYidBhxZZscw1i922UQ+TSDMFaB0W0g2OKk3VNZOjijJ04lQOoug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zZO0zMuQny7cTBUURlsShGny+j6BM3LF34c09lsTWQ0=; b=wtn/piTngipGtWvOBZ/qPifOh0iQqut2llnEdM0vCwYMkzVq5kkFJMWlMTgrsSG9LkfTuiyENajJ8DOHRY34C/kOtsQikcXrZbGBKK2ER5jhjoChNTTlQoSzQj6rQRenQu/kzZxH6XEeG5U6wXaFnELz7ob1rkD+Vsmhd79pvwiTwbyjgZe5JuvACbNouw0r51za4Um3jKQKEey7unJtmUx+EltFRM5PuT8ffmoOSs9ObCHxK2i4vwQ+9Y8s9iKshPiTGgK/wDgXpWQlCl91c20YyulTxwmvr573CxpTFEp9O+4Qw2u6Q3+IRQb1TJ0JnWLzul4iUBplvzesqgwkbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=redhat.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zZO0zMuQny7cTBUURlsShGny+j6BM3LF34c09lsTWQ0=; b=pReWdd+goaTqLcv+r/j8aH4yX+r8K1NXAUX8ospdoCMWQRahnvNHZKNEAOBE8idgPua7HkPYWYr581S3Ptk06D6rFWJviPsrJpiuAgMVqKQoALYl7RP4NV7cU8rUi2wZNUdwKStO9imd1g9oM7dQZ4svMDAFJkW7Z8vuhSRVC3s= Received: from SJ0PR03CA0051.namprd03.prod.outlook.com (2603:10b6:a03:33e::26) by DS4PR12MB9634.namprd12.prod.outlook.com (2603:10b6:8:280::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Tue, 1 Sep 2026 08:22:55 +0000 Received: from MWH0EPF000C618A.namprd02.prod.outlook.com (2603:10b6:a03:33e:cafe::2e) by SJ0PR03CA0051.outlook.office365.com (2603:10b6:a03:33e::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.10 via Frontend Transport; Tue, 1 Sep 2026 08:22:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000C618A.mail.protection.outlook.com (10.167.249.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Tue, 1 Sep 2026 08:22:54 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Tue, 1 Sep 2026 03:22:51 -0500 From: Shivank Garg Date: Tue, 1 Sep 2026 08:22:39 +0000 Subject: [PATCH v2 2/4] KVM: selftests: use BITS_PER_TYPE() for NUMA masks Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260901-gmem-selftests-fix-v2-2-5a273153354c@amd.com> References: <20260901-gmem-selftests-fix-v2-0-5a273153354c@amd.com> In-Reply-To: <20260901-gmem-selftests-fix-v2-0-5a273153354c@amd.com> To: Sean Christopherson , Paolo Bonzini , David Hildenbrand , Shuah Khan , Jim Mattson , Peter Shier , Ricardo Koller , Ackerley Tng CC: , , , Shivank Garg X-Mailer: b4 0.15-dev-47d62 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788250963; l=2319; i=shivankg@amd.com; s=20260518; h=from:subject:message-id; bh=tGs0zuwD3KrzordnWtzNhu5Gh9LoxN7mqeSymJN6U8o=; b=W8jIDNxuVgUMbBRHHWZ/UU8dx2Y6E/1niHU8M1aCIJ6E0bEBjdNbkR0FWyLUH/7U/xrR0W8Sm o+HFnLlRMRkAOyhzzDwTEoZbQkwCI+wJxkT5Mher54hmMAInlf7Y3Ku X-Developer-Key: i=shivankg@amd.com; a=ed25519; pk=2l2QGTeXuGkZTtfmx0nPQU8iFZfjYmX/ymMojitevx4= X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000C618A:EE_|DS4PR12MB9634:EE_ X-MS-Office365-Filtering-Correlation-Id: 16afd044-9f15-4a90-31eb-08df08023906 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|82310400026|36860700016|56012099006|10067099003|11063799006|6133799003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: ljahU9ypst07E7Mid9eGPcRoyzVr9PYpvaEs5+a1qzBkQ6emG81fjOpK/zHLac7lxw/StLveaxosFdA4pA2m5KqfkRlAuEHxQolS2Gyu1xdx9ZJulNa7rhKGfACQhY6ElCwTxpyJ0ynrwzjciJPWXveWg6jNicRbm5DyjulCsjNwCHm3NJu1SD+XXmsszdmmz9j50mhGhF2eqD5BbmIsLvTJ5ozplscYXXNLQ9YvyZEnpgA5BTn1K6vh+GlsaozgoUukzq+ArT88JUbHGbeM5cE5ALeEoQFu9qbRK6w0ivpACEBLMZ95LUZ/mOsBvR/3cUYSroUT8xC4h1fCVfw0IiXCY3N9vwjzjhVArwMh/gHhZ9eqrFfEZEzEb9XQv+o681rt6+5kw6HosftmBgbyVk1v6okhKu4oC0aFm+IS4r3UcEVWzIdQPTrar6avPYnxXDG3mXBE/CUllEZgVEgkFuVb7pkkVXQY9IFVOB65Ql5TxHn7MXoqu80eMho0higNt9XMrScSLbHRhStKZirufuffqIxnPbnuriSGAsEaL9zdD/58cma+lN0yzLEEloXh1F8veJW8kiGx50AXDCiKZ4MQ7GDkams/FpNQIB2iO+9459/JDaO34rNtQnYw+BRjC/spMVJKaEhRZwnjbOO0okTrWHsiux+Fz1ODuAdG3vYTIUpVxVL83PQHjDRKwl6G1kUA07KfZ65jytjBFC8FNA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(82310400026)(36860700016)(56012099006)(10067099003)(11063799006)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: U/6enaHP8WUWPvPIqm8/3ucA7LeOglOgUy1G70kQNm4Jfkd1/5AxsnTN/zS4M1PNIDV/L6NB61LhDDcg/kd1DwWee3Kzzdno0k7P04+oE3DPvwsFAh/4OQhv7mvicL8PEqTdHaQYRpQfakBZbFWUap6wzhFNgQ3XMeJXQ7WyUvhEFlV2u9eB+iHhtt6mXel7AXsXg8PCyjKoQkwa305IvXoJgLe2OYsKJ2QCakLvIqGOHMNUJJv2ouvpZSWcY07X+C8PjmnJWAwAjXakTXM+l8gTChzRB1nwVnBaVxUX8HMv+8E7CAOLI7eUmVhmxlpajMzMuUll80HujagDGUuKL4HPcWFNqLhgwKQal8vc1hfuyPWzoqjTTT5uoRCKn95KIm65eR7igDH+tvzZx4ZK2clybrwJrpRNk0GUlTRjNknTxXg+dR5iMArRBKssBmt6 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2026 08:22:54.8164 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 16afd044-9f15-4a90-31eb-08df08023906 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000C618A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9634 Replace the open-coded sizeof() * 8 calculations in do_migrations() with BITS_PER_TYPE(). No functional change intended. Signed-off-by: Shivank Garg --- tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c b/tools/testi= ng/selftests/kvm/x86/xapic_ipi_test.c index 0f11f4d7cc3d..e5706dd62d3b 100644 --- a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c +++ b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c @@ -233,7 +233,7 @@ void do_migrations(struct test_data_page *data, int run= _secs, int delay_usecs, { long pages_not_moved; unsigned long nodemask =3D 0; - unsigned long nodemasks[sizeof(nodemask) * 8]; + unsigned long nodemasks[BITS_PER_TYPE(nodemask)]; int nodes =3D 0; time_t start_time, last_update, now; time_t interval_secs =3D 1; @@ -248,18 +248,18 @@ void do_migrations(struct test_data_page *data, int r= un_secs, int delay_usecs, delay_usecs); =20 /* Get set of first 64 numa nodes available */ - kvm_get_mempolicy(NULL, &nodemask, sizeof(nodemask) * 8, + kvm_get_mempolicy(NULL, &nodemask, BITS_PER_TYPE(nodemask), 0, MPOL_F_MEMS_ALLOWED); =20 fprintf(stderr, "Numa nodes found amongst first %lu possible nodes " "(each 1-bit indicates node is present): %#lx\n", - sizeof(nodemask) * 8, nodemask); + BITS_PER_TYPE(nodemask), nodemask); =20 /* Init array of masks containing a single-bit in each, one for each * available node. migrate_pages called below requires specifying nodes * as bit masks. */ - for (i =3D 0, bit =3D 1; i < sizeof(nodemask) * 8; i++, bit <<=3D 1) { + for (i =3D 0, bit =3D 1; i < BITS_PER_TYPE(nodemask); i++, bit <<=3D 1) { if (nodemask & bit) { nodemasks[nodes] =3D nodemask & bit; nodes++; @@ -291,7 +291,7 @@ void do_migrations(struct test_data_page *data, int run= _secs, int delay_usecs, * KVM_CREATE_VCPU ioctl. If that assumption ever changes this * test may break or give a false positive signal. */ - pages_not_moved =3D migrate_pages(0, sizeof(nodemasks[from]) * 8 + 1, + pages_not_moved =3D migrate_pages(0, BITS_PER_TYPE(nodemasks[from]) + 1, &nodemasks[from], &nodemasks[to]); if (pages_not_moved < 0) --=20 2.43.0 From nobody Sat Sep 26 13:18:34 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010005.outbound.protection.outlook.com [52.101.61.5]) (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 E2A203A0E8E; Tue, 1 Sep 2026 08:23:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788251033; cv=fail; b=BR/0r34IC1zS6pwJEGOw10BuEBOwFPfzGwIeMbbiwlv3ph4mz+sX3wHu1PW8JlScnDK53zYcg2BzbN5qVp5I6O4ky0XCxKBacd1TfsAvxh7BXCIx5U4Hhke6bLypmwzTN5oZ6GtixeTwSvXyAKQkcr5cUes5nDgkR+wOvStzIT8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788251033; c=relaxed/simple; bh=BBl1Tm7P/OzM+h2Kdl5bx0mDHHBfcZNO6rNdtpbVK/g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=f75H1EQd7qtqG95VORwsKwcABl7BKiyEeVNgaV623ov7B69BTRCQeFJR9QMx2E9F8wX+CZZfBS0JydTf8gDobCOQukpnyVqTaocu9MLQPYYCXiqV1T7AD9S2ZsA7VWNILSfNKVJzTu5O7Y4v3s7Xo0yxgtiVkDS97b6m5Jc9h4I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=JiFcwmKx; arc=fail smtp.client-ip=52.101.61.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="JiFcwmKx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aTOQsPWoM8tkLsCmPcWlIorlhGvsNcdWLFKn9ajVY/YZXCrgczV546k9Oo3oS3d2kU3l4xU0Uzx8aq82ja841jWzYlASppAW/KEF+L3XEDvmxW/VeIgA/rancV72oBgej/Kb1z2Sasb+qsrhTV9qt0d+n+racrVeKeM2g2WqplS9A+ImGulrMsW2JG3dVEqYxlH1R2nwXdSUAKX+sRlXrAC5CHnKdP00nLc0i/lbrEft6s1/tjtUlxqng4sr98Iqs/q9Q5LtAa4SoVEEr4a8QztHNFcT7w7bwvbrHqcOmFjCOPwb619kvgd4HI0bpn3Qbyt7YId9DSVibvxlSImpbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gqZbRBaimtUBpwvNoE3za4Q+BTZ33nirepG7+JsrnTc=; b=bFBQcINLXihY8Wjv2x2E/1r3ntNtxVX9Mji3z8PbDzcVXK1fxFQsJo+aeMpzkHtStiyYa5/lbxCYy/Hi5vz6/jcOmsp+P7+wjSWcNwvlVchH1OjuB0fH3ZBnWYqUwS9xinoMrQDULNTs+01Qv3mh8/2XuYj2YeuifMjOhdzIFpquIF+gw6zMP14dvMLk4rfBj0AWJrfuDgcsYUGSdhweyQi/XXg50zdClEWmzl8S6HoffMMSkEh1pq8juFvaD20KK4sXfN/FesKn//FkRmiqtziE8XOrn9S1sH+D+QlMZH1xk1hhy0sdaAY4Gky7cLQmpJDnCJxTvLNSMinO111iUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=redhat.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gqZbRBaimtUBpwvNoE3za4Q+BTZ33nirepG7+JsrnTc=; b=JiFcwmKxP3P70dQjU28AoWLPmbeizjyrl8qSxlaqjv2gjL93R+GGcv+0f26CcaxYTXJ7fO2HjSqMsg0Hs5IuaGI2wZ35kFgLBt8khJ/Z1gD8lvkpqSHt52kqz0VZ5KNqczacHmDDC61dIxKu4SLT0k/VwEq4N1EsLz7PutWQxEw= Received: from MW4P220CA0023.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::28) by CH2PR12MB4150.namprd12.prod.outlook.com (2603:10b6:610:a6::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Tue, 1 Sep 2026 08:22:58 +0000 Received: from MWH0EPF000C6186.namprd02.prod.outlook.com (2603:10b6:303:115:cafe::81) by MW4P220CA0023.outlook.office365.com (2603:10b6:303:115::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.360.13 via Frontend Transport; Tue, 1 Sep 2026 08:22:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000C6186.mail.protection.outlook.com (10.167.249.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Tue, 1 Sep 2026 08:22:58 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Tue, 1 Sep 2026 03:22:54 -0500 From: Shivank Garg Date: Tue, 1 Sep 2026 08:22:40 +0000 Subject: [PATCH v2 3/4] KVM: selftests: add get_numa_mem_nodes() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260901-gmem-selftests-fix-v2-3-5a273153354c@amd.com> References: <20260901-gmem-selftests-fix-v2-0-5a273153354c@amd.com> In-Reply-To: <20260901-gmem-selftests-fix-v2-0-5a273153354c@amd.com> To: Sean Christopherson , Paolo Bonzini , David Hildenbrand , Shuah Khan , Jim Mattson , Peter Shier , Ricardo Koller , Ackerley Tng CC: , , , Shivank Garg X-Mailer: b4 0.15-dev-47d62 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788250963; l=2585; i=shivankg@amd.com; s=20260518; h=from:subject:message-id; bh=BBl1Tm7P/OzM+h2Kdl5bx0mDHHBfcZNO6rNdtpbVK/g=; b=Pz5rRQC2AqOpkSGhexYlcsC5dvyh3Eu8h+H7iPMurDSQUioA2rSHWtgFhYr65wICQNr3sAlDm cbf/0Gmx6HgAyntzf/DVZ1VA7DvFJQLYXthnZQ2vMG6DNW6gatrvkl1 X-Developer-Key: i=shivankg@amd.com; a=ed25519; pk=2l2QGTeXuGkZTtfmx0nPQU8iFZfjYmX/ymMojitevx4= X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000C6186:EE_|CH2PR12MB4150:EE_ X-MS-Office365-Filtering-Correlation-Id: b23c9297-491b-437a-7514-08df08023b1e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|82310400026|23010399003|376014|7416014|6133799003|56012099006|10067099003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: Ll2JlPbDVW8DLX5D/aGb96O4euzDM48weTAZHxBMSWwki1tI2R7Prs+0gIuS25tzrTfvonGLsejcfJjzq04Z9FvuxoDT1tSGAB64cgmxROxCzoUCcJtHODrFrPV1kJZLhK7FX+vS0JJTXB1M4TIFL9d9LehMPOAy3ad1d8upcQG3945mqJyOsVxfyegE64t+QChojzFlkCDWtxhCrG9yYTVIO6ecAL3Ln4AsCGvVTsDjY5EJIZQQX+Irbt1W7OJ/5FNhdFgjvuex77xUy7hysjq7hs2DuNSD351JebPLnoPfghwydN+ttqaK3yawk8lQjW6hoK7dVvkWd0r5F2zxJiwKtaFYoKKnfql8kzhkVyuulYXIlkIKZqFgDdaNMJIed50iU4i8RuCM6vrRvZ1sUHer7yqFdJy7yaV4G08pvD+VIKerZkQBVrEBTnxzBNGaDC1DQvmUO9awLcWwQEtEH4jrp5IsoeTcIcu8NISVBydOaX7Q5cFN5Y/Ay6Ol7WmE0tieAYzEXqUhVtOgOYYN55CWShRvva33bcrxSQ0PDB4/C0LpV6/0gsPqLkIoIzxuzom755VvObAbbvuQrIM2mKXwYipRjJLmA+17+5TcuqI1MsLx9HK5myCsVgTrl3TKsj42/QyqjDw6HWccQyCM/GUeVVxgQPzelQyh4JmWYntahyoK50PQWBPlDuY9mvVj/4M5GdMIn9FwGkylAeqAEQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(23010399003)(376014)(7416014)(6133799003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sJ8wIxa9HDuoRBtB/zb67kal7i9+1mJGOfEn7pmwfEJogw9N9wXAhLWaK1yhiVDatGESS9PZ5v+THyyCAZnEGQBOhQV85gdgbIxO9oUSStHEFSzFkLEdG3vQ3OK8osrxo7ikoVsj5au0qOZw97bn87CV1ZJ5pXAEGi7IaWLNu6TsK422d1HQ4YUJO4rBQtPXXOGo7oruE/pzs+TKwFWJoP8fzYyaF+YLqdqokAJYoZSkDIYVDLW4xZ1YCLxLl+hEjstEzKYndhXsmoxzRQGHAYekOfnuu+vfX2QdeuOrDBB93eS6XTUsRWZwslpo6a6Ev7bTFOz2AbhZCkcEHxtXf/xtMKhYpkjjQqpcnULlzI35CYJpoQolD1A5CeFoh2tquYwulSgIZGzI4f1yUMpUjxcEZWTKtfkDuR/s48kfS8moTbA+1GsZpFlFcpvFepql X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2026 08:22:58.3357 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b23c9297-491b-437a-7514-08df08023b1e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000C6186.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4150 The xAPIC IPI test uses MPOL_F_MEMS_ALLOWED to get the memory nodes available to the current process. Move the query to numaif.h as get_numa_mem_nodes() so other KVM selftests can use it. Call get_mempolicy() directly instead of using the assert-on-failure kvm_get_mempolicy() wrapper. The xAPIC test already asserts its two node requirement. Signed-off-by: Shivank Garg --- tools/testing/selftests/kvm/include/numaif.h | 13 +++++++++++++ tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 6 ++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/kvm/include/numaif.h b/tools/testing/s= elftests/kvm/include/numaif.h index 29572a6d789c..98cf77cfc481 100644 --- a/tools/testing/selftests/kvm/include/numaif.h +++ b/tools/testing/selftests/kvm/include/numaif.h @@ -6,6 +6,7 @@ =20 #include =20 +#include #include =20 #include "kvm_syscalls.h" @@ -75,6 +76,18 @@ static bool is_numa_available(void) (errno !=3D ENOSYS && errno !=3D EPERM); } =20 +static inline unsigned long get_numa_mem_nodes(void) +{ + unsigned long nodemask =3D 0; + + /* Get set of first 64 numa nodes available */ + if (get_mempolicy(NULL, &nodemask, BITS_PER_TYPE(nodemask), NULL, + MPOL_F_MEMS_ALLOWED)) + return 0; + + return nodemask; +} + static inline bool is_multi_numa_node_system(void) { return is_numa_available() && get_max_numa_node() >=3D 1; diff --git a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c b/tools/testi= ng/selftests/kvm/x86/xapic_ipi_test.c index e5706dd62d3b..b5f4ed671218 100644 --- a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c +++ b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c @@ -232,7 +232,7 @@ void do_migrations(struct test_data_page *data, int run= _secs, int delay_usecs, u64 *pipis_rcvd) { long pages_not_moved; - unsigned long nodemask =3D 0; + unsigned long nodemask; unsigned long nodemasks[BITS_PER_TYPE(nodemask)]; int nodes =3D 0; time_t start_time, last_update, now; @@ -247,9 +247,7 @@ void do_migrations(struct test_data_page *data, int run= _secs, int delay_usecs, fprintf(stderr, "Calling migrate_pages every %d microseconds\n", delay_usecs); =20 - /* Get set of first 64 numa nodes available */ - kvm_get_mempolicy(NULL, &nodemask, BITS_PER_TYPE(nodemask), - 0, MPOL_F_MEMS_ALLOWED); + nodemask =3D get_numa_mem_nodes(); =20 fprintf(stderr, "Numa nodes found amongst first %lu possible nodes " "(each 1-bit indicates node is present): %#lx\n", --=20 2.43.0 From nobody Sat Sep 26 13:18:34 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010047.outbound.protection.outlook.com [52.101.85.47]) (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 337BF59B56; Tue, 1 Sep 2026 08:23:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788251009; cv=fail; b=PdNWHl3XRKsGySQOGTACfF7h0NQZdxsS2+0VnvrBtY9Pzjov5426DxY66QYWGLIKlX+NUorncsaFG6TYHlA5STZRdSUWbrOuWGpfcaQg8Sxp/qt+Ij3exrJVl9KolQe61IGqicu3srx6JTZuvyAvall69k5vGKY9G/HId+qq6aQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788251009; c=relaxed/simple; bh=qZsi+lWaZPe33wazwqQ0e5b4+vXjBypkRgp+LGRfPYM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=lDIXYEwxVrz+MV7YFVVXK7udsKcPfkCizH1EVyQLFVwEdkIAl8OGbPylPPs3WWdh3+TA5SXYUCCNRdcnL+PZeSYji3QVQhmEdM1gVwIXFuWibhuYNJ9dke107nKqoXaWyxGYbrc/gASaYSQ8mejJyIuMuGiYtnRvxaWg44NHFBo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=NhBFM30V; arc=fail smtp.client-ip=52.101.85.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="NhBFM30V" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f4LMitPE7IFeH98cypJlY8pflor6UgQMawlYmci/w+XckwoJac79BmUseDHjSqL1gCxty33SzbsPdIKB7NZcsweR6dR3/b3WXaCpYLjYVjbS5Pxr+EUs9F5+AWSfbsw9oRCGA3FEyxsIcEA8pvWT1NXupjy+6FoaCwiXnGv+X462gwaeUVJmpalAqb5P2DY+W4NLePmol4Lrwat0qlDDbVRouwD17lAyBgCEt5ZUuf2EvEYa9tLeqJWfwsQ8y6eN6qvv8d4zEKj8DpVdrw7gWKhRDoXdks8SggAQn8Y8GVe2Eo03sjTfkK1mHlZfCqoberbNZXooX0Nlh1l1+//Hig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TXZFvQkcGJsmYnkTO32YQC7/xL8lKTen1UzNwphV69E=; b=RmcgRh+i6oz1Tkokp5TNf5x4NghRRtgeq53AvmTCoA1gEstrqPtb0Q5MzaIw26cVdSWlq/XI+3FLKItKQfHsUN+sO/TRBYmQ+bcxCUyNWosmThK19v9KRJ6O2Xg0ezkaI7Qobr61xzsTTUlXlL5vroVwVLWw4gHpHx/dGhdWqMueM0HmwPLyV5QruYgA2iIVYruls1GmELnoD9uDNHGMPNdwBAzL4adipuNqTf+FQYc6l9YrleupgsApWN1hLkBV+h/hDzC27OlI+APT3Aooba+a29IkSqYfRqlJgX/vdsU96VsXCy4MxBJuRWkOKiriNt126ZOqBTN2pNPk1mxp+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=redhat.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TXZFvQkcGJsmYnkTO32YQC7/xL8lKTen1UzNwphV69E=; b=NhBFM30VTE2WL2StI7g4prtFUM1Xh4D8Y1sFVU99nvXSatl0TZGv19Vyk8yrFG02artJQ8cUiHy8S1ipL37UKS1GzPZnzsCXOzEVNIj4usevcHw4mKcs4PYF48EyTgFq0OY4HQq+0Ip2sM8U4Xta2DC8c1oJuhJUEFAdFrZ9ANM= Received: from SJ0PR13CA0164.namprd13.prod.outlook.com (2603:10b6:a03:2c7::19) by LV2PR12MB5774.namprd12.prod.outlook.com (2603:10b6:408:17a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.8; Tue, 1 Sep 2026 08:23:01 +0000 Received: from MWH0EPF000C6185.namprd02.prod.outlook.com (2603:10b6:a03:2c7:cafe::a) by SJ0PR13CA0164.outlook.office365.com (2603:10b6:a03:2c7::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.10 via Frontend Transport; Tue, 1 Sep 2026 08:23:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000C6185.mail.protection.outlook.com (10.167.249.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Tue, 1 Sep 2026 08:23:01 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Tue, 1 Sep 2026 03:22:57 -0500 From: Shivank Garg Date: Tue, 1 Sep 2026 08:22:41 +0000 Subject: [PATCH v2 4/4] KVM: selftests: use allowed NUMA nodes in guest_memfd_test Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260901-gmem-selftests-fix-v2-4-5a273153354c@amd.com> References: <20260901-gmem-selftests-fix-v2-0-5a273153354c@amd.com> In-Reply-To: <20260901-gmem-selftests-fix-v2-0-5a273153354c@amd.com> To: Sean Christopherson , Paolo Bonzini , David Hildenbrand , Shuah Khan , Jim Mattson , Peter Shier , Ricardo Koller , Ackerley Tng CC: , , , Shivank Garg X-Mailer: b4 0.15-dev-47d62 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788250963; l=9668; i=shivankg@amd.com; s=20260518; h=from:subject:message-id; bh=qZsi+lWaZPe33wazwqQ0e5b4+vXjBypkRgp+LGRfPYM=; b=BUDZaINVBcm/LW9HWb6h1ah8gbNGmRAjPfErmKgtPMr+Hjg/X1z3jNzn5L3G36JwLdbBCF7k3 OhAWV3PsAMdBLee0mqOA+O+8RWIBt9GUu+LZCywbSVJy3As5NMmDyPx X-Developer-Key: i=shivankg@amd.com; a=ed25519; pk=2l2QGTeXuGkZTtfmx0nPQU8iFZfjYmX/ymMojitevx4= X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000C6185:EE_|LV2PR12MB5774:EE_ X-MS-Office365-Filtering-Correlation-Id: adccd9fe-f6f5-40a7-d6e8-08df08023cfb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|23010399003|36860700016|11063799006|10067099003|56012099006|18002099003|6133799003|22082099003; X-Microsoft-Antispam-Message-Info: GsOwRiro/Sdgge7B7pETQJiPFI+T4lnAxv4kNHo2YrTpyJ/Zykn4dg8KUUUlIwAvD0z8ZpjDI6dtknS65pQaIPALqaRdPitvrp29wli2eLSPTE8m9xIOqSVg5WElPlolB09Hh90qQx+QPSWjy0aRT/U8JhthmBziFLgEySMtIJQF56eTO+FGCebaVMTuXJM06kCa9i/vC0wEBiPIE9w1OMDOrlbB3GWdZl2BBcIpIVNgBE2rKyUV/IRK610wMO1opo8ImuhtCXDKXS9Lxu3kpcHwEO3O8OgfSdZRW34Nl3lJuNPm5nSkQHyjy/2mn+4ZbDEyboDRVB/fizYuWb6S3+4jeqf/MuGtuTv0dOfFa2pCb3kUs1ID8/uOKGac+5cioFZm3AEGU4fDaxWW8sSO9VWP9+3iVieosRJsDwE/Nz2MGQIaNPvEKqJTPmgY8DJmH4/fuwggHFV6tJB2hXRIhgngll+QYJL6n5Ym2jlasEq3o8Vls11oLHDNCJ6CiRshyYFcta4sadCi0kXpUNXdoM8Y0hh2U+K61MUGz1/7fgPYp0Qors+lsIibAodz/zd2RBMw7KNOtHxAlBfcVFZVZTMsTq1YNpxq/kZ8eyB8/HFFQkNIVm/Amlq/zCw5QD0JSi5JWiQtV9UC5GYwvuHOQxkM5mHBKQUwAUIr4xMCPY3Ge8lRAhgJRM+ewif/u5+u9iwkw937D23K46KpBdlyrw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(7416014)(376014)(23010399003)(36860700016)(11063799006)(10067099003)(56012099006)(18002099003)(6133799003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TQARpS5v0mBzchoDkmXZknt1f572/RqsoXg+6H4jOWUxQA6lPlL+XVO124yrNZTG3ySpMtvbJwzGkMT3oyZhdL8aQD8mUcV4Tza3Y74UXSrhFp/SNN3bCdLwqMtvSC6ZCutD6evCknKTKp2mDCrrfTHD1yUFK0h77U5RjUCANQec8Bqo0ChsUS7GjilJGt2hz/2CsfxgeVl0gcbsbPuFeinNeup2zAIrSXHTSC1xS8Z6fDfg8ukcaAOlEiuiLIOJ2wqPrtUw/pDLbzUw+buUs8kvVpgN5ud291r3nA9yAXl+Mgq3JWv1kgjiKdZzcbjGwJSAWUYc4qZ6d1AX4Vtg9/LzsG4FAUTuroi7o9yECUDQh+pRFz3gssI6pN6k0vAL3FVmX22NJ+RUeCKNQolxMTEOvi6SnausOUTArMvx5Vtj0fvvFnjfWq7ddcpjSEA+ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2026 08:23:01.4905 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: adccd9fe-f6f5-40a7-d6e8-08df08023cfb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000C6185.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5774 guest_memfd_test assumes that nodes 0 and 1 exist and have memory. is_multi_numa_node_system() only checks that the maximum node ID is nonzero, which is not enough for sparse or memoryless nodes. Select the required nodes from MPOL_F_MEMS_ALLOWED instead. Use the full nodemask width plus one to mbind(), and let test_mbind() run when only one memory node is available. The sysfs helpers for finding maxnode are no longer needed. Signed-off-by: Shivank Garg --- tools/testing/selftests/kvm/guest_memfd_test.c | 86 +++++++++++++++++-----= ---- tools/testing/selftests/kvm/include/numaif.h | 52 ---------------- 2 files changed, 58 insertions(+), 80 deletions(-) diff --git a/tools/testing/selftests/kvm/guest_memfd_test.c b/tools/testing= /selftests/kvm/guest_memfd_test.c index 2233d871a38f..aee80dda6229 100644 --- a/tools/testing/selftests/kvm/guest_memfd_test.c +++ b/tools/testing/selftests/kvm/guest_memfd_test.c @@ -76,33 +76,53 @@ static void test_mmap_supported(int fd, size_t total_si= ze) kvm_munmap(mem, total_size); } =20 +/* + * Fill @nids with the first @nr_nids nodes in the allowed mask. + * Return false if the mask contains fewer than @nr_nids nodes. + */ +static bool get_numa_node_ids(int *nids, int nr_nids) +{ + unsigned long nodemask =3D get_numa_mem_nodes(); + unsigned long nid; + int nr_found =3D 0; + + for_each_set_bit(nid, &nodemask, BITS_PER_TYPE(nodemask)) { + nids[nr_found++] =3D nid; + if (nr_found =3D=3D nr_nids) + return true; + } + + return false; +} + static void test_mbind(int fd, size_t total_size) { - const unsigned long nodemask_0 =3D 1; /* nid: 0 */ - unsigned long nodemask =3D 0; - unsigned long maxnode =3D BITS_PER_TYPE(nodemask); + unsigned long nodemask, bind_nodemask; + unsigned long maxnode =3D BITS_PER_TYPE(nodemask) + 1; int policy; char *mem; + int nid; int ret; =20 - if (!is_multi_numa_node_system()) + if (!get_numa_node_ids(&nid, 1)) return; =20 + bind_nodemask =3D 1UL << nid; mem =3D kvm_mmap(total_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd); =20 /* Test MPOL_INTERLEAVE policy */ - kvm_mbind(mem, page_size * 2, MPOL_INTERLEAVE, &nodemask_0, maxnode, 0); + kvm_mbind(mem, page_size * 2, MPOL_INTERLEAVE, &bind_nodemask, maxnode, 0= ); kvm_get_mempolicy(&policy, &nodemask, maxnode, mem, MPOL_F_ADDR); - TEST_ASSERT(policy =3D=3D MPOL_INTERLEAVE && nodemask =3D=3D nodemask_0, + TEST_ASSERT(policy =3D=3D MPOL_INTERLEAVE && nodemask =3D=3D bind_nodemas= k, "Wanted MPOL_INTERLEAVE (%u) and nodemask 0x%lx, got %u and 0x%lx", - MPOL_INTERLEAVE, nodemask_0, policy, nodemask); + MPOL_INTERLEAVE, bind_nodemask, policy, nodemask); =20 /* Test basic MPOL_BIND policy */ - kvm_mbind(mem + page_size * 2, page_size * 2, MPOL_BIND, &nodemask_0, max= node, 0); + kvm_mbind(mem + page_size * 2, page_size * 2, MPOL_BIND, &bind_nodemask, = maxnode, 0); kvm_get_mempolicy(&policy, &nodemask, maxnode, mem + page_size * 2, MPOL_= F_ADDR); - TEST_ASSERT(policy =3D=3D MPOL_BIND && nodemask =3D=3D nodemask_0, + TEST_ASSERT(policy =3D=3D MPOL_BIND && nodemask =3D=3D bind_nodemask, "Wanted MPOL_BIND (%u) and nodemask 0x%lx, got %u and 0x%lx", - MPOL_BIND, nodemask_0, policy, nodemask); + MPOL_BIND, bind_nodemask, policy, nodemask); =20 /* Test MPOL_DEFAULT policy */ kvm_mbind(mem, total_size, MPOL_DEFAULT, NULL, 0, 0); @@ -112,7 +132,7 @@ static void test_mbind(int fd, size_t total_size) MPOL_DEFAULT, policy, nodemask); =20 /* Test with invalid policy */ - ret =3D mbind(mem, page_size, 999, &nodemask_0, maxnode, 0); + ret =3D mbind(mem, page_size, 999, &bind_nodemask, maxnode, 0); TEST_ASSERT(ret =3D=3D -1 && errno =3D=3D EINVAL, "mbind with invalid policy should fail with EINVAL"); =20 @@ -121,17 +141,19 @@ static void test_mbind(int fd, size_t total_size) =20 static void test_numa_allocation(int fd, size_t total_size) { - unsigned long node0_mask =3D 1; /* Node 0 */ - unsigned long node1_mask =3D 2; /* Node 1 */ - unsigned long maxnode =3D 8; + unsigned long bind_nodemasks[2]; + unsigned long maxnode =3D BITS_PER_TYPE(bind_nodemasks[0]) + 1; void *pages[4]; + int nids[2]; int status[4]; char *mem; int i; =20 - if (!is_multi_numa_node_system()) + if (!get_numa_node_ids(nids, ARRAY_SIZE(nids))) return; =20 + bind_nodemasks[0] =3D 1UL << nids[0]; + bind_nodemasks[1] =3D 1UL << nids[1]; mem =3D kvm_mmap(total_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd); =20 for (i =3D 0; i < 4; i++) @@ -139,34 +161,42 @@ static void test_numa_allocation(int fd, size_t total= _size) =20 /* Set NUMA policy after allocation */ memset(mem, 0xaa, page_size); - kvm_mbind(pages[0], page_size, MPOL_BIND, &node0_mask, maxnode, 0); + kvm_mbind(pages[0], page_size, MPOL_BIND, &bind_nodemasks[0], maxnode, 0); kvm_fallocate(fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, page_siz= e); =20 /* Set NUMA policy before allocation */ - kvm_mbind(pages[0], page_size * 2, MPOL_BIND, &node1_mask, maxnode, 0); - kvm_mbind(pages[2], page_size * 2, MPOL_BIND, &node0_mask, maxnode, 0); + kvm_mbind(pages[0], page_size * 2, MPOL_BIND, &bind_nodemasks[1], maxnode= , 0); + kvm_mbind(pages[2], page_size * 2, MPOL_BIND, &bind_nodemasks[0], maxnode= , 0); memset(mem, 0xaa, total_size); =20 /* Validate if pages are allocated on specified NUMA nodes */ kvm_move_pages(0, 4, pages, NULL, status, 0); - TEST_ASSERT(status[0] =3D=3D 1, "Expected page 0 on node 1, got it on nod= e %d", status[0]); - TEST_ASSERT(status[1] =3D=3D 1, "Expected page 1 on node 1, got it on nod= e %d", status[1]); - TEST_ASSERT(status[2] =3D=3D 0, "Expected page 2 on node 0, got it on nod= e %d", status[2]); - TEST_ASSERT(status[3] =3D=3D 0, "Expected page 3 on node 0, got it on nod= e %d", status[3]); + TEST_ASSERT(status[0] =3D=3D nids[1], + "Expected page 0 on node %d, got it on node %d", nids[1], status[0]); + TEST_ASSERT(status[1] =3D=3D nids[1], + "Expected page 1 on node %d, got it on node %d", nids[1], status[1]); + TEST_ASSERT(status[2] =3D=3D nids[0], + "Expected page 2 on node %d, got it on node %d", nids[0], status[2]); + TEST_ASSERT(status[3] =3D=3D nids[0], + "Expected page 3 on node %d, got it on node %d", nids[0], status[3]); =20 /* Punch hole for all pages */ kvm_fallocate(fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, total_si= ze); =20 /* Change NUMA policy nodes and reallocate */ - kvm_mbind(pages[0], page_size * 2, MPOL_BIND, &node0_mask, maxnode, 0); - kvm_mbind(pages[2], page_size * 2, MPOL_BIND, &node1_mask, maxnode, 0); + kvm_mbind(pages[0], page_size * 2, MPOL_BIND, &bind_nodemasks[0], maxnode= , 0); + kvm_mbind(pages[2], page_size * 2, MPOL_BIND, &bind_nodemasks[1], maxnode= , 0); memset(mem, 0xaa, total_size); =20 kvm_move_pages(0, 4, pages, NULL, status, 0); - TEST_ASSERT(status[0] =3D=3D 0, "Expected page 0 on node 0, got it on nod= e %d", status[0]); - TEST_ASSERT(status[1] =3D=3D 0, "Expected page 1 on node 0, got it on nod= e %d", status[1]); - TEST_ASSERT(status[2] =3D=3D 1, "Expected page 2 on node 1, got it on nod= e %d", status[2]); - TEST_ASSERT(status[3] =3D=3D 1, "Expected page 3 on node 1, got it on nod= e %d", status[3]); + TEST_ASSERT(status[0] =3D=3D nids[0], + "Expected page 0 on node %d, got it on node %d", nids[0], status[0]); + TEST_ASSERT(status[1] =3D=3D nids[0], + "Expected page 1 on node %d, got it on node %d", nids[0], status[1]); + TEST_ASSERT(status[2] =3D=3D nids[1], + "Expected page 2 on node %d, got it on node %d", nids[1], status[2]); + TEST_ASSERT(status[3] =3D=3D nids[1], + "Expected page 3 on node %d, got it on node %d", nids[1], status[3]); =20 kvm_munmap(mem, total_size); } diff --git a/tools/testing/selftests/kvm/include/numaif.h b/tools/testing/s= elftests/kvm/include/numaif.h index 98cf77cfc481..b89559b6ea3c 100644 --- a/tools/testing/selftests/kvm/include/numaif.h +++ b/tools/testing/selftests/kvm/include/numaif.h @@ -4,8 +4,6 @@ #ifndef SELFTEST_KVM_NUMAIF_H #define SELFTEST_KVM_NUMAIF_H =20 -#include - #include #include =20 @@ -31,51 +29,6 @@ KVM_SYSCALL_DEFINE(mbind, 6, void *, addr, unsigned long= , size, int, mode, const unsigned long *, nodemask, unsigned long, maxnode, unsigned int, flags); =20 -static inline int get_max_numa_node(void) -{ - struct dirent *de; - int max_node =3D 0; - DIR *d; - - /* - * Assume there's a single node if the kernel doesn't support NUMA, - * or if no nodes are found. - */ - d =3D opendir("/sys/devices/system/node"); - if (!d) - return 0; - - while ((de =3D readdir(d)) !=3D NULL) { - int node_id; - char *endptr; - - if (strncmp(de->d_name, "node", 4) !=3D 0) - continue; - - node_id =3D strtol(de->d_name + 4, &endptr, 10); - if (*endptr !=3D '\0') - continue; - - if (node_id > max_node) - max_node =3D node_id; - } - closedir(d); - - return max_node; -} - -static bool is_numa_available(void) -{ - /* - * Probe for NUMA by doing a dummy get_mempolicy(). If the syscall - * fails with ENOSYS, then the kernel was built without NUMA support. - * if the syscall fails with EPERM, then the process/user lacks the - * necessary capabilities (CAP_SYS_NICE). - */ - return !get_mempolicy(NULL, NULL, 0, NULL, 0) || - (errno !=3D ENOSYS && errno !=3D EPERM); -} - static inline unsigned long get_numa_mem_nodes(void) { unsigned long nodemask =3D 0; @@ -88,9 +41,4 @@ static inline unsigned long get_numa_mem_nodes(void) return nodemask; } =20 -static inline bool is_multi_numa_node_system(void) -{ - return is_numa_available() && get_max_numa_node() >=3D 1; -} - #endif /* SELFTEST_KVM_NUMAIF_H */ --=20 2.43.0