From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) (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 7EAC52FC87A for ; Mon, 25 Aug 2025 14:57:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.196 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133857; cv=none; b=NZv0QyaxCCZl2X8kFianu7AKGPSbUY74zcSf0Pn/TVaaSIyw54LexZAvAPZFQYm+xAdItjgHnV43AZXw5G5M0UzDr/ixrfzEJyUY7xon05Cnni/E+lq/zKVfYBivn3ej/Jh7RLyV0qjuepTZrhAR4pAU7zcpj+Qn8wB07Now8FY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133857; c=relaxed/simple; bh=5SQHOFh1sUDEoQa/LsWjRDqFRqBAtXV8PziERqMxVJY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=cCFcyfMRA0H8Wm5qVBJdafhNmMU8eNhj6Lcwx5zpo18I8Q1IdsoUW3QBAFcoHd8KcPGAXK7r+j0OzqXgOYzVqtPrA1K/dRBFLQoauZG0X7rfHcnVbBpM7VlkLMINNbvPTo8cga4chzYTPrPPIYm761eGEQKi3CBJfcpGNYA9nwc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=U45/bRS6; arc=none smtp.client-ip=209.85.210.196 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="U45/bRS6" Received: by mail-pf1-f196.google.com with SMTP id d2e1a72fcca58-77053017462so1133054b3a.1 for ; Mon, 25 Aug 2025 07:57:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133854; x=1756738654; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SS8UElWYPBKNDeTRQOyijx7AjeTpgm/xr/2yY07TeYU=; b=U45/bRS6mtIk0S7Xl3Gc5ye+V/U6c5SiuMFFrUaS2fykbmQTPOMAj7wnH1653Akm1s PHxJd8ZBJPxFepuJFiaDjCSndeB4XiBEMsD5Tm7egNHI6hnY/lxVT8UQ0ssCzDffX29o esg8vb2bmKBxdWXBvKpXY0VKB/ANW80ZADXlJ52ANC76FjfgJFQP4hmmZEIlUEN1iGGQ ywpk658DjXNJTutBsl3HW2vIt224H2aan54En+nFMQPDDUqRd8OpJ5H1nW/LCLtouzez 6jHyKsGMI+vJVCWvmjKTrHK6cz3pg9fFo34CHcyQxICw/zb5FyvB5qEoPQSQjVhFcEjN nGiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133854; x=1756738654; 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=SS8UElWYPBKNDeTRQOyijx7AjeTpgm/xr/2yY07TeYU=; b=neTwJHrGyFi0CaxeLbz9jFquQ8Yx8kGNOM2ESffY8SdDat2SSP1SGgUtB96cw5snB3 sRBDsjCcUtt39FNmW8GA37v2mOAcwVbosl+FsxcdJhMoP5I09Hhw+bECY9J0mpIQXdzH TXwd4eYO3PtqJvj2+uIpnZHY8wBPtEi0e9DCSS9njIdS4lFTfg4WppzXR0x3nxAIDSgZ /y6jtqhpMaYAKp0Vz14EnX7PIDL1BgmDRHcPpBbRJ0a48gYM3AS7mgMIgZSqqUsD2aJW RLLJmRWQNyRBIUI4qtsOVaict3HoYa8NYZnzHrKl49kaMpcXIcVh+syJoCW1KooVpgaz Yryw== X-Gm-Message-State: AOJu0YzAwXlXxhYs2tZORcdqNWh/ocp/vl37iyzDhk1+NXJBzzkxWO+8 shTFZRNDZbEWcQ795h2M53jqUIdhOWEfedi5v7xc+Scjh3uDEboBX4FqDJcNIX6ODko= X-Gm-Gg: ASbGnct7Do+cew743xzkjac6lIslSnUbS0hFoRKp8YJs2DWF3Q+sdEc468zzpv0G6PD +y/45MOVahO+ShzeJisejrrHcygsbEXLYCqkw9r1pBM9uixsOKAZ+NOacChdLvXJktIu8rM2tJQ N6wOy4kpMDG8ixSCt4Meem8nZ6iwirZlb+AgJ+mp0QPVkJXpXzuyZrNmWtQPJL9WN3Le9+toeqT bWFNDr0fRYywfFBcVJOQ37kAkwJncpaz8ojBEuKlQI1ESQzgUwralg+cPktGMiPDnwPOK/d6d5J 1U1s92kOEnlVZzwIExnoa62ovBBLgpQHkIdKGNgjwvTsCQheBopOSR5Q1K18+pviqoHDGYCoY4m VB6E39jXrS8h0RyZwuKoN7RNnoukSUFkUfUKmqMRUteUauKH6WcjMgYKtQaKo X-Google-Smtp-Source: AGHT+IHz+meFfe4e38cUw2IZHOaqrwBamHHnHRSOwdnH4MJHnCKcgOHroPbVyCsbXw3Co2hLg9rpTQ== X-Received: by 2002:a05:6a00:3e01:b0:76e:885a:c33a with SMTP id d2e1a72fcca58-7702fc28b0cmr17435058b3a.32.1756133853573; Mon, 25 Aug 2025 07:57:33 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.57.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:57:33 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 1/8] mshare: Add selftests Date: Mon, 25 Aug 2025 22:57:04 +0800 Message-Id: <20250825145719.29455-2-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This patch sets up the selftests project for mshare and add a 'hello world' to project. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/.gitignore | 3 +++ tools/testing/selftests/mshare/Makefile | 7 +++++++ tools/testing/selftests/mshare/basic.c | 10 ++++++++++ 3 files changed, 20 insertions(+) create mode 100644 tools/testing/selftests/mshare/.gitignore create mode 100644 tools/testing/selftests/mshare/Makefile create mode 100644 tools/testing/selftests/mshare/basic.c diff --git a/tools/testing/selftests/mshare/.gitignore b/tools/testing/self= tests/mshare/.gitignore new file mode 100644 index 000000000000..406f31bd432c --- /dev/null +++ b/tools/testing/selftests/mshare/.gitignore @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only + +basic diff --git a/tools/testing/selftests/mshare/Makefile b/tools/testing/selfte= sts/mshare/Makefile new file mode 100644 index 000000000000..651658d091c5 --- /dev/null +++ b/tools/testing/selftests/mshare/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0 + +CFLAGS =3D $(KHDR_INCLUDES) -Wall -g -O2 + +TEST_GEN_PROGS :=3D basic + +include ../lib.mk diff --git a/tools/testing/selftests/mshare/basic.c b/tools/testing/selftes= ts/mshare/basic.c new file mode 100644 index 000000000000..482af948878d --- /dev/null +++ b/tools/testing/selftests/mshare/basic.c @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include "../kselftest_harness.h" + +TEST(basic) +{ + printf("Hello mshare\n"); +} + +TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) (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 3EBCD2FF66F for ; Mon, 25 Aug 2025 14:58:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133886; cv=none; b=YhHbAtSJsa8V9PsA98UjpBiZ5fg8GwOZ/ztiHqFfuM1KLLYCUdIBEOGTH2HRg1210y6rEUeCMYPUc6MIcw+UGK09OoMweKtv1kn8fNoO4960RPyYbia+xW1aHqGemlZrZW4vjwOsouxOAilX1z7muJk0X1wxFSyqKuCidWEyTxU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133886; c=relaxed/simple; bh=5SQHOFh1sUDEoQa/LsWjRDqFRqBAtXV8PziERqMxVJY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=TnUs+t1OgXNmTxMRcWgQyMcBfYu+zmfBseZAsNXR1jrjhF/aDRQvfWdeMTOzIlxk+nxeleoVLWusJoPxn1Q1mkHTwF9dg61c6HvagGGzuSMwbjADK0dmH1/29csRaKBGpJepqv6f33Fed9tOmhH6deB+UGO09C/exg5PG1hVCdg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=gIFGIof/; arc=none smtp.client-ip=209.85.215.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="gIFGIof/" Received: by mail-pg1-f195.google.com with SMTP id 41be03b00d2f7-b476cfc2670so3094319a12.3 for ; Mon, 25 Aug 2025 07:58:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133884; x=1756738684; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SS8UElWYPBKNDeTRQOyijx7AjeTpgm/xr/2yY07TeYU=; b=gIFGIof/9cANOhAxoLp/qDYt4MA2YVPp1dfTiF4O/hThF4diAtqxE/Y4FxZlveDzex WvFYtB9I/4V6aciUdgOmLYMlmVug/fYbPaIGKm2h9WpNRgBf4/Ckcjjmn2bRY1dNNHop 1svP0al8Zy7SpqnOUiol/QmLROkle3wnJ9Jy0tzZnNtj1M/1QnBpDQcOsMgH7a07B560 UPjdxeUNNQT3ohD0ONQVnfWlkGnWbAkiR/uTwzrZHq5Unl32b5lUKpyYiBiD6lrJf71o EGQ4bw9w56OpWgE1G4QAUwRWc5hIBSHVgc8YGeK5aGzt6brh/+ZdgGEgXKFF7hdZytCH 3h2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133884; x=1756738684; 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=SS8UElWYPBKNDeTRQOyijx7AjeTpgm/xr/2yY07TeYU=; b=D8q33V4SekakwZXb06MVFqz//RKjztZnepGYKAZrIDN3C8TiTNhOr7YZS30dSDoouU 2Ed1p42ofhKO4/63dPRoAxrVndhHLVpQrVYe1WnOb/Fa5m+qYGl1ruOZBMXE899JBdM6 FAX5R/uwPewLmd/Ok3ZAyRbMkHZe7o/K9xNlemfxrKBPd79r0K2tyr9ual9/1nlJqa7g UeeigYyY1h7gacslWwAXb/pZvkTOsXhcL62enSlktu1fjdwmOtB8k9DQy7sxF+tTqfwU voHkaoceANjrlR4P7bCWSK0T7n7Y92sGNdznsAtAEawnukPpy+5Tdd5X+oP5LzH5jRsH Mfxw== X-Gm-Message-State: AOJu0YwMftXxmCFl0tz3BcWy29GQQRjyiT5qJ48he77Qz57z1qX/WhQe l3UR5XRWaa5r+5rL8lsTyAxbu8s8P2sa/iiDXxd8VYD4ORsc/WkQrSLjljdeC0iVQCk= X-Gm-Gg: ASbGncv+n41iuQjyYkaCWq74v3M6V/oTtCAecdAJKUT9szNx+gIh1ExtIq4DeGHYwyu WUqGmd9Ztgv7GOGXN18skYr/AB/Qcrz3459iO+Zc8WcRn7wbgN8QWOpGwy72dYRU1xxGMLF/PAP 0DwqggOvKVgluoMgLHhx/sfQEuBJSvz2dZ/ZL9TOt/ldveOxN6OeZAX39xH5Fhf8LJWkAqN8sWo ZBDEOtwNKtC7WZrR96RQpDYSZBoiraKFeeV6Rv8TsB3qiRgdQsOMYpolSuUqKpRThzrRUqk1ii3 LWKjUQarL8U0AnshVKSV3zlajnJSqLnZ8raTYHvkBoQL1At5yZgRscBcWyLI7u5LgN3h/rEs0rV ErV/X6cgIuCKVugZ9E6v2fTWNeCcuwhxQIt1kFaXbMkyujfYa4taIuMlI05DX X-Google-Smtp-Source: AGHT+IHCWW/ShQpQHuPFTA6y+zNShKRdJnkteX326IPoMfo05QiaIWxdBNx+Yt2H9gYmCzshpIHnBQ== X-Received: by 2002:a17:90a:d60d:b0:31e:3d06:739c with SMTP id 98e67ed59e1d1-32517d1988fmr15265101a91.31.1756133884241; Mon, 25 Aug 2025 07:58:04 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.58.00 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:58:03 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 1/8] mshare: Add selftests Date: Mon, 25 Aug 2025 22:57:12 +0800 Message-Id: <20250825145719.29455-10-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This patch sets up the selftests project for mshare and add a 'hello world' to project. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/.gitignore | 3 +++ tools/testing/selftests/mshare/Makefile | 7 +++++++ tools/testing/selftests/mshare/basic.c | 10 ++++++++++ 3 files changed, 20 insertions(+) create mode 100644 tools/testing/selftests/mshare/.gitignore create mode 100644 tools/testing/selftests/mshare/Makefile create mode 100644 tools/testing/selftests/mshare/basic.c diff --git a/tools/testing/selftests/mshare/.gitignore b/tools/testing/self= tests/mshare/.gitignore new file mode 100644 index 000000000000..406f31bd432c --- /dev/null +++ b/tools/testing/selftests/mshare/.gitignore @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only + +basic diff --git a/tools/testing/selftests/mshare/Makefile b/tools/testing/selfte= sts/mshare/Makefile new file mode 100644 index 000000000000..651658d091c5 --- /dev/null +++ b/tools/testing/selftests/mshare/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0 + +CFLAGS =3D $(KHDR_INCLUDES) -Wall -g -O2 + +TEST_GEN_PROGS :=3D basic + +include ../lib.mk diff --git a/tools/testing/selftests/mshare/basic.c b/tools/testing/selftes= ts/mshare/basic.c new file mode 100644 index 000000000000..482af948878d --- /dev/null +++ b/tools/testing/selftests/mshare/basic.c @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include "../kselftest_harness.h" + +TEST(basic) +{ + printf("Hello mshare\n"); +} + +TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (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 600582FD1A1 for ; Mon, 25 Aug 2025 14:57:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133861; cv=none; b=s8hcagc7A/u2BzDO5bcA6+aWfjZS2WDFjvXusCGB8kIaH/g/CmxO6AF4NjXAN7HdBWdZlYuKhrXlaEusG3ruHl0YNZ+f4kCOEtU0KEhENaAJQxLcK2E1eIfG7oVnUUAtcjG1Fb+kqtid+FthxRFuESalNjjEKayxenjF0NqUZsU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133861; c=relaxed/simple; bh=I1KnJytDI98uzyU9VR0CMYknvs4wi7QfemM11ZziiWA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=g9sRQvQyRD+w45UDTpEe4360nzLdLlEjarCoJD5CaB5hLmKtLP6BdIypyN+NUHIJjXBFky1gF9mDSorB4HAXMwDzg5icjc6jDlq6MMOfXSReOFLl7acXwhkxnHO1EUxpMPksmYtcikFp49n/SDXKAo4wRrMUG5wy6SIVOoh7k8U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=VqTUePK+; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="VqTUePK+" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-77057c4d88bso1024101b3a.2 for ; Mon, 25 Aug 2025 07:57:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133857; x=1756738657; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SXrNbcwSvagaIiS5O7F6FLpYe+f/n3DenUIqxElurVQ=; b=VqTUePK+Ti8hEY7IFvvvAeFjp+G+fICLnxFbV2iCeOrggd8SC5+K0qAxjW0Ye7rI/9 DVR7YZA1539ptNqSnUJUhsQMErEzMW0AzaqQ/63pcFp0o5qPBIZniamX+8ChMNvQ5TZe 2PcsjaPloqk2RrNd5cuLShdre+AIzlVViRq6RNl9s/acucVXT4BTmag6DNJoK2i6AXRD 3Q2fJb06R7+wYxcsU+5SXLceGPUv56pdd+xgsE1zjwhbmLTp1fAht9KnJprqYGxyRQ0v ZIVJBDDPIv/Q9hdtlQ+a167K/EjI/fA2GHl9E8iWqK4PMR7MaW0rS3AjRzlYgxSEjdN5 Ae4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133857; x=1756738657; 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=SXrNbcwSvagaIiS5O7F6FLpYe+f/n3DenUIqxElurVQ=; b=i5xrAtydzJJ+NDTjZH36kEMiPR9wtpnZ8unnA9IIyn8i0LBxpMZxg5oEO5SKN/SPmO kiCUm5VhaKybR59e0HHj3u6EI0jeOp3sSkdWfBAi44jeyfuAwqtiE8/50GEzWA9oWUZN VXvEDMcRh2/WjI7wfgXAmD1t13uyVObnczGjoRbttFAM3rI87hZSQu00KSRbJ2mOI5WZ 9liUY67L7fXvZ94Zb2w2zrkgcxJSHRdFIviRUirPEDDqJKFohQexUjvc4xOrY7UlCJUB 1sKlCdlXUzKfC6X8G0H77qog9t/eB9UpTybqjtIlBI0Ka/gKUHbKv4Hfg3Q9b3Q90Vg5 V1eg== X-Gm-Message-State: AOJu0YxLv1hw7bqsLX1Yaxea/OcrJohXItQmVLo2Jf+27aoQWhYj4aRw w0GfBSMpKtKxkqQYJGYbAn8/EQwvEvgh0TusOgwA6Wan8qkhf/wdE0Y+fEnUCwL/igU= X-Gm-Gg: ASbGncsfT8T4wyNdIFJWJYvTHwmOD4N4iWYxUHEBdDw/pSc3dxKnmabM1SCq58rrzyA yA1qOUloMU081MiK7ZFHXrpNqbLJUmAM2ygbcavE9iDfhi5OZ0YniT/wsmf3nQ8bKCIn5TVopN9 q7lv/r6Kgddtu+H96QQr8iXT6QykkAd4+ektUwlX/59/lZBGoQDpn8TFR8277Nbu7pfI3dPPx0G 63AMDRYWwJ+l7ihYbv+2/2zbb/b4Al7KvgKxnTLWVRBQeah9vvXMhR4pm4Wbe15vgptokXNGt7R CqUDBUjpOZnLGMB0zTG0D74HQ9Ep3Ke+/FKdJ5kTuO/yF8aJKdSpWmHi2D98eGUOuq3IUU4fn6P QCPE8fwCHKNDSuMsmulgZ/zu0Hzuvjqy/eB1BnCRnFyL5xQXvSwRyJKoNHb85 X-Google-Smtp-Source: AGHT+IHPWyaefTjVEriFn6wD+uKtAOPue43MQG2E+07bD3h6ezfyNYQoVQXZCOE8Earcz4MwE2e68A== X-Received: by 2002:a05:6a00:2991:b0:770:3c63:5906 with SMTP id d2e1a72fcca58-7703c635b38mr12867003b3a.14.1756133857394; Mon, 25 Aug 2025 07:57:37 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.57.34 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:57:37 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 2/8] mshare: selftests: Adding config fragment Date: Mon, 25 Aug 2025 22:57:05 +0800 Message-Id: <20250825145719.29455-3-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" mshare test cases need pre-required kernel configs for the test to get pass. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/config | 1 + 1 file changed, 1 insertion(+) create mode 100644 tools/testing/selftests/mshare/config diff --git a/tools/testing/selftests/mshare/config b/tools/testing/selftest= s/mshare/config new file mode 100644 index 000000000000..16fd9a3ca12a --- /dev/null +++ b/tools/testing/selftests/mshare/config @@ -0,0 +1 @@ +CONFIG_MSHARE=3Dy --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (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 CB7EA3002C2 for ; Mon, 25 Aug 2025 14:58:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133890; cv=none; b=h76iDOhS+FkeRCS9kYVfGPVzZUB8CUji1M4zSpsg0YuwdcMcCrSeEArTFIZycAd8/Xwnkk3Us3pi7t3rIBydGdKPXU1pYaGJRG+yie5+XPrByaoJFXfRy4hFMr3Lf/4u+MdH/YwaYfuu2TgiWzRRzXAxWxsFstoUCMjbJ2bfyVk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133890; c=relaxed/simple; bh=I1KnJytDI98uzyU9VR0CMYknvs4wi7QfemM11ZziiWA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sgm0C36SsLJT8Lg/jMof2tqYAGeUhUL6B9IeTPpuQ19akceqBQfhn/KUvgfTaEK0s4Rqo9ijsr407f3vwPIWUarxF/Beemlbc7JHKxX32yAEGJDmIbXXOG1FM4Xq2dP75w2zoMroz4r4evnterclve5Ur7nDXFXVFcnsLYLeL5I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=fDqzC7VD; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="fDqzC7VD" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-770522b34d1so1277279b3a.1 for ; Mon, 25 Aug 2025 07:58:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133888; x=1756738688; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SXrNbcwSvagaIiS5O7F6FLpYe+f/n3DenUIqxElurVQ=; b=fDqzC7VDzSzJoucuPfUfalYyuBmv1F0hBzk1vBwhsdPTjfH3zgh3uPp5VWBY3NiFDS PIIyWuFi0rZGeNfP3CD+K1sKhCv4B+g3ruGwpyKnXJ5Vybaoe5oduwqjd8DoDWO6RpLO EWQ2POtI14bmm0Zncb9hcWlI5SDDDbxbLMHOiaEihF9fadnGLQwEoulGfUX5CFEYMbby EzDIHZvJglyBKrWz+Bk1VX5WiVEyQc4bmKDZgYrP1axQswQ6mhbgIaeyyOJblzgCKsx7 n0udJvHnuXGJ/ht0YIr4/ipioggvBrWOXV5wGlNE/PL9O5nTeOA3ExWq0nUMG4NEs38y tvGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133888; x=1756738688; 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=SXrNbcwSvagaIiS5O7F6FLpYe+f/n3DenUIqxElurVQ=; b=FFyhCiIz3cWdcvT+nEbc3lE7/pMdvlynbA7U9TEIqNZLq5uwdXmIDiCgYZD8rAACBH ywIkbzXXBrv35wyOBQSz1CWgPOvZ1vQcnvD/T6tjrFJJv1aNRVkVgN7r/24fjSEZvLnh X8b03Kr1Mu8jQmT7AqXS8zCuW7DUyDILaap7izvFs1ml8WgOTE5Q1p4miHIVI4xkutus S0/bx22QtMiHApG7X6oZsSe7txaxlwKIJ5XwNDTNMHDPW/ZTSNgds9zdsXv601Nkuv9j 7QjYr6MRS6dKBquTk0YWK9n2WYATEcsZFCilLJwqxvsEGxgtPd7DxcRsnxudpmx5F2g/ V3ww== X-Gm-Message-State: AOJu0YxRk8bPWKarDOA5Ukg7bly9nNOUkdWQpF5lqClEmcTMXLchUrTx v0T/N/yCxUm/kEpEwcM0r2zD+a4fo6eT2ocCuzQrGqkKdthgpJ4w0bIWFxSVPoJmuStRkJFUuF6 dnRFNazw= X-Gm-Gg: ASbGncsnQ9lSMC+oCMd11XjWA/hJ2Zwm5MIPWpEuWVX9hdmIwxJVz1E5vroxJBrlef1 xbSnYx/HhZfGOS83aJuuCQckbkVIb12lpkbWu8x2MzNPgwpam6ZOjZHGl4uBoZg7M2gd2maFFla nven69TYbTuK4v+Mb2TW/zmNgFUhhT8RltKUuyOl2rkgdQD9uL4RMfPUKeHUoTQRbinDk1yVwL1 sS4td5kyxH4EaxSv7w2awONMaV8TZNW10SGDxfULB5QeAF2mCeTywh4KmstoUmCC6sfuuI+dBXP Nxe2u9uJOyxTtNjfvIH9EMB66PEcY9rfiY4fj+tAJkN/cXAuBgdx2IXZyfp11i8XtNlG3RrXNsw YYYj33+WijR4aqXCQnf/TSr0rpq0biwc8JBXYKpLsH9jSNzCC/USd4nP12Lcd7ipegNwfTVI= X-Google-Smtp-Source: AGHT+IGrjnb45Fa7DHzuc6Ch7rwJg1bCnvoGJ7/OuXRvlJDXrJ/ha9DOEb+cFlOakG8+pSYCIswgXw== X-Received: by 2002:a05:6a20:a106:b0:220:1843:3b7b with SMTP id adf61e73a8af0-24340b58322mr18480454637.4.1756133888059; Mon, 25 Aug 2025 07:58:08 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.58.04 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:58:07 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 2/8] mshare: selftests: Adding config fragment Date: Mon, 25 Aug 2025 22:57:13 +0800 Message-Id: <20250825145719.29455-11-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" mshare test cases need pre-required kernel configs for the test to get pass. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/config | 1 + 1 file changed, 1 insertion(+) create mode 100644 tools/testing/selftests/mshare/config diff --git a/tools/testing/selftests/mshare/config b/tools/testing/selftest= s/mshare/config new file mode 100644 index 000000000000..16fd9a3ca12a --- /dev/null +++ b/tools/testing/selftests/mshare/config @@ -0,0 +1 @@ +CONFIG_MSHARE=3Dy --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (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 BF2F12FD7AA for ; Mon, 25 Aug 2025 14:58:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133894; cv=none; b=nKb825XB2Dl0C9DKzB5kTgBI/272PTl5Nl2BmMOuBlRj065CMLBdJhxnjtXzh61UeF6xttLZ+c2C3NrrfC0bfQAmjzk298Zxt7NOdgpIt5j+6FTDKwU7c9xzekqg0tv7hAIAAcmFV7tRQfJiq4UDSworQ1sZThb8kfcpRvN7yCM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133894; c=relaxed/simple; bh=Bmr1lemeGceCOOCpFzJX8MKVUDGl1j63D1/ZGEXinik=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Eb0HnpEsrs/w/IZma6CGzDaIJH1AX/bOgc+UMC8TUe/lMpEAB0LEoPDzmOob1W3cQMwfALdkzIMxsFTg5qlnweENdbMZjFm2+BHynXyM4ucFQNb1pewEaxom676QnRWvQyHBtf0SXdaPO4hDVwO3PQFixzMD3jKnAlS8a3XO9MU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=PP6Oil4z; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="PP6Oil4z" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-771e987b4e6so632616b3a.2 for ; Mon, 25 Aug 2025 07:58:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133892; x=1756738692; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jPfCdUbCeDFsUsPpoXasJyGte3SUGn6gCviPu/g9Nmk=; b=PP6Oil4zIqysVocqfrtBRegOgW7bqAGScXZ39WdNSleRSGQT5j1rVyDUG6h3I5w6GU V+hvB9y7OjZ6TG6QHRZDDq4qE8rZIFErtnWzObDG7HwVb7v3s1W52xk+YBRe9JO+ItfH e+DNOiMB2s8I1YKLzIAJBdQyKaxaxymkxjngrRKpWVRv2wMrsAGBbCl5w3iX+RgseuEx Ya4v9igjCMrUZRGLYcXl/FgVf3bSFJB6RqdJWRRcpEgbFaq5O0jzN0ISZtumiv0fhNrr gu61mMVm/w5dlpP7JXZKEV9r/rrHj57w+xCyUC2g+p+7XA1twKtv0wCgvktv09i+59Yx pTHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133892; x=1756738692; 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=jPfCdUbCeDFsUsPpoXasJyGte3SUGn6gCviPu/g9Nmk=; b=MT8r1xfDTCVl7zF5urvxOBE83qaqaqWVdG/FCHMw6I0f2H9EYz0f+C/s23vw4QD7iX eBAtfWnL/iboCbON54xRiSuU6XsddSe4lA+lWgEhsP6/ij6WMccdZ7gpEfljv0STcl7y L++yCtAqnwgV/NnO0fPkeePMmosKAUlsmZxrFJMTSEIp8+p67tLwGlb/rMIybXrqzWGE zdKahWl2V+eH2k7MZ0qHHY4f2WyjzNvHoBdoRMmCju08dDaH0ZPIWF7qv05nHdg6rQzG VuaH8YGZdoRdfyuo+kuULa6WQ8LfOm5dOYWF552CFLB95cuUcKFthxNKd0tFu4MTJEuh MZFA== X-Gm-Message-State: AOJu0YzwO+h294hAqcRDs6k9IaxilcJaetznWwljQnfbyjuPs08AVqNa /e1kxdmcgAosWENgiYVi3aXpGH6TLSPahHnVreYEvY0mgBtFWyuy187k/H/e+QGjtNI= X-Gm-Gg: ASbGnctl3pcgfvEToAIU44NydQxhVfA6/SGzQwgwd2SUzAWBhwWJvJW3PPIoIUtB7+B lTGj0n0R9zXceUz5FkiZjteCQP9mh9tQ0zZAt4APR6bEmBlm8VxMlsGpMcaHo4nwOuQotWGsfZT 8i0eDhKv2E8s8w8bN2WVy62yf2mAFKqZJupXtbb8HftG7oY92TA409ZA98mpRRKMzy+l4xtiz3a dZ3dwljwywBcOFQnQFTlJIz/p32QnlbYR6zodWkT+i+P5EwLkoFhnBMDbyGWQD8W60M1K80K+mB f/IfRwx9wWimPQT6XkzKnGpw1rF/9D+fB5Xwg+pmW2RkzcZKdZlslkcWGy91uidTYedgco6630C 2GcrkBK0Th9EM+pTSrjeM+zPldW/RmCzA3oQARy9SzhhWrMDP1vAFzI3Ef6ppPGNTNRQeRXE= X-Google-Smtp-Source: AGHT+IGf78VLrhzAmAq66Bf02kLMtH0Tbf7x+AP9+PSfFDcxdQBxs5I/UoUt+CpNFiVAJcIVaIt3dg== X-Received: by 2002:a05:6a00:13aa:b0:771:edda:1b9c with SMTP id d2e1a72fcca58-771edda1de7mr1932159b3a.14.1756133891940; Mon, 25 Aug 2025 07:58:11 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.58.08 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:58:11 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 3/8] mshare: selftests: Add some helper function for mshare filesystem Date: Mon, 25 Aug 2025 22:57:14 +0800 Message-Id: <20250825145719.29455-12-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Before create basic test cases, we need to have some helper functions to help setup the tests. These helper functions consist of: Mount and unmount the mshare filesystem Create a temporary file which be performed test on it later Map and unmap mshare region via the ioctl syscall Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/basic.c | 1 + tools/testing/selftests/mshare/util.c | 123 +++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 tools/testing/selftests/mshare/util.c diff --git a/tools/testing/selftests/mshare/basic.c b/tools/testing/selftes= ts/mshare/basic.c index 482af948878d..35739b1133f7 100644 --- a/tools/testing/selftests/mshare/basic.c +++ b/tools/testing/selftests/mshare/basic.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 =20 #include "../kselftest_harness.h" +#include "util.c" =20 TEST(basic) { diff --git a/tools/testing/selftests/mshare/util.c b/tools/testing/selftest= s/mshare/util.c new file mode 100644 index 000000000000..75f6ff25aa2c --- /dev/null +++ b/tools/testing/selftests/mshare/util.c @@ -0,0 +1,123 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include +#include +#include +#include +#include + +/* + * Helper functions for mounting msharefs + */ + +#define MOUNT_POINT "/sys/fs/mshare" +#define FS_TYPE "msharefs" + +bool is_msharefs_mounted(void) +{ + FILE *fp; + struct mntent *ent; + bool found =3D false; + + fp =3D setmntent("/proc/mounts", "r"); + if (!fp) { + perror("setmntent"); + exit(1); + } + + while ((ent =3D getmntent(fp)) !=3D NULL) { + if (strcmp(ent->mnt_dir, MOUNT_POINT) =3D=3D 0 && + strcmp(ent->mnt_type, FS_TYPE) =3D=3D 0) { + found =3D true; + break; + } + } + + endmntent(fp); + return found; +} + +bool msharefs_premounted; + +__attribute__((constructor)) +void mount_sharefs(void) +{ + msharefs_premounted =3D is_msharefs_mounted(); + if (msharefs_premounted) + return; + + if (mount(FS_TYPE, MOUNT_POINT, FS_TYPE, 0, NULL) !=3D 0) { + perror("mount"); + exit(1); + } +} + +__attribute__((destructor)) +void umount_sharefs(void) +{ + if (!msharefs_premounted && umount(MOUNT_POINT) !=3D 0) { + perror("umount"); + exit(1); + } +} + +/* + * Helper functions for mshare files + */ + +#define MSHARE_INFO MOUNT_POINT "/mshare_info" +#define MSHARE_TEST MOUNT_POINT "/mshare-test-XXXXXX" + +size_t mshare_get_info(void) +{ + char req[128]; + size_t size; + int fd; + + fd =3D open(MSHARE_INFO, O_RDONLY); + if (fd =3D=3D -1) + return -1; + + read(fd, req, sizeof(req)); + size =3D atoll(req); + close(fd); + + return size; +} + +int create_mshare_file(char *filename, size_t len) +{ + int fd; + + strncpy(filename, MSHARE_TEST, len - 1); + fd =3D mkstemp(filename); + + return fd; +} + + +int mshare_ioctl_mapping(int fd, size_t size, int flags) +{ + struct mshare_create mcreate; + + mcreate.region_offset =3D 0; + mcreate.size =3D size; + mcreate.offset =3D 0; + mcreate.prot =3D PROT_READ | PROT_WRITE; + mcreate.flags =3D flags; + mcreate.fd =3D -1; + + return ioctl(fd, MSHAREFS_CREATE_MAPPING, &mcreate); +} + +int mshare_ioctl_munmap(int fd, size_t size) +{ + struct mshare_unmap munmap; + + munmap.region_offset =3D 0; + munmap.size =3D size; + + return ioctl(fd, MSHAREFS_UNMAP, &munmap); +} --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (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 3067C2FD1D6 for ; Mon, 25 Aug 2025 14:57:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133864; cv=none; b=RsmF5oZriL5Ww435xEy50kCIqcowv2gL2OjDGIXjmbg0Ii2E88bDX3cPi1uxgOw+xu92IHoGE2TGkUKvoZBSBw7snaawyuhvbTzsoE1WKLyDT0UaMrb/I4/mE4FoVyKbcM8O070qG0VDQfp5O2hnHQ6K3qVLSYxowjTPM8pXWcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133864; c=relaxed/simple; bh=Bmr1lemeGceCOOCpFzJX8MKVUDGl1j63D1/ZGEXinik=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SyNknOCUZn2aEAameGVYcfpat5T+LVDAr0V831KxWk4g5oaeYFRa+0KUq2B4bwNiV7KLvHiK+hwtlC/cTjA2Fc6RnYQf9JFTxe+noEbwYCBz1EHcZoeBoTBk4Gjov84VcUriRLIvNIdff7rJeDEBISfY997XENnlSZwF7TiVkpQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=lV46seuQ; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="lV46seuQ" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-771eecebb09so559557b3a.3 for ; Mon, 25 Aug 2025 07:57:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133861; x=1756738661; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jPfCdUbCeDFsUsPpoXasJyGte3SUGn6gCviPu/g9Nmk=; b=lV46seuQSOteOzYdvjsMw2K5m2Y2K1oAfc939qst9Ubd5u4AhU0Msve4zgskYqApYZ oOfYs4losACAvl9+mgCho9hoh/e1qpF0HawBQI7tq+fSHttN1TkV/1ROsf9aXB/RsdUh 1M7TVzWeWOd3rep0Msd6KczohqezdGJF4zekRqTaJGP9ivY8hvTVLYjFmZ6cPGfudb3L UdtmqIkigh+Ojx/S8xrpfwmRj1GptVZu2brD96hxaf2ojGnPridPsSKJOpdUGO9/JNAz gSIaoCM6UOVa7rPa6HHbXPPKT74CChKMAWGO3zqk8SzLg9EqNpGAPoXkY1rOJp0RICah 4Eqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133861; x=1756738661; 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=jPfCdUbCeDFsUsPpoXasJyGte3SUGn6gCviPu/g9Nmk=; b=GGcLP3o50PDqOnR+yfU44XtXUKxqR78qRj/f7SrrtqmYpuCH9+E5qRm8EFu0SYNIz7 IK87wlQU1yR2Dv7OP9FjesOEMg8wVDrhG5YfDb1KgNJFJGKc+fhD0QXB1jbbtgx6ZUK2 YZfCCR3aClZVSLRaRXm9ir+XShGfTby0y0wGUi+cd8z0Pks/0HbqHuGRs9fud6mQ9zoy nKTB3XH14yqFbnoRUpsfucaGcdOkUWZnBJ1wXp529oD1/DR8hTtFn/FMHXlAABplGwVr BZN3QWxoKMOBflvd6ndoVRwKEm29Iurhoe6KbbsF2v/gIcnc0QpFlz8EJnABhHYl1vmv O5QQ== X-Gm-Message-State: AOJu0YyGV8g7XE8hlMibbDYcpWYRfl+Myxx2HyeTbsuHqku8r4zzcvis cBEM2S4yIiWK8sGFWwG2fU4/x8F7cLU46kj5p9aRIiAKn4BPUe7Yg51CM5bV0Khs2Sg= X-Gm-Gg: ASbGncvjU0QNgEi++7+kknFEpjc+86Bmp7TUQEqFaUR/OMl40/K2uMkeWBeZ6yBzkzI 2iwTElWFs+Iao+9TVWLSOqakOkTCikFX03SvsiLZIe4Ix/8OQHIHS8XR3VMGAzlyx7RwNdc32f5 +vBUudmy0q6RqxUa9P+0Dp77P2S0woXviBkykNqD9kRRmpOakEqZNZ3oJ3djsqpNd42rAlpNJiZ YlrIHvl5WJsORCWb+cK4FIaNJGxkVpIxtwLkjl6TRQeG3cUPToINbahMVCH8tV4R32L7jvP5wNA 1+8kJ1GffHGDuebZwC0P7sHqP2bRsvdcA8bamcPt4paWPYLuMVdJijv5PqlE9EnAEiPluKslAxB Cq9BqpVIAqw+7HMP37dvYC5gOYgN9HpQ2I3wNo1XdBP9j2wvkaT39URjD6nEawApa+WPnxgA= X-Google-Smtp-Source: AGHT+IGi8AlmioEDn8F5OEJC9Uwl85Px8BWcJiffXHL00QHD0rhIGgqp+SRRXzN7jCPLWKMu1CF5lg== X-Received: by 2002:a05:6a20:3ca1:b0:240:1204:dd5 with SMTP id adf61e73a8af0-24340c2b7ccmr16679364637.8.1756133861321; Mon, 25 Aug 2025 07:57:41 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.57.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:57:40 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 3/8] mshare: selftests: Add some helper function for mshare filesystem Date: Mon, 25 Aug 2025 22:57:06 +0800 Message-Id: <20250825145719.29455-4-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Before create basic test cases, we need to have some helper functions to help setup the tests. These helper functions consist of: Mount and unmount the mshare filesystem Create a temporary file which be performed test on it later Map and unmap mshare region via the ioctl syscall Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/basic.c | 1 + tools/testing/selftests/mshare/util.c | 123 +++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 tools/testing/selftests/mshare/util.c diff --git a/tools/testing/selftests/mshare/basic.c b/tools/testing/selftes= ts/mshare/basic.c index 482af948878d..35739b1133f7 100644 --- a/tools/testing/selftests/mshare/basic.c +++ b/tools/testing/selftests/mshare/basic.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 =20 #include "../kselftest_harness.h" +#include "util.c" =20 TEST(basic) { diff --git a/tools/testing/selftests/mshare/util.c b/tools/testing/selftest= s/mshare/util.c new file mode 100644 index 000000000000..75f6ff25aa2c --- /dev/null +++ b/tools/testing/selftests/mshare/util.c @@ -0,0 +1,123 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include +#include +#include +#include +#include + +/* + * Helper functions for mounting msharefs + */ + +#define MOUNT_POINT "/sys/fs/mshare" +#define FS_TYPE "msharefs" + +bool is_msharefs_mounted(void) +{ + FILE *fp; + struct mntent *ent; + bool found =3D false; + + fp =3D setmntent("/proc/mounts", "r"); + if (!fp) { + perror("setmntent"); + exit(1); + } + + while ((ent =3D getmntent(fp)) !=3D NULL) { + if (strcmp(ent->mnt_dir, MOUNT_POINT) =3D=3D 0 && + strcmp(ent->mnt_type, FS_TYPE) =3D=3D 0) { + found =3D true; + break; + } + } + + endmntent(fp); + return found; +} + +bool msharefs_premounted; + +__attribute__((constructor)) +void mount_sharefs(void) +{ + msharefs_premounted =3D is_msharefs_mounted(); + if (msharefs_premounted) + return; + + if (mount(FS_TYPE, MOUNT_POINT, FS_TYPE, 0, NULL) !=3D 0) { + perror("mount"); + exit(1); + } +} + +__attribute__((destructor)) +void umount_sharefs(void) +{ + if (!msharefs_premounted && umount(MOUNT_POINT) !=3D 0) { + perror("umount"); + exit(1); + } +} + +/* + * Helper functions for mshare files + */ + +#define MSHARE_INFO MOUNT_POINT "/mshare_info" +#define MSHARE_TEST MOUNT_POINT "/mshare-test-XXXXXX" + +size_t mshare_get_info(void) +{ + char req[128]; + size_t size; + int fd; + + fd =3D open(MSHARE_INFO, O_RDONLY); + if (fd =3D=3D -1) + return -1; + + read(fd, req, sizeof(req)); + size =3D atoll(req); + close(fd); + + return size; +} + +int create_mshare_file(char *filename, size_t len) +{ + int fd; + + strncpy(filename, MSHARE_TEST, len - 1); + fd =3D mkstemp(filename); + + return fd; +} + + +int mshare_ioctl_mapping(int fd, size_t size, int flags) +{ + struct mshare_create mcreate; + + mcreate.region_offset =3D 0; + mcreate.size =3D size; + mcreate.offset =3D 0; + mcreate.prot =3D PROT_READ | PROT_WRITE; + mcreate.flags =3D flags; + mcreate.fd =3D -1; + + return ioctl(fd, MSHAREFS_CREATE_MAPPING, &mcreate); +} + +int mshare_ioctl_munmap(int fd, size_t size) +{ + struct mshare_unmap munmap; + + munmap.region_offset =3D 0; + munmap.size =3D size; + + return ioctl(fd, MSHAREFS_UNMAP, &munmap); +} --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (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 849E1301487 for ; Mon, 25 Aug 2025 14:58:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133898; cv=none; b=VL+yAePmluOXrOi796hV4H4Yme2fjEoYAwxFES890j/gQqRKwbEVYZi2bWcXaxJSMdZ8LcIc48FPUswnubYzVJTkI18m82CoaPlhl1se36Vc2joKCpgdBWlg/STvLEqb7QYcPKJmQrk7GJIV1eRexQ3oiwVggtW68KlFl8XBHcQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133898; c=relaxed/simple; bh=uF4znN0JKpWwZRxgNIEH8MqnRz9lQ5HTl5xrH59tsJE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=EB6WXWeQImHMCDfHshtytO0Dxq3/oSP3Iiu0+fAtsSjRZr2+DkHY7ThjJr3n6R5CH+O4Lv6FvJw+6z61cty+JSsiTC35dZWzZuulqQ1bzATiFSBOgp+n3MtIw6mYC3HuljYDUALwgri+9gKxcHPgBSe0PcXemhtTuzq9tkLS+pg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=kPMfnH0k; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="kPMfnH0k" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-77053017462so1133594b3a.1 for ; Mon, 25 Aug 2025 07:58:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133896; x=1756738696; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=e+3wX2qQorY9HjJTcapV+Fc+oMOTnn7HyjyOkt8jkGk=; b=kPMfnH0kdMQMpMttu6FNZbXIIPRQaY6j9QDUVn0lMM2O7rVfM7U0ZygscFgnRKH6vJ mrcA3JKvSR/lRMpVEWIIbdwAtBv6iiBT2cXeJqzcS3SObSqOeAqj8Orgb7vWbwNpMIkq y2jRyS7bTKdx2UHeNXw+aIe8gRfNoRe59uN8ICol7N1qeOzvBK6jNyPEjtqihIOg76h1 FJRy3zV7hBqej5gbtfzdKPHdkbJmHf2gixs4LzleJMcFOHguESxdHuc/+JyYS19OVC8e WuCWRepd3G6Uy84XrvepylChbOF6JwCiTcp33tpUnXJmeW2yOL1i3FsmbaAiIeeqcAeY UxOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133896; x=1756738696; 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=e+3wX2qQorY9HjJTcapV+Fc+oMOTnn7HyjyOkt8jkGk=; b=JyVn6ZDuxY2Zynlq6psmqF+4yHaTUdDZty9YozhjpM9oUSdLRv0y6cKzM07KGiABsL pdJQoO18UW0HDPdm9mjLgr4P5s7pmi6iA7T+ebBq7/Fhrs86aDSbek2lz1YMqWYWummV eijIFMuo0Afe7dVrNn4pHyh4b9FCwwPwiwSkFZgaxkptDu1gsu/MEW6I0pHF+e5Kvz4P 5uI2puAc4/pM+eA7YczE/mwQAF9iwMIQfpZ9Q/FL/01ulIW0Pk+1W6YkDAT6zVMbUtxg d1uyUaS7FqtPXH50A27V2XhyZuxvMaBROoRBfgMlF9VG2R9D1TITbb+WtKjYQZrKM2Vh 6JqA== X-Gm-Message-State: AOJu0YwQcX++wq2MamgFfZNzdUBT+9d4ViLMshIqWVjfcZ/Uc8rDGNRm fRuH9V7PV62ksSq3cHStjAdDao4i3Rlf9g1hRx1WY9VSTzLSddlnLFKQWi6r7NWKHno= X-Gm-Gg: ASbGncuUylhRCHMu5y+RvonVYGmTzWTAJeXrC08VAvk2xwjCN1raP/rtQrj+h+CqHfx Rom/XrHpBQo9HYdkNFS9WtDO5FafPPXx/MLmmeVNqcp19c9jjZknqYtpD2aIX4CxZh+HgqXwy9D d7emLfySdrtxqTGs8pq/QSmCcHbpTLg818TEUwU9kYTbBRCdqrHEP/CnkwWTwC7Y8Ua9ZD6VHTm Tn1Zw+NxIvgqmEH/du/3HS3EVYOVE9zmgBsXDIwX2ci1mEUj8h01yv2PtBa/AimvijWPfMibFpm Atd64atW9oF8cfuLVJIWgqxrpAwLfYruFjtLu9/tQDBO1BW66Jx8D2pMfMqy3AOPck3kBywEPNl sf8wqYPCBJwyxAgKrX7iwTQb5mUqZkVfe50G+tkfZO9b3TR6QLPYGDArEKnx6 X-Google-Smtp-Source: AGHT+IGSZCY+q8MGo/Jnr4rtyaAqqyD29rBoj9ScLH5hoteOddGdtmlulcvDapltGRS/9Os/f0IGgw== X-Received: by 2002:a05:6a00:4b04:b0:76e:885a:c333 with SMTP id d2e1a72fcca58-7702fae24c4mr16042177b3a.25.1756133895786; Mon, 25 Aug 2025 07:58:15 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.58.12 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:58:15 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 4/8] mshare: selftests: Add test case shared memory Date: Mon, 25 Aug 2025 22:57:15 +0800 Message-Id: <20250825145719.29455-13-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This test case aims to verify the basic functionalities of mshare. Create a mshare file and use ioctl to create mapping for host mm with supportive flags, then create two processes to map mshare file to their memory spaces, and eventually verify the correctiness of sharing memory. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/basic.c | 81 +++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/mshare/basic.c b/tools/testing/selftes= ts/mshare/basic.c index 35739b1133f7..2347d30adfee 100644 --- a/tools/testing/selftests/mshare/basic.c +++ b/tools/testing/selftests/mshare/basic.c @@ -3,9 +3,86 @@ #include "../kselftest_harness.h" #include "util.c" =20 -TEST(basic) +#define STRING "I am Msharefs" + +FIXTURE(basic) +{ + char filename[128]; + size_t align_size; + size_t allocate_size; +}; + +FIXTURE_VARIANT(basic) { + /* decide the time of real mapping size besed on align_size */ + size_t map_size_time; + /* flags for ioctl */ + int map_flags; +}; + +FIXTURE_VARIANT_ADD(basic, ANON_512G) { + .map_size_time =3D 1, + .map_flags =3D MAP_ANONYMOUS | MAP_SHARED | MAP_FIXED, +}; + +FIXTURE_VARIANT_ADD(basic, HUGETLB_512G) { + .map_size_time =3D 1, + .map_flags =3D MAP_ANONYMOUS | MAP_HUGETLB | MAP_SHARED | MAP_FIXED, +}; + +FIXTURE_VARIANT_ADD(basic, ANON_1T) { + .map_size_time =3D 2, + .map_flags =3D MAP_ANONYMOUS | MAP_SHARED | MAP_FIXED, +}; + +FIXTURE_VARIANT_ADD(basic, HUGETLB_1T) { + .map_size_time =3D 2, + .map_flags =3D MAP_ANONYMOUS | MAP_HUGETLB | MAP_SHARED | MAP_FIXED, +}; + +FIXTURE_SETUP(basic) { - printf("Hello mshare\n"); + int fd; + + self->align_size =3D mshare_get_info(); + self->allocate_size =3D self->align_size * variant->map_size_time; + + fd =3D create_mshare_file(self->filename, sizeof(self->filename)); + ftruncate(fd, self->allocate_size); + + ASSERT_EQ(mshare_ioctl_mapping(fd, self->allocate_size, variant->map_flag= s), 0); + close(fd); +} + +FIXTURE_TEARDOWN(basic) +{ + ASSERT_EQ(unlink(self->filename), 0); +} + +TEST_F(basic, shared_mem) +{ + int fd; + void *addr; + pid_t pid =3D fork(); + + ASSERT_NE(pid, -1); + + fd =3D open(self->filename, O_RDWR, 0600); + ASSERT_NE(fd, -1); + + addr =3D mmap(NULL, self->allocate_size, PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + ASSERT_NE(addr, MAP_FAILED); + + if (pid =3D=3D 0) { + /* Child process write date the shared memory */ + memcpy(addr, STRING, sizeof(STRING)); + exit(0); + } + + ASSERT_NE(waitpid(pid, NULL, 0), -1); + + /* Parent process should retrieve the data from the shared memory */ + ASSERT_EQ(memcmp(addr, STRING, sizeof(STRING)), 0); } =20 TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (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 E8AF12FD7D2 for ; Mon, 25 Aug 2025 14:57:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133867; cv=none; b=cFgraFsDg09JCbVxcehR5g545tI2u2pG0d9J+pIuzTinLTsDQWZxjtYLgXPikL3qxokOHtF9hiQbybuMPsy8FU8nk/y9dChQ/HSm/Bckr1UNDL/Y0bIpLYyzMdA3f7LZvrnAiosLymQxvkfgTHmwU/x05G5f+8EeIalNGHBPzHQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133867; c=relaxed/simple; bh=uF4znN0JKpWwZRxgNIEH8MqnRz9lQ5HTl5xrH59tsJE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=byzt0axyBhQraH6IpgvkX7HUFErf8u7ffK1ge+RW3ekKfhNUOp6+2U1ZCLvPfY6gWbx0m3uz67wOpVC08xU4UeB818melS3ubbdewQVdnIhwXIkcJaLUzV3LLmZkQyhECsJZozY1D9hDTRqs2GOwXV60hxH4Gg7kpmtsqkfSOvQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=At8ZvItz; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="At8ZvItz" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-76e7af160f1so3076233b3a.1 for ; Mon, 25 Aug 2025 07:57:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133865; x=1756738665; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=e+3wX2qQorY9HjJTcapV+Fc+oMOTnn7HyjyOkt8jkGk=; b=At8ZvItzpJRAohPmB+3fqhVmvHGAVCk1GmNlOzPADLtJ2I0WBq35w6D2/ngj94tdDq GIt9u7mQGqOXOkJC97iT+xa6kWv3SX+roBQ7nLJkefjpuMqe0FHukBdAtjxcQU8tKZpb uJd2P3oTLUbhnMi1I3UOiPRm0pH6aMx9rsEqUsNtc3f735b+SAdJPOXg7G1h54ECBLzp pRpmLHct86RaUH5AtB5lPDn/Tg+LelgjzcpqJR1hvxk0vti294EEZooBiR7uRGyvkPrl nNCBemppKzqTf1KTJgm63mKTi3xR1NjBfzN0KwsRiR+j/7iQD3RT8xsWpO8ZFMhZdPYS Frug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133865; x=1756738665; 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=e+3wX2qQorY9HjJTcapV+Fc+oMOTnn7HyjyOkt8jkGk=; b=DbyCvHh3DUiC0eHuqXquRassUjHaTxL2k/qmIkqIGlFWeYwK5VKJfKZ0tipBaS5hs7 TjIfaC/y5mUkzr6xH+dAMezatrdOqX5ubI/vuW10RTu5yWT5zP2Twe5x02KlHZ86bcpy GSmoEVaTn+jqxrpgYKVsQFXwcuTumRCsl2VCcQP46hQgzgpddUsWWqJ5T1RgupeN9Kc+ KN+wTHz7fXyovodJepODO7zmNeM9xKMPaEIL6mTLq7zBFDJ1HantPe4wDUW5+XU74Idr YV7JimXZCQg9r8Gl621n8iUMX5DMAQahF96gFEN/A2jGenUxOx6ldHZx/5fJ3lL7WY+B cT+w== X-Gm-Message-State: AOJu0Yx4wINlXwaXz3bWXA+s1Fp8GdhBMb7fMpQ78O0D/8bxvYMyd7bI vukMiXhHoSo08onyUZDBFQVI6gNVZhW5RrGWeMr+8CWV3kf9WXYtRiLD65m7/pmwBnpoXkN1vVF xO8T/IyY= X-Gm-Gg: ASbGnctKkpGvbfoyEeWm8fKyoCLVnooPGN00WnV6D4JqaKjDSnwBc58NhhKqPu6m1in lAKNiij8Fm8yFOzRNJNQzPHziWJPoKl5N5ccf3+aRGYzQFn8TEekdUKf4CcdHWannrbHMmhOoD8 mYmj+GO5d5FVRWDTFGnmreK2je2zyEZplsGuz39ctqQUy8mq9+5J3AfK49sIi3g+0/U7zZ3NoLU 4c692q9ruBHlAHAlJjfWyS7iN6cpiGfx3QF3w002eEmx8GVHx0ragSlvvC2W1WgrDF7MC3yCHxY qV5N4LJ2JU3FNrHC1XPxDI2Em/sg6PLpqJqILtu/acj2wlpZtz5Um5zDwTmkyAztLt//vr+s73l 1rKaEKuAnrJK4TjtddL/9fKY9CMqM28Ck0aB4ENnyLO0YHR6JF/+n56IiaNHI X-Google-Smtp-Source: AGHT+IG029ngLH0Z0VBrJyvV3C0TtjVJCx48xckH0n599Ds5K4PkyEQjVQ5nnkIfx/oH8gYOcLg5pw== X-Received: by 2002:a05:6a21:3391:b0:243:78a:827f with SMTP id adf61e73a8af0-24340dbe653mr17737819637.55.1756133865176; Mon, 25 Aug 2025 07:57:45 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.57.41 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:57:44 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 4/8] mshare: selftests: Add test case shared memory Date: Mon, 25 Aug 2025 22:57:07 +0800 Message-Id: <20250825145719.29455-5-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This test case aims to verify the basic functionalities of mshare. Create a mshare file and use ioctl to create mapping for host mm with supportive flags, then create two processes to map mshare file to their memory spaces, and eventually verify the correctiness of sharing memory. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/basic.c | 81 +++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/mshare/basic.c b/tools/testing/selftes= ts/mshare/basic.c index 35739b1133f7..2347d30adfee 100644 --- a/tools/testing/selftests/mshare/basic.c +++ b/tools/testing/selftests/mshare/basic.c @@ -3,9 +3,86 @@ #include "../kselftest_harness.h" #include "util.c" =20 -TEST(basic) +#define STRING "I am Msharefs" + +FIXTURE(basic) +{ + char filename[128]; + size_t align_size; + size_t allocate_size; +}; + +FIXTURE_VARIANT(basic) { + /* decide the time of real mapping size besed on align_size */ + size_t map_size_time; + /* flags for ioctl */ + int map_flags; +}; + +FIXTURE_VARIANT_ADD(basic, ANON_512G) { + .map_size_time =3D 1, + .map_flags =3D MAP_ANONYMOUS | MAP_SHARED | MAP_FIXED, +}; + +FIXTURE_VARIANT_ADD(basic, HUGETLB_512G) { + .map_size_time =3D 1, + .map_flags =3D MAP_ANONYMOUS | MAP_HUGETLB | MAP_SHARED | MAP_FIXED, +}; + +FIXTURE_VARIANT_ADD(basic, ANON_1T) { + .map_size_time =3D 2, + .map_flags =3D MAP_ANONYMOUS | MAP_SHARED | MAP_FIXED, +}; + +FIXTURE_VARIANT_ADD(basic, HUGETLB_1T) { + .map_size_time =3D 2, + .map_flags =3D MAP_ANONYMOUS | MAP_HUGETLB | MAP_SHARED | MAP_FIXED, +}; + +FIXTURE_SETUP(basic) { - printf("Hello mshare\n"); + int fd; + + self->align_size =3D mshare_get_info(); + self->allocate_size =3D self->align_size * variant->map_size_time; + + fd =3D create_mshare_file(self->filename, sizeof(self->filename)); + ftruncate(fd, self->allocate_size); + + ASSERT_EQ(mshare_ioctl_mapping(fd, self->allocate_size, variant->map_flag= s), 0); + close(fd); +} + +FIXTURE_TEARDOWN(basic) +{ + ASSERT_EQ(unlink(self->filename), 0); +} + +TEST_F(basic, shared_mem) +{ + int fd; + void *addr; + pid_t pid =3D fork(); + + ASSERT_NE(pid, -1); + + fd =3D open(self->filename, O_RDWR, 0600); + ASSERT_NE(fd, -1); + + addr =3D mmap(NULL, self->allocate_size, PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + ASSERT_NE(addr, MAP_FAILED); + + if (pid =3D=3D 0) { + /* Child process write date the shared memory */ + memcpy(addr, STRING, sizeof(STRING)); + exit(0); + } + + ASSERT_NE(waitpid(pid, NULL, 0), -1); + + /* Parent process should retrieve the data from the shared memory */ + ASSERT_EQ(memcmp(addr, STRING, sizeof(STRING)), 0); } =20 TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (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 4F8DD30274B for ; Mon, 25 Aug 2025 14:58:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133901; cv=none; b=YFRTt5Jnyy7k5MNS5AAYZ/3jpyrXVCIKitI3899YgrGxQ/JK66aw3vlTQ1PjTFaBYtmMBrQiLQzvtg6HfKDsRyb6f+YxlUCgUWZ4SYqixgOxBrnHQMpRDoFRtUcuIRW4IkUZpQv8nYGSSpKkz8Yx/2U1v5by9AV/ku8uGep6WRg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133901; c=relaxed/simple; bh=xY16xtdVzGEfaeQq9IN656McbF+sKB7TIBPK2joy6Bc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MeobsrmVttseBZY/tKMVUo9CJXczLSaS1VAPXhjT2SiQWVn+Opl8pRD0KThW5MoLJsN6IjCZJLiO34jhvy1EkY5w6azZ5/vEsND9erpKX8e6U4SECLYp/3Ki6xghxI1zWzqcqhTNREYxa1GOsPoh7cf1vovlc9BQYDUYzq0TEb4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=QYjzM4hG; arc=none smtp.client-ip=209.85.210.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="QYjzM4hG" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-771e987b4e6so632752b3a.2 for ; Mon, 25 Aug 2025 07:58:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133899; x=1756738699; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=S4tDabwrjUnjyF2pNuKY+D/uJFltgF7p2tl2gzeMXdU=; b=QYjzM4hGHNZs0ObFLZZCcPYDz8SHcYkJHMjkYal3qyfKgytxEGrLnaq+YNI0A31hQO Lr63gk52wkvzarussEVjdS0m1m73vjsFVBA0d/dWIPB2QYUS12+U+ctexj/1/nGO27Qc UmQ3oKOabZjI3GUETskRKSgZ63Vk046DQx271f39yfd2ISYbZJF2P0A0Ecs3gMjH8ztw UDRhAInwHbQZggVvBiJMgL7DqPOGKoC0FEYwIetop/PMVeUvI69yMzfAWlDfEJG4OD5U KPUSpClOKkCNqSDAtnJ0+rXrAcItVXMo43xvShMl2VM8XfrBD0YYTExgTBbo03kFQWWI mpDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133900; x=1756738700; 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=S4tDabwrjUnjyF2pNuKY+D/uJFltgF7p2tl2gzeMXdU=; b=Ce1Y3CXnYvWjkQS53qQpgRFTCGA4GXMYT0++6flwsfsi0LtEsHDZ/axM5IbgVI6w9r KwH6Ub5zvSkUMLLIeaY1OveIpjVNsbhT7QQQq0YlKcIJIf8JXx32yZGU/RY4jo+hnmsF FJa/OU5o91xP0WH84PtK/oPfN+3OlUFKO6M0inamdr1CYoCfcvU5wmMjsqyJp/wqFi5Y cgCN4d4hFNRFfmPzQqHvRm5Yf4a88RIaZ06PdrhGdjUhd7EJnvPc+r5X9t/GmrqXFIsD DPlIxVCIL+O4YZev0egYIgoOzQsFVhm+AbOloPPnGNdMkm3gZc3U1yODunRG3dAU6ghw Vrng== X-Gm-Message-State: AOJu0YyCqioBP4fVqcYmHVvkw5DyKP8L7zSGe9akzdU4/4WjRcuv3Spc ZakCgA8AFrV/EcGmE8lz/zP9+j8opO0riLkwB3m+5MBrHf+vCECVfjs3jC/nlYJUqIQ= X-Gm-Gg: ASbGncvwtl0XBcpKouB7nN2KsFr8in279EZrjMlZSywZTIxHk+h4vm+eTqipYnEh5H8 vhnNnPTkI9rH4UGeheAr/TkFBckN61WpXmV1RQFpR/7piURfjbROFs2wHY1+XIQMfRFwREfjXz7 +Nqq/dU+Q63F+AMmQL2VZvSRFvLYrX5vBQxDHT8Y0qMVdjkiBgh6RaSMVa498Gt6gTqiwwPsmEz f6yq8PQixD61LXspPGfF3XSqQMUfSzFLmDhZYCShc3hszDcBTfjS3O68r0PQ+6S4YKdJeIVwb+e /lfFvDM/enuUF0EvfSiAq0ovia21F+daF2Ae25QiewDn0Rq9Yb/0BaJkmgeQtCCy47APRWh+cLA +tbIvJvZ7eaDm4Ihtcu6bfIIBM0ioXvWTyNaDzDk4QG2yZizmSFrZvRueE6Tp X-Google-Smtp-Source: AGHT+IE4HBpFp2FjPR/VhGO77A7Hf4iGpyorA58tgjMrbJX3zjiUolWr1Fp2pgViqY8L4woXW+eoFw== X-Received: by 2002:a05:6a20:7345:b0:240:195a:8333 with SMTP id adf61e73a8af0-24340bff9bfmr20854855637.14.1756133899572; Mon, 25 Aug 2025 07:58:19 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.58.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:58:19 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 5/8] mshare: selftests: Add test case ioctl unmap Date: Mon, 25 Aug 2025 22:57:16 +0800 Message-Id: <20250825145719.29455-14-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This test case aims to verify whether the process with guest mm will segfault when VMA of host mm is unmaped via ioctl(MSHAREFS_UNMAP). Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/basic.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tools/testing/selftests/mshare/basic.c b/tools/testing/selftes= ts/mshare/basic.c index 2347d30adfee..16d1f63c3ebe 100644 --- a/tools/testing/selftests/mshare/basic.c +++ b/tools/testing/selftests/mshare/basic.c @@ -85,4 +85,24 @@ TEST_F(basic, shared_mem) ASSERT_EQ(memcmp(addr, STRING, sizeof(STRING)), 0); } =20 +TEST_F_SIGNAL(basic, ioctl_unmap, SIGSEGV) +{ + char *addr; + int fd; + + fd =3D open(self->filename, O_RDWR, 0600); + addr =3D mmap(NULL, self->allocate_size, PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + ASSERT_NE(addr, MAP_FAILED); + addr[0] =3D 'M'; + + /* munmap vma for host mm */ + mshare_ioctl_munmap(fd, self->allocate_size); + /* + * Will generate SIGSEGV signal as ioctl has already cleaned + * shared page table + */ + addr[0] =3D 'D'; +} + TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (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 CAC9F2FDC5A for ; Mon, 25 Aug 2025 14:57:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133871; cv=none; b=QnLf1/9zHfQZoxvtntV5XMi8jvs8U1zIzRbr1P2kdA9kErqix4ODUwjTs83i/kPyvgp03AqaQ1Ki1qvoQomeCJsFnlUN6ySo7IqJU7fmTWnKH0ghQjsvAmfcjiZGlwBhojL3zkWfY4k3CGxomn04Q/m3AcRgMQzm2wpv07bdNSE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133871; c=relaxed/simple; bh=xY16xtdVzGEfaeQq9IN656McbF+sKB7TIBPK2joy6Bc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LVdnyD5hPtEltzR4Im1yFGI8b52i3UIvx1u5lvw47rsGILgfOT1iiCXrIs3RumOBJpO/9rS/n2oxLoTpDZbETs71lV8s8OyeTyLILHcvRi7tYM09u+SSEDQk5TwOhWiYPvFty08zowiH6bQTDnjlWPtLPsdH9NKa2EiYsQeeQbk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=HEgdlVMq; arc=none smtp.client-ip=209.85.210.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="HEgdlVMq" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-76e2e6038cfso4966884b3a.0 for ; Mon, 25 Aug 2025 07:57:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133869; x=1756738669; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=S4tDabwrjUnjyF2pNuKY+D/uJFltgF7p2tl2gzeMXdU=; b=HEgdlVMqfcNzg4t4NKdp0OlF4jZ1GAzoEPjWfmG9Rvf+D3pIqfViiHhdzsH1mtENtm h4u9U3wR8XAYu43ObhQXaKjSveEE33r0HnQarA37yWFBDiA825aQ6o1KXzKBoRIfGiKM U/VVO7LUzKfxjS1+XgQfvkHKMCgSA9qDT++ZsHB88UlgODcvmrPj29T491X8ZshTHOzC rRUq2c9BJmVvWjDB9EWZXTfCHz4T9bz1mVNxGYBD2H0rr3jUekKlIhcGc+7xf/hQYlcg 3ZuRQNNm5sPgOcGsAAoMbhX7fcGPnrZXLWfNZ5n5mJcG2jFVGdETbh6fcTKsN50lRrFv g5mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133869; x=1756738669; 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=S4tDabwrjUnjyF2pNuKY+D/uJFltgF7p2tl2gzeMXdU=; b=nbpIJdR1wckOaGIEa/7fHciUc+20x9ft31HruMd/47leMkQonEc/QUnEd2lxbM0Q03 g0z5YAz5sOLP1m42ihkKJ8xOu/g19f4ei6FwiGofUrdvjIgqkY9QCVqWf6ote0wq0z1z bxJ+mHT58k5HgFtLOr835It52J39/TSYQa9gmi95iMRX4oSN8q7zdn1K1Y+fo3O+cKQJ gDd3M7Geb/kmWlJa2vbgY9jqpFtbVyTkaOZwffNJhkXFStPoastUNpCD/iuzT6IdwobU A+OyJ2mqwNvvKqAqYCCAtp3J6Uxhh6sboMG2n1unFS2g9qjaWradnAh0uqR04vRO6RFj sz9A== X-Gm-Message-State: AOJu0YwqZEs7ljTDN431Em1xiysuNpQIubnDgLhHTdlepd2jNy8oZtBE lb5oCh0ToAOL90RgdIQa+78vY52DIOlFE7Bk462DWD73lQEi79Fvg4fs1NkkFN5Z6smq8+A/fK7 2FysHQFo= X-Gm-Gg: ASbGncv8U0227pkLZ6b2rNOOMgc0nZVWLRX4Lmc/odmvUvwnhd3qGeBSo85qHNdVkJY iHeja+X94hIcmo6fYw0kdoR7cgfq52xu5FaTnO1KMUHTd+tW4PZzeuET7dr891luzjzHsV/91PV oj0pcDKDxuUGaxUvYSwcI58bPyNGq5gdZJb1QPL4a/lBy3EDFjvwZ002lGFxqdPelaKLu52F1/H ttmCd6dAJXVrqeAc5Ppp/vh/AboMQMzn8tTzjIVshtYFpe2siPlF0ZntBl3cNeVa/bgpSgVktEi JB7KXMXGgcG9MJkY6idN8wVLKBfEB7osOBypHnmwn1uIJKC0ZLmgROlLejrt4JozrK4qwa+zaIf Ju+71wVk6uW+9313CLrh1SouMuswZ9CxxLKBPAmJt6ggf/rXlTf7nOKHudNhd X-Google-Smtp-Source: AGHT+IFQ75GZYr3N6HMX7zPn0dw0ZuYOLQe7vaWeVSJK+4VjzmhYfxDpWVGeXxn9RSIeBs/bIzorqg== X-Received: by 2002:a05:6a00:248f:b0:770:34f9:49d2 with SMTP id d2e1a72fcca58-77034f94ca1mr11670084b3a.1.1756133868947; Mon, 25 Aug 2025 07:57:48 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.57.45 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:57:48 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 5/8] mshare: selftests: Add test case ioctl unmap Date: Mon, 25 Aug 2025 22:57:08 +0800 Message-Id: <20250825145719.29455-6-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This test case aims to verify whether the process with guest mm will segfault when VMA of host mm is unmaped via ioctl(MSHAREFS_UNMAP). Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/basic.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tools/testing/selftests/mshare/basic.c b/tools/testing/selftes= ts/mshare/basic.c index 2347d30adfee..16d1f63c3ebe 100644 --- a/tools/testing/selftests/mshare/basic.c +++ b/tools/testing/selftests/mshare/basic.c @@ -85,4 +85,24 @@ TEST_F(basic, shared_mem) ASSERT_EQ(memcmp(addr, STRING, sizeof(STRING)), 0); } =20 +TEST_F_SIGNAL(basic, ioctl_unmap, SIGSEGV) +{ + char *addr; + int fd; + + fd =3D open(self->filename, O_RDWR, 0600); + addr =3D mmap(NULL, self->allocate_size, PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + ASSERT_NE(addr, MAP_FAILED); + addr[0] =3D 'M'; + + /* munmap vma for host mm */ + mshare_ioctl_munmap(fd, self->allocate_size); + /* + * Will generate SIGSEGV signal as ioctl has already cleaned + * shared page table + */ + addr[0] =3D 'D'; +} + TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (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 97D882FE060 for ; Mon, 25 Aug 2025 14:57:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133875; cv=none; b=mUww3HoeL/mwmQHkAU2jWjbrU2rk0rVP1DixTGyZmEo5VJEuX78PxzRYbinqZRduxxGwJrJU4gfL57wLleTAgMjaXVT3P2QkqTkCXDPQ8VuG7samiwfTBwD2weT30QUvnZQLAndSwOuxKI/qRYoUME3suTuF4UEhrC63oXPPZo0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133875; c=relaxed/simple; bh=dMbxmq897CRXL+9wK5op3TWg0dnVjEE/JIek66Xyqvc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=e93r+K5jlDUyrLhUw3LavFmy6pSg016PVj2cR1VO8jGY5l1Gld2sGUBeQsAuYh4bgW3Xq6IBtznFZiYh9TdIo0LtUglp+BJ3VqoS5EIfg96yOJTMi8P0EVmx6rvEDyzs7Wf7RU9vVBZPST37q0Ac6sZ3KFQcwZjE933W4jAqxqg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=JFh7CXIU; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="JFh7CXIU" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-76e6cbb991aso3869990b3a.1 for ; Mon, 25 Aug 2025 07:57:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133873; x=1756738673; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=frobiiF+V7JXOVqxsCpLilnhoxfx3g4fKn8gApXFwiY=; b=JFh7CXIUbY8pui0NTsgTwytFbIbm4tAWV3790iBfEzgX/TU1fwgocgwl3QOg+xF3ZR CAEIhXq81MPbJC24oLO0XA+pmvx727dOpluFx1fFjyf6PrGJV5/DCcjtzK0FPmT38aqh NA83lX07wY4F+M//i3nBqOsk/xVyb2eYlDtXiAgcCjJQT9hXMWq1CbA41d62GoyBqqCY 0dJw5OrBVauUWQR01VYiTvIrnzj28ctCzDN5xCA79yr+kG+bF8Zn4t08r9L0F6LDqKgM 7IYNXrfb3b6ZbLrhWLSZcQP/mEiBQwunlVb+qDkdf5IxfcokW90A7UIa9jqLx1X8tpUB Ravw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133873; x=1756738673; 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=frobiiF+V7JXOVqxsCpLilnhoxfx3g4fKn8gApXFwiY=; b=pl+1nbrAl1J8Bnz1PLT38hOyp+cRa6fWT1w0ncvHTtvrmUWsat4E/SwzytLQc0+e5H a+i6pQJwzF1R6On0E3Y5lE8uQBWa4fI6PXwCs1uF52ocHhc0FdDo1iHg+PQKba66zQuw jL5wfnUn0t58n801TCDUva+Xq9iHzQjx4/BY6hYZKtcAQarghBziridfxoPQhEFE/gZ4 u4IbZZ+Hd5EiO2KLJavl8xbPw/f67s82gkiJ09jCVp5lan+bM+N8pBgfgWey4STobtft bfl3ZDBZZqVWkrm1nTenlfCuodkPFz70BWfIvCNop06x9P3cv0yqlp0kZ5djl3Vq0drF 2BAw== X-Gm-Message-State: AOJu0Yxgyodgk+YndDh/LMgBNAm8RSHC5QDe5lvDnS79Ex75SMoPEwcm jCIcmzoiixwVcL23SvDCDEw2kP9bH+8BdU7lj+2cngW0Z//tkjoxeNNmxYuYvbmpNBE= X-Gm-Gg: ASbGncsof3l3Vuh3AUNFWxN1tfvUNMBAi79TzQlzYFwEDKPturEKUIVD/5JX+NIfyuN pAOA1S6uxMBwMjz1zASvxyCjil33vwrzHKw1YQfmMiSr8l6KumRxLc+6gAEPI39fTeL0gddfXLo XLjHqjbrc/dY/oST4m4yCBRiwI91Gwitll9yqAosVHqOHulYM+bBxZKH9PAbjz9ZvW8N6u0L8ff /RBX7JHvdSybbEE4Js/zmtUE/ksRQTZMNTQ37VEu7+BvKUgq1opTuizWBkZwhkTrM6+oMQ9sBt8 8GH8za1hjjYubYhNuzQMhSeq+4+hQ8yGRKTqSmoYFVPXSHbCJrwNdalhU4tq0ovnnSqN6E1Eu6+ mB/WFkzF92ZBa/XCnjA/THaRw2VhVyFgUlxmuBAktUuhNbivgyRFICnyEBfS65ChV4EfD0Zs= X-Google-Smtp-Source: AGHT+IFN3XgZGUydfFw4/mbd3YmT+QXstnE6CrDDlxBYxDb55CdCB22fpDRPMIk2g4/sSsJBoMDeZg== X-Received: by 2002:a05:6a20:734c:b0:240:1ad8:1821 with SMTP id adf61e73a8af0-24340b5e298mr17551742637.19.1756133872732; Mon, 25 Aug 2025 07:57:52 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.57.49 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:57:52 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 6/8] mshare: selftests: Add some helper functions for reading and controlling cgroup Date: Mon, 25 Aug 2025 22:57:09 +0800 Message-Id: <20250825145719.29455-7-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Before verify some complicated memory functionalities such as swap memory and THP, we need add some helper functions to controlling the cgroup (specifically, memcg). These helper functions consist: Create and destroy individual cgroup for test cases attach and dettach the test process to specified cgroup Read swap size and thp size from testing cgroup Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/util.c | 128 ++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/tools/testing/selftests/mshare/util.c b/tools/testing/selftest= s/mshare/util.c index 75f6ff25aa2c..94fddaea2c56 100644 --- a/tools/testing/selftests/mshare/util.c +++ b/tools/testing/selftests/mshare/util.c @@ -121,3 +121,131 @@ int mshare_ioctl_munmap(int fd, size_t size) =20 return ioctl(fd, MSHAREFS_UNMAP, &munmap); } + +/* + * Helper functions for cgroup + */ + +#define CGROUP_BASE "/sys/fs/cgroup/" +#define CGROUP_TEST "mshare-test-XXXXXX" + +bool is_cgroup_v2; + +__attribute__((constructor)) +void get_cgroup_version(void) +{ + if (access(CGROUP_BASE "cgroup.controllers", F_OK) =3D=3D 0) + is_cgroup_v2 =3D true; +} + +int create_mshare_test_cgroup(char *cgroup, size_t len) +{ + if (is_cgroup_v2) + snprintf(cgroup, len, "%s/%s", CGROUP_BASE, CGROUP_TEST); + else + snprintf(cgroup, len, "%s/memory/%s", CGROUP_BASE, CGROUP_TEST); + + char *path =3D mkdtemp(cgroup); + + if (!path) { + perror("mkdtemp"); + return -1; + } + + return 0; +} + +int remove_cgroup(char *cgroup) +{ + return rmdir(cgroup); +} + +int write_data_to_cgroup(char *cgroup, char *file, char *data) +{ + char filename[128]; + int fd; + int ret; + + snprintf(filename, sizeof(filename), "%s/%s", cgroup, file); + fd =3D open(filename, O_RDWR); + + if (fd =3D=3D -1) + return -1; + + ret =3D write(fd, data, strlen(data)); + close(fd); + + return ret; +} + +int attach_to_cgroup(char *cgroup) +{ + char pid_str[32]; + + snprintf(pid_str, sizeof(pid_str), "%d", getpid()); + return write_data_to_cgroup(cgroup, "cgroup.procs", pid_str); +} + +/* + * Simplely, just move the pid to root memcg as avoid + * complicated consideration. + */ +int dettach_from_cgroup(char *cgroup) +{ + char pid_str[32]; + char *root_memcg; + + if (is_cgroup_v2) + root_memcg =3D CGROUP_BASE; + else + root_memcg =3D CGROUP_BASE "memory"; + + snprintf(pid_str, sizeof(pid_str), "%d", getpid()); + return write_data_to_cgroup(root_memcg, "cgroup.procs", pid_str); +} + +size_t read_data_from_cgroup(char *cgroup, char *file, char *field) +{ + char filename[128]; + FILE *fp; + char line[80]; + size_t size =3D -1; + + snprintf(filename, sizeof(filename), "%s/%s", cgroup, file); + fp =3D fopen(filename, "r"); + if (!fp) { + perror("fopen"); + return -1; + } + + while (fgets(line, sizeof(line), fp)) { + if (!strncmp(line, field, strlen(field))) { + char *value =3D line + strlen(field) + 1; + + size =3D atol(value); + break; + } + } + + fclose(fp); + + return size; +} + +size_t read_swap_from_cgroup(char *cgroup) +{ + if (is_cgroup_v2) + return read_data_from_cgroup(cgroup, "memory.stat", "pswpout"); + else + return read_data_from_cgroup(cgroup, "memory.stat", "swap"); +} + +size_t read_huge_from_cgroup(char *cgroup) +{ + if (is_cgroup_v2) + return read_data_from_cgroup(cgroup, "memory.stat", "file_thp") + + read_data_from_cgroup(cgroup, "memory.stat", "anon_thp") + + read_data_from_cgroup(cgroup, "memory.stat", "shmem_thp"); + else + return read_data_from_cgroup(cgroup, "memory.stat", "rss_huge"); +} --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (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 45660302CC3 for ; Mon, 25 Aug 2025 14:58:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133906; cv=none; b=LbXV4VNCIOR11OCzNskF1uw+0PVZY66MnpShBHoP4svfSM3D/zrBn9hNieFSwq36kMmASoAw+DlmTn/vBd9JjKK6/YD4yXT005Q+7LN0kJ8uwNLTSIaW2p4Zyh8r8FBQ6K9HFROYjKvqzsATkwwUXqGH1LFXO6VC3uOw0Rja6jY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133906; c=relaxed/simple; bh=dMbxmq897CRXL+9wK5op3TWg0dnVjEE/JIek66Xyqvc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gcSulDiWm+AtlEu1XdJQhcUf1cSaf9DLLSk5x9OJhcttqeXSdi0WQ0rm/JcQT7O1LbVnr6G7o41sdlcQjYbRfWYf+5tiCb49DyOA7sTmAGFVSXYGnqeebsr7FTXYdbRf+Omz+pqm8UcPOGB7ImBRjxMEGL3ynpEnFpuqOfGusc4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=gdTzak8L; arc=none smtp.client-ip=209.85.210.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="gdTzak8L" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-771e4378263so812348b3a.0 for ; Mon, 25 Aug 2025 07:58:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133904; x=1756738704; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=frobiiF+V7JXOVqxsCpLilnhoxfx3g4fKn8gApXFwiY=; b=gdTzak8L5/5zYLHB7l3xmmQnZLq5/R3UrnP8rtHV74KHAi4DdiYYwQT6Tfa67rBBsn wyFZGnbQgXNoCsiMaYEUYPZkOl79bLv2W0ED8euDrZi3Fhppr062iHn02an5oRVDmglX nPZPnGOkkXrJAfWcHSPnOI9skhkyzE8bYZOLB/E7ih0CpbqRftb7xs3AxcqmQUR00PbI 2tZ5Fgkt8izBo3T5XYpKmNUTSsxOik1rVbuimclCvkLWFLyJRQDcMW2kBEWpaOgG9bPq t5zVxVxbjdOrosGMXRymoBB1rjAAQd6SnUE/8G8gnpJwlgE7rVLjcNoHgyXN5DRZTIj7 7F1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133904; x=1756738704; 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=frobiiF+V7JXOVqxsCpLilnhoxfx3g4fKn8gApXFwiY=; b=ljmJbQM0L5/4B+RCbmI2dKIPy0mtv4zNZ7QZn59mSf+JfF5lyzmfwjdUaHSghn7faT cH71bpb1rUSuCFRp8tfD093xPH82/v3ZcYpIouTlbn6hX7pfg2zqOKtJ/Aqwj+8Oqpig dOYOwmT+rUHJIH8ti9QclUYJAJW5VOSO2Rsq25IXb4gcE53dfpgGNI1busiw7KNPOKPv qBrcnUEFE7qqMUKZ6JtvcTjd0ipGifG9NlESycKHMv7f/TCJ8ZPCe7fPGpGbiRHzmbfO WHc622aLFoPr4chuRtfBrEDZnCWxYNTTPEwcTtqV6KSiTI/bJmHqj53rGUF1h97fE12r zX1Q== X-Gm-Message-State: AOJu0Yz3RFTL43DMLH4C3dGkpi+wWANsIvu7CpwY1FVxd0F0ERQtnu4K M0ekIRwrxCV4+642g9dDK5HZF57MtQYzj2C01lTeOPJWUxlad7HAAKvzBy8gNF4i7Bc= X-Gm-Gg: ASbGncu8DXEOcYSt4BqvuA6BdRpC9zWxVmId/wJzOGrCJaGs3e7uBeGmnD3ZCJsbnS2 EYfGChjss+bktSL02LEh96oa4NtuPBu/vIsOs7P2ebp76xZQNhNIvASCPKffNuNuuMcHCni1nmf xd2afxMYm9SR5t76A4NU8Gy/9wMIGh9SC62Cc8xXCRWIJZ8aBg2IHVf9/5VwxxGcyqpBurdRCsm RjEAyFhSFHvpkFkzGTzwmTiiVk89Q2LEHBCx2lVg/zT3TI7nTtjkT1tbjPvJzdb19p7DIWLN/og Jxbkkew0eayaHS6HAlzhvq2tsos7hm+1xRaqk5up5p6Mj9kUKAJCFaGBqF4TbTBh9ObFUYwig+D 5ZDviIhKl+vc9MvwOafUGB2bKC+79ccUiyyESAgjWVvZDklepK9o8TsiULlsr X-Google-Smtp-Source: AGHT+IG7Oofc5Cp5x58qIccTW/mt1D9LGI3RCFnvY/URUYZhtnINl3UlS8zIeItcw+B6/b2CMeUqrg== X-Received: by 2002:a05:6a20:3942:b0:240:d14:c7e3 with SMTP id adf61e73a8af0-24340c1475emr19568752637.24.1756133903397; Mon, 25 Aug 2025 07:58:23 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.58.20 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:58:23 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 6/8] mshare: selftests: Add some helper functions for reading and controlling cgroup Date: Mon, 25 Aug 2025 22:57:17 +0800 Message-Id: <20250825145719.29455-15-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Before verify some complicated memory functionalities such as swap memory and THP, we need add some helper functions to controlling the cgroup (specifically, memcg). These helper functions consist: Create and destroy individual cgroup for test cases attach and dettach the test process to specified cgroup Read swap size and thp size from testing cgroup Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/util.c | 128 ++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/tools/testing/selftests/mshare/util.c b/tools/testing/selftest= s/mshare/util.c index 75f6ff25aa2c..94fddaea2c56 100644 --- a/tools/testing/selftests/mshare/util.c +++ b/tools/testing/selftests/mshare/util.c @@ -121,3 +121,131 @@ int mshare_ioctl_munmap(int fd, size_t size) =20 return ioctl(fd, MSHAREFS_UNMAP, &munmap); } + +/* + * Helper functions for cgroup + */ + +#define CGROUP_BASE "/sys/fs/cgroup/" +#define CGROUP_TEST "mshare-test-XXXXXX" + +bool is_cgroup_v2; + +__attribute__((constructor)) +void get_cgroup_version(void) +{ + if (access(CGROUP_BASE "cgroup.controllers", F_OK) =3D=3D 0) + is_cgroup_v2 =3D true; +} + +int create_mshare_test_cgroup(char *cgroup, size_t len) +{ + if (is_cgroup_v2) + snprintf(cgroup, len, "%s/%s", CGROUP_BASE, CGROUP_TEST); + else + snprintf(cgroup, len, "%s/memory/%s", CGROUP_BASE, CGROUP_TEST); + + char *path =3D mkdtemp(cgroup); + + if (!path) { + perror("mkdtemp"); + return -1; + } + + return 0; +} + +int remove_cgroup(char *cgroup) +{ + return rmdir(cgroup); +} + +int write_data_to_cgroup(char *cgroup, char *file, char *data) +{ + char filename[128]; + int fd; + int ret; + + snprintf(filename, sizeof(filename), "%s/%s", cgroup, file); + fd =3D open(filename, O_RDWR); + + if (fd =3D=3D -1) + return -1; + + ret =3D write(fd, data, strlen(data)); + close(fd); + + return ret; +} + +int attach_to_cgroup(char *cgroup) +{ + char pid_str[32]; + + snprintf(pid_str, sizeof(pid_str), "%d", getpid()); + return write_data_to_cgroup(cgroup, "cgroup.procs", pid_str); +} + +/* + * Simplely, just move the pid to root memcg as avoid + * complicated consideration. + */ +int dettach_from_cgroup(char *cgroup) +{ + char pid_str[32]; + char *root_memcg; + + if (is_cgroup_v2) + root_memcg =3D CGROUP_BASE; + else + root_memcg =3D CGROUP_BASE "memory"; + + snprintf(pid_str, sizeof(pid_str), "%d", getpid()); + return write_data_to_cgroup(root_memcg, "cgroup.procs", pid_str); +} + +size_t read_data_from_cgroup(char *cgroup, char *file, char *field) +{ + char filename[128]; + FILE *fp; + char line[80]; + size_t size =3D -1; + + snprintf(filename, sizeof(filename), "%s/%s", cgroup, file); + fp =3D fopen(filename, "r"); + if (!fp) { + perror("fopen"); + return -1; + } + + while (fgets(line, sizeof(line), fp)) { + if (!strncmp(line, field, strlen(field))) { + char *value =3D line + strlen(field) + 1; + + size =3D atol(value); + break; + } + } + + fclose(fp); + + return size; +} + +size_t read_swap_from_cgroup(char *cgroup) +{ + if (is_cgroup_v2) + return read_data_from_cgroup(cgroup, "memory.stat", "pswpout"); + else + return read_data_from_cgroup(cgroup, "memory.stat", "swap"); +} + +size_t read_huge_from_cgroup(char *cgroup) +{ + if (is_cgroup_v2) + return read_data_from_cgroup(cgroup, "memory.stat", "file_thp") + + read_data_from_cgroup(cgroup, "memory.stat", "anon_thp") + + read_data_from_cgroup(cgroup, "memory.stat", "shmem_thp"); + else + return read_data_from_cgroup(cgroup, "memory.stat", "rss_huge"); +} --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) (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 3F5F12FDC2F for ; Mon, 25 Aug 2025 14:58:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.196 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133909; cv=none; b=Q5Q/cxvx22uP1bGyZsakCBQYyu033sTdZpi+Z+6XOqohI3bA6k+rzj9iBwNIal/WqWhTPTN9uvvXVz0q/5crK8Wc9DRCiYlwGtp7FhgsQfCMDL6JDrWp0m5BtIlWbXcxXD5yRynUmPx+9Ilj9kNWZRuDPg4bm9OhV3n42Ew+3x4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133909; c=relaxed/simple; bh=yEaGdYH4e/wFbvvvHuP3fH2igWfLZ3eT3LgaOFr8VUs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=I6KNt/TMWZiDsKynX36ERQ2S/uE9OXVdt5y9xLSuuIZy4UhifHvis0YIV7dm/y9PPO99FPAOfgUuI9S5fM+t27aOzVW+7Jd0uGCygUVHkN8oAvH/sAhxQbi1+leJHM9Aw0O4sR2DymtjYVF/LjYeSyDhsLE7Q0sfGyesYR/vZ5s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=ejlUEnDp; arc=none smtp.client-ip=209.85.210.196 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="ejlUEnDp" Received: by mail-pf1-f196.google.com with SMTP id d2e1a72fcca58-7704f3c46ceso1289535b3a.2 for ; Mon, 25 Aug 2025 07:58:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133907; x=1756738707; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8oaQVHpJSfD6iISTq4Fs9qiBmXO38S9TJM+RHgKSb1U=; b=ejlUEnDpGvKxqkLi6jsY+aejI9mL9LBsFOmljmYXEGPjQiJv7gwjcU7CdepHMq7S1F OBfLCMcsXN2k3BKuTkJaXqK7RuWO8IR8WZ8mlAbTcTwhh9TBGC14KqQECfKgqV/0MfQA V8w/y7VgKW3LIc8XNeyLV2ac+777HhhuVbdewGin00zqRl71dwE/9B11GADUrKwAP/B8 KiBYCFSd9LLen3zSDW3VK1kT4V4BTX7lSBOnGdJE/9kZnmAJL/B/n26Tg3yoSB0N/3dK vGgnluev39z5q3cAVRAk1rdyvVwwAtZbXiA4hHYmK3xR6T+LJ5gH51OISNrml70S+usB f10g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133907; x=1756738707; 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=8oaQVHpJSfD6iISTq4Fs9qiBmXO38S9TJM+RHgKSb1U=; b=Cz5gRFKtfBMEgJ7ivrhPtGxPjciZgJYUr3+FQfKyRewkow+1Fybw/TM5qYaBIWKned 4Md9Ok2yK+8PWWJBEkR/94KeUzOAtWQo0KL8UnGPLT4ez3mKBe6CHy5qGzIIrubn8D3t PYNNtO8pJZjyaazpZkhWwMpVGx0jxupROQYlNY6aQiRoc1K9/2frCHYVGZDF4Bg1bMsU o2GL6+TY56vO+pu42jNwW4YnvrXmb1QXDxqBoB1sqaZkar6bDzYdTi8iHV6NmV/J0Nio JnH+j/HoqAN63Pp2iSlS21d8DxOEmZBWrc+N+PnSTdAPLmqGTU4KjVfgecUvVIPlI3dh ljWA== X-Gm-Message-State: AOJu0Yx8A02L0xu4LIplXZ7it1rp9QCaKg486DibOFsZYqJHl2Ph5LV5 nK0NsfgHGOUJbR+K444eCZCUnTjlPo2Xeghgv0tUAWcmocl50RLBx/tRghUJ7V0x9wXbtOL8YGf E6hPhRjAi/w== X-Gm-Gg: ASbGncuoIHqP3MP6Bhrb2tuPEOOzOEf2lD9heITOWPlBYPkiPpo0VqwhnWV0Bs4bV1O Y5ndpBNj7v0XMRYd66vVfdYD8fPxCEyv1JHotH9zRFVRNzO201NNfi13x4uRc8EPEs0h9TNzLau YdEnYii876pr+tyQ1ihXJV/iz6RS2F78+nOlwzX6c7DerH/Y40wDYoeSwS4TYC+BFAswKwSf51n u/WYMm07ykg9pAs5Uwj57tmBJcr4Wb8Qy66knjT0eAe6piY9cKSGpA0ACX6n1PkPU6i9QsNyexk fWEV8ReBtwD0dtDuu/EY8XVrcnGrrRzf9aFTiBTNqxo6suLQywXY4DvXd11szDtJPy6yhKboxtC Wd7EoICMs2EIGLF3o+gXD+MwJXPr/lTAfU5CO7F4voh4IgKMUL950asYG5+5L X-Google-Smtp-Source: AGHT+IHxsFJR0AtpeGh+fp7Byt8A1eU4CZaqq20uybUbJisFaBFvzm4Vv3lYQ+kX08WwI2ansJPWUw== X-Received: by 2002:a05:6a00:1399:b0:770:5544:dc0c with SMTP id d2e1a72fcca58-77055544aabmr8161529b3a.32.1756133907310; Mon, 25 Aug 2025 07:58:27 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.58.23 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:58:26 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 7/8] mshare: selftests: Add test case to demostrate the swaping of mshare memory Date: Mon, 25 Aug 2025 22:57:18 +0800 Message-Id: <20250825145719.29455-16-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This case is quit simple by using madvise(MADV_PAGEOUT), but for verifying the memory size of being swaped, we need to setup the memcg and attach test process to this memcg before perform the test. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/Makefile | 2 +- tools/testing/selftests/mshare/memory.c | 71 +++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 tools/testing/selftests/mshare/memory.c diff --git a/tools/testing/selftests/mshare/Makefile b/tools/testing/selfte= sts/mshare/Makefile index 651658d091c5..b0418b8c30f2 100644 --- a/tools/testing/selftests/mshare/Makefile +++ b/tools/testing/selftests/mshare/Makefile @@ -2,6 +2,6 @@ =20 CFLAGS =3D $(KHDR_INCLUDES) -Wall -g -O2 =20 -TEST_GEN_PROGS :=3D basic +TEST_GEN_PROGS :=3D basic memory =20 include ../lib.mk diff --git a/tools/testing/selftests/mshare/memory.c b/tools/testing/selfte= sts/mshare/memory.c new file mode 100644 index 000000000000..7754c0e33506 --- /dev/null +++ b/tools/testing/selftests/mshare/memory.c @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include + +#include "../kselftest_harness.h" +#include "util.c" + +#define GB(x) ((x) * (1UL << 30)) + +FIXTURE(memory) +{ + char filename[128]; + int fd; + + char cgroup[128]; + + void *addr; + size_t allocate_size; +}; + +FIXTURE_SETUP(memory) +{ + ASSERT_NE(create_mshare_test_cgroup(self->cgroup, sizeof(self->cgroup)), = -1); + + attach_to_cgroup(self->cgroup); + + self->allocate_size =3D mshare_get_info(); + self->fd =3D create_mshare_file(self->filename, sizeof(self->filename)); + ASSERT_NE(self->fd, -1); + ASSERT_NE(ftruncate(self->fd, self->allocate_size), -1); + + ASSERT_NE(mshare_ioctl_mapping(self->fd, self->allocate_size, + MAP_ANONYMOUS | MAP_SHARED | MAP_FIXED), + -1); + self->addr =3D mmap(NULL, self->allocate_size, PROT_READ | PROT_WRITE, + MAP_SHARED, self->fd, 0); + ASSERT_NE(self->addr, MAP_FAILED); +} + +FIXTURE_TEARDOWN(memory) +{ + ASSERT_NE(munmap(self->addr, self->allocate_size), -1); + close(self->fd); + + ASSERT_NE(unlink(self->filename), -1); + dettach_from_cgroup(self->cgroup); + + ASSERT_NE(remove_cgroup(self->cgroup), -1); +} + +TEST_F(memory, swap) +{ + size_t swap_size; + + /* touch 1G memory */ + memset(self->addr, 0x01, GB(1)); + + /* force to reclaim the memory of mshare */ + ASSERT_NE(madvise(self->addr, GB(1), MADV_PAGEOUT), -1); + + swap_size =3D read_swap_from_cgroup(self->cgroup); + ASSERT_NE(swap_size, -1); + + /* convert to bytes */ + swap_size *=3D 4096; + + /* allow an error of 10% */ + ASSERT_GT(swap_size, GB(1) * 9 / 10); +} + +TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) (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 50C252FE567 for ; Mon, 25 Aug 2025 14:57:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.196 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133878; cv=none; b=dKHfpJkJPzsUrYNSZ08UzZhAD05mCCdbdUgKiKiiZR3NAk3N//PsMSW/Fhk0CNvN2r6f/JDFyYP1gZAo10n4BfweLAK9CMY4/WFnGJ8izg7kNYfi0lWZRakKUObYjJ3JNXCR/fdGhd9jTAHTNNDCP7ni90a5g36f2oOvqKlvj/4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133878; c=relaxed/simple; bh=yEaGdYH4e/wFbvvvHuP3fH2igWfLZ3eT3LgaOFr8VUs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=f4IOcN2srHebmHe7qggU8y1v0OXUjs9szXkw1Y+xd6G0Pie03rdDk4E4fkyBeKsNWXGXkpnIQYxeF91S61NM8VapxKYu93/LKH7bxTeAbiBAavzNy//OvTecx6vSme47Bnozb9jPCwF9Vb/iPLuO1BGjkXniTgdDtEUVFz9nzB0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=O8mYL8LX; arc=none smtp.client-ip=209.85.210.196 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="O8mYL8LX" Received: by mail-pf1-f196.google.com with SMTP id d2e1a72fcca58-76e434a0118so5252445b3a.0 for ; Mon, 25 Aug 2025 07:57:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133877; x=1756738677; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8oaQVHpJSfD6iISTq4Fs9qiBmXO38S9TJM+RHgKSb1U=; b=O8mYL8LXqFRkWKWbKlTiI4uC7j012+kxI5MYK2n3fWeH7BrsszVx8mbnx8/v8/IIJg GpP4rqaogSPOPvrWyXC4w/bKMLr3HgMQrr9B2iDp/RQemYjEttII2TkiObWRHUXKbg8C efGO7H4eMv9PPwLGviIb+gIRnD0pDRmpQmm5CJh+vKHbZtSUI23/3QMzUQ8D7Akc7rSP Rp01VJ89RArskAg7c3wjvd0ME9lmGr8rN5LajFX0NLqajnYoPe6ktAcXEi1F4CQkkI+d MTpgsjH4B3ndq43xOFEiSzkjNuGIWxEjadWRrMleYjZjTR7O2pArlHNnu+HfJdjfPLp7 mMIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133877; x=1756738677; 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=8oaQVHpJSfD6iISTq4Fs9qiBmXO38S9TJM+RHgKSb1U=; b=XjSIo0Buqj/CStLEvgnodO0CKaPQt3LhpXULLhBiJOUbU3eBsnDES9t6RSyyIRPZQC mXZn81Wt6olTK4x3U7twyUy8HnpRwzDqNxZ+e9M/hhCD/EvLeELZyITrkEbilT4gyOFH V9TdmkPAlBAWVqs0ToB2U9VDShTAyBUdFS2G+J/3lKeWZs7u/CGsHveTDLhM0TPnKzE3 J3tqWWoDe/1S3Z/5KgAbMGLuVk2fMJ+Vvy4/rhCePgPwRYipACDI9kXnWKvvmfKL2pqd cGkfqFP/1+oHp+NxgXhtGprLHJ6U1gONx3ZDizX3hQvF94NsoteNoInN5+FHrEJhC/Dz I2eA== X-Gm-Message-State: AOJu0YzCuOsp5p0/63c0zkW3W9+3C8fp28FHCaj1rbcJq2ni+rpxhN2u kRvpP4NqzsEOI1tejFYCTUQj8A9coA+yn5Ywy2r1+8leDXzpuSK01I3vM7oEjnyrEcg= X-Gm-Gg: ASbGncttse8yL7daDTCYAbp5Avz5Zee1su3KoebRDBNVovZ8whp9wcuCIEF+COx0r02 RT5o3VfyF4y2shY3YhJigMHENvwSsXKgSo3lLTNPECzmGUpYck1kW/p0xiDSKwqX70qFLFxteMB TD+jnVGM6SJ3cAySMkCW2zggw4agTwtiGihzd4m/rHLgq3ei3sneZgNbjzDsvqhWTcudQDqFTS2 rwKTT9IMMT/bdVmuf/KxiujlEDkcHcrWS3yAwQau08ODTts724SMmDd8cRNFGxQXyvUUb5HlYAh 1DW535M8hZadxY/ffh+HW79qix5jAFh6+VEAmrHtAaooXOZiEi4GJfoCvr6/V9l87gV2gnEwwEB 3E/IgnNIT1pSd4ezrYy9PAVxFZcvjTouZwXKTtPawuTUjo6EIbGQYazwiXtMj X-Google-Smtp-Source: AGHT+IEJgruw8paBQDNIopG839sPtxHYbVWhGydUTRYfwwhqmDIT8wYlFvzCj4LXmvnvNxNKmNvDrA== X-Received: by 2002:a05:6a00:3d96:b0:770:3d67:82b1 with SMTP id d2e1a72fcca58-7703d678890mr13756054b3a.32.1756133876538; Mon, 25 Aug 2025 07:57:56 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.57.53 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:57:56 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 7/8] mshare: selftests: Add test case to demostrate the swaping of mshare memory Date: Mon, 25 Aug 2025 22:57:10 +0800 Message-Id: <20250825145719.29455-8-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This case is quit simple by using madvise(MADV_PAGEOUT), but for verifying the memory size of being swaped, we need to setup the memcg and attach test process to this memcg before perform the test. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/Makefile | 2 +- tools/testing/selftests/mshare/memory.c | 71 +++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 tools/testing/selftests/mshare/memory.c diff --git a/tools/testing/selftests/mshare/Makefile b/tools/testing/selfte= sts/mshare/Makefile index 651658d091c5..b0418b8c30f2 100644 --- a/tools/testing/selftests/mshare/Makefile +++ b/tools/testing/selftests/mshare/Makefile @@ -2,6 +2,6 @@ =20 CFLAGS =3D $(KHDR_INCLUDES) -Wall -g -O2 =20 -TEST_GEN_PROGS :=3D basic +TEST_GEN_PROGS :=3D basic memory =20 include ../lib.mk diff --git a/tools/testing/selftests/mshare/memory.c b/tools/testing/selfte= sts/mshare/memory.c new file mode 100644 index 000000000000..7754c0e33506 --- /dev/null +++ b/tools/testing/selftests/mshare/memory.c @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include + +#include "../kselftest_harness.h" +#include "util.c" + +#define GB(x) ((x) * (1UL << 30)) + +FIXTURE(memory) +{ + char filename[128]; + int fd; + + char cgroup[128]; + + void *addr; + size_t allocate_size; +}; + +FIXTURE_SETUP(memory) +{ + ASSERT_NE(create_mshare_test_cgroup(self->cgroup, sizeof(self->cgroup)), = -1); + + attach_to_cgroup(self->cgroup); + + self->allocate_size =3D mshare_get_info(); + self->fd =3D create_mshare_file(self->filename, sizeof(self->filename)); + ASSERT_NE(self->fd, -1); + ASSERT_NE(ftruncate(self->fd, self->allocate_size), -1); + + ASSERT_NE(mshare_ioctl_mapping(self->fd, self->allocate_size, + MAP_ANONYMOUS | MAP_SHARED | MAP_FIXED), + -1); + self->addr =3D mmap(NULL, self->allocate_size, PROT_READ | PROT_WRITE, + MAP_SHARED, self->fd, 0); + ASSERT_NE(self->addr, MAP_FAILED); +} + +FIXTURE_TEARDOWN(memory) +{ + ASSERT_NE(munmap(self->addr, self->allocate_size), -1); + close(self->fd); + + ASSERT_NE(unlink(self->filename), -1); + dettach_from_cgroup(self->cgroup); + + ASSERT_NE(remove_cgroup(self->cgroup), -1); +} + +TEST_F(memory, swap) +{ + size_t swap_size; + + /* touch 1G memory */ + memset(self->addr, 0x01, GB(1)); + + /* force to reclaim the memory of mshare */ + ASSERT_NE(madvise(self->addr, GB(1), MADV_PAGEOUT), -1); + + swap_size =3D read_swap_from_cgroup(self->cgroup); + ASSERT_NE(swap_size, -1); + + /* convert to bytes */ + swap_size *=3D 4096; + + /* allow an error of 10% */ + ASSERT_GT(swap_size, GB(1) * 9 / 10); +} + +TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) (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 D902D303CAD for ; Mon, 25 Aug 2025 14:58:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133913; cv=none; b=GzbpG7f8GJ54Pj2naGrHQc4Xz30BMV0M2rtak+/clgos/suV3ACRoU8oKt4OZOF6Zvuo32OK9N1y5mNo6O/Ez91xw59OtWlGwTrPQTdd2KAjrRe+yvGCMf9APoGrzVKQElmKe/IAXDuEcEoZsB77lC6eUG32MGiAr516MZJ5AOU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133913; c=relaxed/simple; bh=Uo8Uq5CGd42i/IUZX2QiGqJ9jwcLrhXXcAVNfr2ZqI8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=m/OyhPAdOdf8n7bxgzASWCm0ZQDnYmXWzos3jX58chLHUAx0+XN2TvKsBhLGXAG6dvy2/5SjqVkg4tipCpW+bLAUD9G6Oi58s+l6GQi4oDrKfSdQgxE6JCuGYsHO1oijqGShTjzj+9O8g3/84exLDGpFN3L8PwZb5UrSvzepGWM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=QGsFtqFh; arc=none smtp.client-ip=209.85.210.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="QGsFtqFh" Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-7704799d798so1233632b3a.3 for ; Mon, 25 Aug 2025 07:58:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133911; x=1756738711; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6KNNjy6jnCK8i9cBT6PGrQfVqxJIthxv9ctwdRDGY9o=; b=QGsFtqFhAsWiT5DHzRrcZIkFseotRWf0ZyUGuG1gpt/scQNOJ+LDowbCSjIYiL7lvD ZVgQOwQBKqUcJ5sZRALrxQTSjMuZzrLaZQ08wElEmd6BulKiYlPXP9WiKFhw3ZiAus8v 7j+vLjeuuckQYq2/oBkC9N5vPR5jNVmuLw4GxDJDSVPQ84AcBaUngr73nzaTo2Hq64Od 8+hpxSGuT/qzEnkGCDBy5zhH8XGFWoZ7oy60E6BomNQiYca0bpGKiv+5Ouq45LljLJ+j 0iIBGNy2voplCvJrZbROQsAP9jAE2Za9ppwmGVAY6b44VjLxn5zXq1gQQXbPQAOOMgC2 8RlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133911; x=1756738711; 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=6KNNjy6jnCK8i9cBT6PGrQfVqxJIthxv9ctwdRDGY9o=; b=M0BEw1ItxzBh8F6lfQjwpumXFbVLQwEpXJcERwT3BY1U1ICAL/Hj309zGSLH85oB03 Ci5WMr9VXnKSVu/K4ybBCgXwaN4M1ng7g7kXd4bGdPvUPQBkuKrM3Daw79w5v3wUI3FL WyakK4g9LzrNP6MwGRc0xclAViGJ2OJKNV6BH6Sj7oxlcf3fvmVme+e1PSj+vBwfNLdr bw1Ox4Aqc0A7hjqMMZR3/IUs8s8B73eU2Vww+uqWFxc6MDxagmx4aPCSsUDZFHcmcUgo KNBNbqpgcPNNstcy3zIPQXjq/DdIbM30hLZtGNWakH+FVzUfKClTWLrwDsTXpnnGypbp P7vA== X-Gm-Message-State: AOJu0YyNs2vDRRKC/ePFSLnGsjh8Yg3Q7fn10+c/Wzl15EDwY0lkbvWj rm/cBd/DDgCGOSJlG7jKErCfTmeOGXt2Z438c+zi9xbjfpkJeg0vKhmvM6pZ/r5HtpA= X-Gm-Gg: ASbGncsk913td74WgrFidBP/eUS7vn619bZ8TUk/7VAR4kkcjMmBv+KNmuVSu71G06L w8rEDXbtmrJmd3tYaVwfbQy4c7Lv+p/B+hrSI4cF1z1ESrCueAZnyOVDv1wCaCm8xaZGGm6VrVp Ovn3BgbDX+MEe8wxnZGpCNIO9lUDzy/YaUh12K3tBFYpJPPbTMW/b8U5lTaE3rx9pSLaH0rQ+Fm bQNRbzTJDim72NjPGhtQ8z+bZwMmSdFmdF4j8GSoHBAyZcZmYKinL9eTcdaMCzx76NOKWJ1Shvc LRHZsSC0SR4DDZRQUgN8nbw+QkjGlp1eDGbGt91ULygslimTQE8ra2eaRuL/KRmrHWeYd5QjYh8 MP6nUlk+ndiUQBXCGibQqxuD+pMWU+Jyux3I1jWH5cFhK91Z0mAxoDsiIZniu X-Google-Smtp-Source: AGHT+IFUi1/2GefYrlbJCoIFczVXEJy1x3XUrow95S+g3t2wLpPX4iH95FuGRMW+srrK0U8C6BeQcg== X-Received: by 2002:a05:6a00:10d1:b0:76e:7aee:35f2 with SMTP id d2e1a72fcca58-7702fc15031mr13371786b3a.30.1756133911092; Mon, 25 Aug 2025 07:58:31 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.58.27 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:58:30 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 8/8] mshare: selftests: Add test case to demostrate that mshare doesn't support THP Date: Mon, 25 Aug 2025 22:57:19 +0800 Message-Id: <20250825145719.29455-17-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This case is quit simple by using madvise(MADV_HUGEPAGE), but for verifying the size of THP memory, we need to setup the memcg and attach test process to this memcg before perform the test. Because mshare doesn't support THP feature, the size of THP memory should be 0 even though we use madivse. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/memory.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/testing/selftests/mshare/memory.c b/tools/testing/selfte= sts/mshare/memory.c index 7754c0e33506..2a415ce7bc01 100644 --- a/tools/testing/selftests/mshare/memory.c +++ b/tools/testing/selftests/mshare/memory.c @@ -68,4 +68,15 @@ TEST_F(memory, swap) ASSERT_GT(swap_size, GB(1) * 9 / 10); } =20 +TEST_F(memory, thp) +{ + ASSERT_NE(madvise(self->addr, self->allocate_size, MADV_HUGEPAGE), -1); + /* touch 1G */ + memset(self->addr, 0x01, GB(1)); + + size_t huge =3D read_huge_from_cgroup(self->cgroup); + /* mshare don't support THP now */ + ASSERT_EQ(huge, 0); +} + TEST_HARNESS_MAIN --=20 2.20.1 From nobody Fri Oct 3 20:23:06 2025 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (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 EA69F2FE58F for ; Mon, 25 Aug 2025 14:58:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133882; cv=none; b=C2bvVg36abGgGOfqbIxfUBtqMFkPelae+Be3hCl4FPuAItxoq0JXAyyEUTw7pvde9JSXKR/j58PrEVHhqzY3kJiPaMHOh6jN20FoiMSlMqcZa+Fxu5WOXCr+V6wBYnQ4Itkdt459kSK0uwe1PkFanoofps1Exczw+75Rx0msHrs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756133882; c=relaxed/simple; bh=Uo8Uq5CGd42i/IUZX2QiGqJ9jwcLrhXXcAVNfr2ZqI8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WpX76G0U6ab+MjJ/CDIvXFt4tzReCzvY37C0QEyLt/XE3SciVFJXnyVaTdKUYzettzSkBoUs9Wu9ayywDYookKfUt69ZjimTqOehAay8e0Hc9Ycpwn5h8Iw5KeA5VJz7PRN0tCYdobeh0dbNebOo57LzvxC3bnDFIEJMWYOGQsQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=PDfm7K8N; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="PDfm7K8N" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-771f3f89952so120482b3a.0 for ; Mon, 25 Aug 2025 07:58:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756133880; x=1756738680; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6KNNjy6jnCK8i9cBT6PGrQfVqxJIthxv9ctwdRDGY9o=; b=PDfm7K8NieFMY50Sdlh/ug169oYnY/9tcoBKJLQCELXJnxgAgqIv09LuNQQfzGnG68 lsyVpBypgdYeCY0+sb65Ogh35dUZTioX+bCxNSXPwlQ8mjC/gR9q6CtLESyTlDz8Vzpd /gMRcjFBteIhH9zCv3z7oqGYKF7gRXXJDcRHg0GdqWo9kZ1IV1W9S1nJikMcEBwvEJZK 8PerSauEHl2NlBYwgoI1uClSoe0bExrWphQo/Fb5EvPtppNcxOfx87tI4En2m0DRypEo rgIcQL2fKuDSzVqkv7UlAo1sDcyPxb80QFd0Ld8AH4BZDCZMZ+bkXi/kpPunwasyhAo1 wOuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756133880; x=1756738680; 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=6KNNjy6jnCK8i9cBT6PGrQfVqxJIthxv9ctwdRDGY9o=; b=VVyzeB/uam+hN5mXYtMhWg5HfWXmu4SUUwoay9uXe6pPYX3eOBr09udmYBOE6dof98 rS3/VDyOpyEGtTBGD68PYpRGKVi8cvJVKk41dPZrAI7cR4PYsnCyBJYZzOE+kJlz+jPR w8vsrUMs4JlK5aUoWaJTWbFjTIxcK6A4OwlIQYeem8MArpgG06oZuNQ4U2lRvy0KCOJW bdgAEN0neJHJbdlqbK9YegpESdol566bQTEoL+E1ZXalPj10RNthOOnqdJg6dldhHonQ Ws/OBLh84fArtVOb79q/maZpLEinFBpfFuxmPPr5rRRsyzuC5a3UlvsIPsX4efaYMCVP +Aaw== X-Gm-Message-State: AOJu0YxUIqDrDTpLVCh311dgwlac6c3A2hixAh1lJd8vgl1eiBAl4crm 2d7/3sTn48eXcB8ZOJtsjw7if52eTfIZPSG/nKefjmKDHK53JIBkgpgxT+b2XzpMIkg= X-Gm-Gg: ASbGncuk2UPLNxZclFLyxBlSNVyCE60mCSHDXy/ZJv8EeT6ick8qkGnIsiNM3f9sAqf g2uJQwDs7NrCaivKIwKp5eeFDOKVzQwylX5Z//gQpsjGG0tspFqZI/YLdLPQADNFJa1Kd3HZKgk 9M4H6ylgK9ASe9Zx/EIZAzw8bRez0JSDH8IilfF8B4hWBX4ymXQneFgf6FhifnJUQ7thaoUtY7F 5SL9qaybLsOYRz+pqwJwar7RRX1/g2WJKSG79qheARaYa+cO6foZFHptZ2Coi3Q57WqJtEPAmVq bynMfbmtFdfn8cPp/HCFH87rsaQrlh9uRp84EViBx8dO4bWvHHqcfmLGHdef7ZwqdhKj7Gt5F4Y Wcv28Ff2c89tMS64j7WG3K1x2FFx+Nkgnq9aDaIBwYr9IqeWxQ3BLxoaeZ76j X-Google-Smtp-Source: AGHT+IGbWxmYTsBIeFlK1EvF3uLRm34ATqyatUoKhGCOYfILgtNZGvHj6AvQD4iDtUNoTtKa6iaYsQ== X-Received: by 2002:a05:6a00:4088:b0:770:4753:b984 with SMTP id d2e1a72fcca58-7704753bbf6mr10848203b3a.16.1756133880306; Mon, 25 Aug 2025 07:58:00 -0700 (PDT) Received: from H3DJ4YJ04F.bytedance.net ([203.208.189.7]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401b190asm7803436b3a.74.2025.08.25.07.57.56 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Aug 2025 07:57:59 -0700 (PDT) From: Yongting Lin To: anthony.yznaga@oracle.com, khalid@kernel.org, shuah@kernel.org, linyongting@bytedance.com Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org Subject: [PATCH 8/8] mshare: selftests: Add test case to demostrate that mshare doesn't support THP Date: Mon, 25 Aug 2025 22:57:11 +0800 Message-Id: <20250825145719.29455-9-linyongting@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250825145719.29455-1-linyongting@bytedance.com> References: <20250825145719.29455-1-linyongting@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This case is quit simple by using madvise(MADV_HUGEPAGE), but for verifying the size of THP memory, we need to setup the memcg and attach test process to this memcg before perform the test. Because mshare doesn't support THP feature, the size of THP memory should be 0 even though we use madivse. Signed-off-by: Yongting Lin --- tools/testing/selftests/mshare/memory.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/testing/selftests/mshare/memory.c b/tools/testing/selfte= sts/mshare/memory.c index 7754c0e33506..2a415ce7bc01 100644 --- a/tools/testing/selftests/mshare/memory.c +++ b/tools/testing/selftests/mshare/memory.c @@ -68,4 +68,15 @@ TEST_F(memory, swap) ASSERT_GT(swap_size, GB(1) * 9 / 10); } =20 +TEST_F(memory, thp) +{ + ASSERT_NE(madvise(self->addr, self->allocate_size, MADV_HUGEPAGE), -1); + /* touch 1G */ + memset(self->addr, 0x01, GB(1)); + + size_t huge =3D read_huge_from_cgroup(self->cgroup); + /* mshare don't support THP now */ + ASSERT_EQ(huge, 0); +} + TEST_HARNESS_MAIN --=20 2.20.1