{"id":2231882,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2231882/?format=json","web_url":"http://patchwork.ozlabs.org/project/ltp/patch/20260501135100.42278-1-li.wang@linux.dev/","project":{"id":59,"url":"http://patchwork.ozlabs.org/api/1.1/projects/59/?format=json","name":"Linux Test Project development","link_name":"ltp","list_id":"ltp.lists.linux.it","list_email":"ltp@lists.linux.it","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260501135100.42278-1-li.wang@linux.dev>","date":"2026-05-01T13:51:00","name":"lib: Introduce tst_path.h to consolidate system paths","commit_ref":null,"pull_url":null,"state":"needs-review-ack","archived":false,"hash":"d74f2264cb46e71c4cc651214e2bf21b5f48a4fc","submitter":{"id":93238,"url":"http://patchwork.ozlabs.org/api/1.1/people/93238/?format=json","name":"Li Wang","email":"li.wang@linux.dev"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/ltp/patch/20260501135100.42278-1-li.wang@linux.dev/mbox/","series":[{"id":502461,"url":"http://patchwork.ozlabs.org/api/1.1/series/502461/?format=json","web_url":"http://patchwork.ozlabs.org/project/ltp/list/?series=502461","date":"2026-05-01T13:51:00","name":"lib: Introduce tst_path.h to consolidate system paths","version":1,"mbox":"http://patchwork.ozlabs.org/series/502461/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2231882/comments/","check":"success","checks":"http://patchwork.ozlabs.org/api/patches/2231882/checks/","tags":{},"headers":{"Return-Path":"<ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it>","X-Original-To":["incoming@patchwork.ozlabs.org","ltp@lists.linux.it"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","ltp@picard.linux.it"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=linux.dev header.i=@linux.dev header.a=rsa-sha256\n header.s=key1 header.b=A7XONnkh;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it\n (client-ip=2001:1418:10:5::2; helo=picard.linux.it;\n envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it;\n receiver=patchwork.ozlabs.org)"],"Received":["from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g6XX40zDwz1y04\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 01 May 2026 23:51:45 +1000 (AEST)","from picard.linux.it (localhost [IPv6:::1])\n\tby picard.linux.it (Postfix) with ESMTP id AC1BA3E4A66\n\tfor <incoming@patchwork.ozlabs.org>; Fri,  1 May 2026 15:51:34 +0200 (CEST)","from in-5.smtp.seeweb.it (in-5.smtp.seeweb.it [217.194.8.5])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature ECDSA (secp384r1))\n (No client certificate requested)\n by picard.linux.it (Postfix) with ESMTPS id 7C9E53E2109\n for <ltp@lists.linux.it>; Fri,  1 May 2026 15:51:32 +0200 (CEST)","from out-174.mta0.migadu.com (out-174.mta0.migadu.com\n [IPv6:2001:41d0:1004:224b::ae])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by in-5.smtp.seeweb.it (Postfix) with ESMTPS id 9854F601B06\n for <ltp@lists.linux.it>; Fri,  1 May 2026 15:51:28 +0200 (CEST)"],"X-Report-Abuse":"Please report any abuse attempt to abuse@migadu.com and\n include these headers.","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1;\n t=1777643488;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding;\n bh=4Db81s7sp1MB669wKUHREHNIp08X7GWFng7zQ3UkSlM=;\n b=A7XONnkhw+Mtbulmfle5F/OjMgF2T61w752haEr4ZQa3mEV2VPNarH4APTi1NWWE7+ijyq\n GMrtjzTx4s/uCoP78Di8ZmsHAyhC1Vw8ETX9hDn5Xy+mWfel9kzp3gIaSucnZXqKDfnrTb\n tSomCWAxXU/32hdZ4/s9+JucuW0fjAQ=","From":"Li Wang <li.wang@linux.dev>","To":"ltp@lists.linux.it","Date":"Fri,  1 May 2026 21:51:00 +0800","Message-ID":"<20260501135100.42278-1-li.wang@linux.dev>","MIME-Version":"1.0","X-Migadu-Flow":"FLOW_OUT","X-Spam-Status":"No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID,\n DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS shortcircuit=no\n autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on in-5.smtp.seeweb.it","X-Virus-Scanned":"clamav-milter 1.0.9 at in-5.smtp.seeweb.it","X-Virus-Status":"Clean","Subject":"[LTP] [PATCH] lib: Introduce tst_path.h to consolidate system paths","X-BeenThere":"ltp@lists.linux.it","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"Linux Test Project <ltp.lists.linux.it>","List-Unsubscribe":"<https://lists.linux.it/options/ltp>,\n <mailto:ltp-request@lists.linux.it?subject=unsubscribe>","List-Archive":"<http://lists.linux.it/pipermail/ltp/>","List-Post":"<mailto:ltp@lists.linux.it>","List-Help":"<mailto:ltp-request@lists.linux.it?subject=help>","List-Subscribe":"<https://lists.linux.it/listinfo/ltp>,\n <mailto:ltp-request@lists.linux.it?subject=subscribe>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it","Sender":"\"ltp\" <ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it>"},"content":"Currently, definitions for various /proc and /sys paths are scattered\nacross multiple testcases and library files, often as hardcoded strings\nor redundant macros.\n\nThis patch introduces a new common header, tst_path.h, to centralize\nand standardize these path definitions. By unifying these macros, we\nreduce code duplication, improve maintainability, and ensure consistent\npath usage across the entire LTP codebase.\n\nSigned-off-by: Li Wang <li.wang@linux.dev>\n---\n include/tst_hugepage.h                        | 10 +----\n include/tst_path.h                            | 41 +++++++++++++++++++\n include/tst_test.h                            |  1 +\n lib/newlib_tests/test19.c                     |  6 +--\n lib/newlib_tests/test20.c                     |  4 +-\n lib/tst_hugepage.c                            |  4 +-\n testcases/cve/cve-2015-3290.c                 |  6 +--\n testcases/cve/cve-2017-16939.c                |  2 +-\n testcases/cve/cve-2022-4378.c                 | 16 ++++----\n testcases/cve/icmp_rate_limit01.c             |  2 +-\n testcases/cve/tcindex01.c                     |  2 +-\n testcases/kernel/containers/pidns/pidns05.c   |  2 +-\n testcases/kernel/containers/userns/userns01.c |  4 +-\n .../containers/userns/userns06_capcheck.c     |  2 +-\n testcases/kernel/containers/userns/userns07.c |  2 +-\n testcases/kernel/containers/userns/userns08.c |  8 ++--\n testcases/kernel/include/ksm_helper.h         |  2 +-\n testcases/kernel/logging/kmsg/kmsg01.c        |  4 +-\n .../kernel/mem/hugetlb/hugemmap/hugemmap05.c  |  8 +---\n .../kernel/mem/hugetlb/hugemmap/hugemmap32.c  | 11 +++--\n .../kernel/mem/hugetlb/hugemmap/hugemmap34.c  |  1 -\n .../mem/hugetlb/hugeshmat/hugeshmat04.c       |  2 +-\n .../mem/hugetlb/hugeshmget/hugeshmget03.c     |  2 +-\n testcases/kernel/mem/hugetlb/lib/hugetlb.h    |  2 +-\n testcases/kernel/mem/ksm/ksm01.c              | 10 ++---\n testcases/kernel/mem/ksm/ksm02.c              | 10 ++---\n testcases/kernel/mem/ksm/ksm03.c              | 10 ++---\n testcases/kernel/mem/ksm/ksm04.c              | 10 ++---\n testcases/kernel/mem/ksm/ksm05.c              |  4 +-\n testcases/kernel/mem/ksm/ksm06.c              | 10 ++---\n testcases/kernel/mem/ksm/ksm07.c              |  8 ++--\n testcases/kernel/mem/oom/oom.h                | 11 ++---\n testcases/kernel/mem/oom/oom01.c              |  2 -\n testcases/kernel/mem/oom/oom02.c              |  2 +-\n testcases/kernel/mem/oom/oom03.c              |  2 +-\n testcases/kernel/mem/oom/oom04.c              |  2 +-\n testcases/kernel/mem/oom/oom05.c              |  2 +-\n testcases/kernel/mem/thp/thp.h                |  2 +-\n .../kernel/sched/sysctl/proc_sched_rt01.c     |  6 +--\n .../kernel/syscalls/fanotify/fanotify10.c     |  9 ++--\n testcases/kernel/syscalls/fcntl/fcntl35.c     | 10 ++---\n testcases/kernel/syscalls/inotify/inotify07.c |  2 +-\n testcases/kernel/syscalls/inotify/inotify08.c |  2 +-\n .../kernel/syscalls/io_uring/io_uring01.c     |  2 +-\n .../kernel/syscalls/io_uring/io_uring02.c     |  2 +-\n .../kernel/syscalls/io_uring/io_uring03.c     |  2 +-\n .../kernel/syscalls/ipc/msgget/msgget03.c     |  2 +-\n .../kernel/syscalls/ipc/msgget/msgget04.c     |  2 +-\n .../kernel/syscalls/ipc/msgget/msgget05.c     |  2 +-\n .../kernel/syscalls/ipc/semget/semget05.c     |  4 +-\n .../kernel/syscalls/ipc/shmctl/shmctl03.c     |  6 +--\n .../kernel/syscalls/ipc/shmget/shmget02.c     |  2 +-\n .../kernel/syscalls/ipc/shmget/shmget03.c     |  2 +-\n .../kernel/syscalls/ipc/shmget/shmget05.c     |  2 +-\n .../kernel/syscalls/ipc/shmget/shmget06.c     |  2 +-\n testcases/kernel/syscalls/keyctl/keyctl02.c   |  2 +-\n testcases/kernel/syscalls/madvise/madvise01.c |  1 -\n testcases/kernel/syscalls/madvise/madvise02.c |  3 +-\n testcases/kernel/syscalls/madvise/madvise06.c |  2 +-\n testcases/kernel/syscalls/madvise/madvise08.c |  2 +-\n .../syscalls/migrate_pages/migrate_pages02.c  |  2 +-\n testcases/kernel/syscalls/mmap/mmap10.c       |  2 +-\n .../kernel/syscalls/move_pages/move_pages12.c | 10 ++---\n .../kernel/syscalls/newuname/newuname01.c     |  8 ++--\n .../perf_event_open/perf_event_open02.c       |  2 +-\n testcases/kernel/syscalls/pkeys/pkey01.c      |  1 -\n testcases/kernel/syscalls/preadv2/preadv203.c |  2 +-\n .../kernel/syscalls/readahead/readahead02.c   |  5 +--\n .../sched_rr_get_interval01.c                 |  2 +-\n testcases/kernel/syscalls/sendmsg/sendmsg03.c |  2 +-\n testcases/kernel/syscalls/sendto/sendto03.c   |  2 +-\n testcases/kernel/syscalls/setpgid/setpgid02.c |  2 +-\n .../kernel/syscalls/setsockopt/setsockopt05.c |  2 +-\n .../kernel/syscalls/setsockopt/setsockopt06.c |  2 +-\n .../kernel/syscalls/setsockopt/setsockopt08.c |  2 +-\n .../kernel/syscalls/setsockopt/setsockopt09.c |  2 +-\n testcases/kernel/syscalls/splice/splice.h     |  8 ++--\n testcases/kernel/syscalls/splice/splice06.c   |  4 +-\n testcases/kernel/syscalls/syslog/syslog11.c   |  2 +-\n testcases/kernel/syscalls/wait4/wait402.c     |  2 +-\n testcases/kernel/syscalls/waitid/waitid10.c   |  2 +-\n testcases/network/iptables/nft02.c            |  2 +-\n testcases/network/packet/fanout01.c           |  2 +-\n 83 files changed, 195 insertions(+), 173 deletions(-)\n create mode 100644 include/tst_path.h","diff":"diff --git a/include/tst_hugepage.h b/include/tst_hugepage.h\nindex 6b865b2f2..0fca9b91f 100644\n--- a/include/tst_hugepage.h\n+++ b/include/tst_hugepage.h\n@@ -6,15 +6,7 @@\n #ifndef TST_HUGEPAGE__\n #define TST_HUGEPAGE__\n \n-#define PATH_HUGEPAGES\t\"/sys/kernel/mm/hugepages/\"\n-#define PATH_NR_HPAGES\t\"/proc/sys/vm/nr_hugepages\"\n-#define PATH_OC_HPAGES \"/proc/sys/vm/nr_overcommit_hugepages\"\n-\n-#define MEMINFO_HPAGE_TOTAL  \"HugePages_Total:\"\n-#define MEMINFO_HPAGE_FREE   \"HugePages_Free:\"\n-#define MEMINFO_HPAGE_RSVD   \"HugePages_Rsvd:\"\n-#define MEMINFO_HPAGE_SURP   \"HugePages_Surp:\"\n-#define MEMINFO_HPAGE_SIZE   \"Hugepagesize:\"\n+#include \"tst_path.h\"\n \n extern char *nr_opt; /* -s num   Set the number of the been allocated hugepages */\n extern char *Hopt;   /* -H /..   Location of hugetlbfs, i.e.  -H /var/hugetlbfs */\ndiff --git a/include/tst_path.h b/include/tst_path.h\nnew file mode 100644\nindex 000000000..cfe6b6227\n--- /dev/null\n+++ b/include/tst_path.h\n@@ -0,0 +1,41 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+/*\n+ * Copyright (c) Linux Test Project, 2026\n+ * Copyright (c) 2026 Li Wang <li.wang@linux.dev>\n+ */\n+\n+#ifndef TST_PATH__\n+#define TST_PATH__\n+\n+/* PROC */\n+#define PROC_SYS_VM\t\"/proc/sys/vm/\"\n+#define PROC_SYS_FS\t\"/proc/sys/fs/\"\n+#define PROC_SYS_NET\t\"/proc/sys/net/\"\n+#define PROC_SYS_USER\t\"/proc/sys/user/\"\n+#define PROC_SYS_KERNEL\t\"/proc/sys/kernel/\"\n+\n+/* SYS */\n+#define SYS_KERNEL_MM\t\"/sys/kernel/mm/\"\n+#define PATH_HUGEPAGES\tSYS_KERNEL_MM \"hugepages/\"\n+\n+/* VM */\n+#define PATH_NR_HPAGES       PROC_SYS_VM \"nr_hugepages\"\n+#define PATH_OC_HPAGES       PROC_SYS_VM \"nr_overcommit_hugepages\"\n+#define PATH_DROP_CACHES     PROC_SYS_VM \"drop_caches\"\n+#define PATH_COMPACT_MEMORY  PROC_SYS_VM \"compact_memory\"\n+\n+/* THP */\n+#define PATH_THP\tSYS_KERNEL_MM \"transparent_hugepage/\"\n+\n+/* MEMINFO */\n+#define MEMINFO_HPAGE_TOTAL  \"HugePages_Total:\"\n+#define MEMINFO_HPAGE_FREE   \"HugePages_Free:\"\n+#define MEMINFO_HPAGE_RSVD   \"HugePages_Rsvd:\"\n+#define MEMINFO_HPAGE_SURP   \"HugePages_Surp:\"\n+#define MEMINFO_HPAGE_SIZE   \"Hugepagesize:\"\n+\n+/* KSM */\n+#define PATH_KSM\tSYS_KERNEL_MM \"ksm/\"\n+#define KSM_FP(s)\t(PATH_KSM s)\n+\n+#endif /* TST_PATH_H */\ndiff --git a/include/tst_test.h b/include/tst_test.h\nindex f12c59f39..4898cfe4c 100644\n--- a/include/tst_test.h\n+++ b/include/tst_test.h\n@@ -26,6 +26,7 @@\n #include \"tst_mkfs.h\"\n #include \"tst_fs.h\"\n #include \"tst_pid.h\"\n+#include \"tst_path.h\"\n #include \"tst_cmd.h\"\n #include \"tst_cpu.h\"\n #include \"tst_process_state.h\"\ndiff --git a/lib/newlib_tests/test19.c b/lib/newlib_tests/test19.c\nindex a5683eaa4..0a7766192 100644\n--- a/lib/newlib_tests/test19.c\n+++ b/lib/newlib_tests/test19.c\n@@ -10,7 +10,7 @@\n \n static void setup(void)\n {\n-\tSAFE_FILE_PRINTF(\"/proc/sys/kernel/core_pattern\", \"changed\");\n+\tSAFE_FILE_PRINTF(PROC_SYS_KERNEL \"core_pattern\", \"changed\");\n \ttst_sys_conf_dump();\n }\n \n@@ -25,8 +25,8 @@ static struct tst_test test = {\n \t.setup = setup,\n \t.save_restore = (const struct tst_path_val[]) {\n \t\t{\"/proc/nonexistent\", NULL, TST_SR_SKIP},\n-\t\t{\"/proc/sys/kernel/numa_balancing\", NULL, TST_SR_TBROK},\n-\t\t{\"/proc/sys/kernel/core_pattern\", NULL, TST_SR_TCONF},\n+\t\t{PROC_SYS_KERNEL \"numa_balancing\", NULL, TST_SR_TBROK},\n+\t\t{PROC_SYS_KERNEL \"core_pattern\", NULL, TST_SR_TCONF},\n \t\t{}\n \t},\n };\ndiff --git a/lib/newlib_tests/test20.c b/lib/newlib_tests/test20.c\nindex 3726cea0e..31b3ccf92 100644\n--- a/lib/newlib_tests/test20.c\n+++ b/lib/newlib_tests/test20.c\n@@ -16,7 +16,7 @@ static void do_test(void) {\n \tunsigned long val, hpages;\n \n \ttst_res(TINFO, \"tst_hugepages = %lu\", tst_hugepages);\n-\tSAFE_FILE_PRINTF(\"/proc/sys/kernel/numa_balancing\", \"1\");\n+\tSAFE_FILE_PRINTF(PROC_SYS_KERNEL \"numa_balancing\", \"1\");\n \n \thpages = test.hugepages.number;\n \tSAFE_FILE_SCANF(PATH_NR_HPAGES, \"%lu\", &val);\n@@ -39,7 +39,7 @@ static struct tst_test test = {\n \t.test_all = do_test,\n \t.hugepages = {2, TST_NEEDS},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/kernel/numa_balancing\", \"0\", TST_SR_TBROK},\n+\t\t{PROC_SYS_KERNEL \"numa_balancing\", \"0\", TST_SR_TBROK},\n \t\t{}\n \t},\n };\ndiff --git a/lib/tst_hugepage.c b/lib/tst_hugepage.c\nindex d2e70a955..27c07f04b 100644\n--- a/lib/tst_hugepage.c\n+++ b/lib/tst_hugepage.c\n@@ -46,8 +46,8 @@ unsigned long tst_reserve_hugepages(struct tst_hugepage *hp)\n \t\tgoto set_hugepages;\n \t}\n \n-\tSAFE_FILE_PRINTF(\"/proc/sys/vm/drop_caches\", \"3\");\n-\tSAFE_FILE_PRINTF(\"/proc/sys/vm/compact_memory\", \"1\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"3\");\n+\tSAFE_FILE_PRINTF(PATH_COMPACT_MEMORY, \"1\");\n \tif (hp->policy == TST_NEEDS) {\n \t\ttst_hugepages += SAFE_READ_MEMINFO(\"HugePages_Total:\");\n \t\tgoto set_hugepages;\ndiff --git a/testcases/cve/cve-2015-3290.c b/testcases/cve/cve-2015-3290.c\nindex cb60582b4..7a2f8ab38 100644\n--- a/testcases/cve/cve-2015-3290.c\n+++ b/testcases/cve/cve-2015-3290.c\n@@ -466,12 +466,12 @@ static void setup(void)\n          * knowing if perf_event_open() support is enabled is checking for\n          * the existence of the file /proc/sys/kernel/perf_event_paranoid.\n          */\n-\tif (access(\"/proc/sys/kernel/perf_event_paranoid\", F_OK) == -1)\n+\tif (access(PROC_SYS_KERNEL \"perf_event_paranoid\", F_OK) == -1)\n \t\ttst_brk(TCONF, \"Kernel doesn't have perf_event support\");\n \n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/perf_event_mlock_kb\",\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"perf_event_mlock_kb\",\n \t\t\t\"%d\", &event_mlock_kb);\n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/perf_event_max_sample_rate\",\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"perf_event_max_sample_rate\",\n \t\t\t\"%d\", &max_sample_rate);\n }\n \ndiff --git a/testcases/cve/cve-2017-16939.c b/testcases/cve/cve-2017-16939.c\nindex 098a86841..175aed8f3 100644\n--- a/testcases/cve/cve-2017-16939.c\n+++ b/testcases/cve/cve-2017-16939.c\n@@ -91,7 +91,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/cve/cve-2022-4378.c b/testcases/cve/cve-2022-4378.c\nindex e7e2b9af3..124e60a2e 100644\n--- a/testcases/cve/cve-2022-4378.c\n+++ b/testcases/cve/cve-2022-4378.c\n@@ -22,13 +22,13 @@ static struct testcase {\n \tconst char *path;\n \tint err;\n } testcase_list[] = {\n-\t{\"/proc/sys/net/ipv4/icmp_ratelimit\", EINVAL},\n-\t{\"/proc/sys/net/ipv4/icmp_ratemask\", EINVAL},\n-\t{\"/proc/sys/net/ipv4/icmp_echo_ignore_all\", EINVAL},\n-\t{\"/proc/sys/net/ipv4/tcp_probe_interval\", EINVAL},\n-\t{\"/proc/sys/net/ipv4/tcp_keepalive_time\", EINVAL},\n-\t{\"/proc/sys/net/ipv4/tcp_notsent_lowat\", EINVAL},\n-\t{\"/proc/sys/net/ipv4/ip_local_reserved_ports\", 0}\n+\t{PROC_SYS_NET \"ipv4/icmp_ratelimit\", EINVAL},\n+\t{PROC_SYS_NET \"ipv4/icmp_ratemask\", EINVAL},\n+\t{PROC_SYS_NET \"ipv4/icmp_echo_ignore_all\", EINVAL},\n+\t{PROC_SYS_NET \"ipv4/tcp_probe_interval\", EINVAL},\n+\t{PROC_SYS_NET \"ipv4/tcp_keepalive_time\", EINVAL},\n+\t{PROC_SYS_NET \"ipv4/tcp_notsent_lowat\", EINVAL},\n+\t{PROC_SYS_NET \"ipv4/ip_local_reserved_ports\", 0}\n };\n \n static void setup(void)\n@@ -93,7 +93,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/cve/icmp_rate_limit01.c b/testcases/cve/icmp_rate_limit01.c\nindex 5193c5dfd..cf47e112b 100644\n--- a/testcases/cve/icmp_rate_limit01.c\n+++ b/testcases/cve/icmp_rate_limit01.c\n@@ -256,7 +256,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/cve/tcindex01.c b/testcases/cve/tcindex01.c\nindex 478d75055..7eb5bec8f 100644\n--- a/testcases/cve/tcindex01.c\n+++ b/testcases/cve/tcindex01.c\n@@ -149,7 +149,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/kernel/containers/pidns/pidns05.c b/testcases/kernel/containers/pidns/pidns05.c\nindex 4b0478c84..b50f7ad33 100644\n--- a/testcases/kernel/containers/pidns/pidns05.c\n+++ b/testcases/kernel/containers/pidns/pidns05.c\n@@ -71,7 +71,7 @@ static int find_cinit_pids(pid_t *pids)\n \n static void setup(void)\n {\n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/pid_max\", \"%d\\n\", &pid_max);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL\t\"pid_max\", \"%d\\n\", &pid_max);\n }\n \n static void run(void)\ndiff --git a/testcases/kernel/containers/userns/userns01.c b/testcases/kernel/containers/userns/userns01.c\nindex 6ee9fa7d0..5242bf7de 100644\n--- a/testcases/kernel/containers/userns/userns01.c\n+++ b/testcases/kernel/containers/userns/userns01.c\n@@ -22,8 +22,8 @@\n #include <sys/capability.h>\n #include \"lapi/sched.h\"\n \n-#define OVERFLOWUIDPATH \"/proc/sys/kernel/overflowuid\"\n-#define OVERFLOWGIDPATH \"/proc/sys/kernel/overflowgid\"\n+#define OVERFLOWUIDPATH PROC_SYS_KERNEL\t\"overflowuid\"\n+#define OVERFLOWGIDPATH PROC_SYS_KERNEL\t\"overflowgid\"\n \n static long overflowuid;\n static long overflowgid;\ndiff --git a/testcases/kernel/containers/userns/userns06_capcheck.c b/testcases/kernel/containers/userns/userns06_capcheck.c\nindex 8669657b9..e623fffbb 100644\n--- a/testcases/kernel/containers/userns/userns06_capcheck.c\n+++ b/testcases/kernel/containers/userns/userns06_capcheck.c\n@@ -32,7 +32,7 @@ int main(int argc, char *argv[])\n \tif (argc < 2)\n \t\ttst_brk(TBROK, \"userns06_capcheck <privileged|unprivileged>\");\n \n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/cap_last_cap\", \"%d\", &last_cap);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL\t\"cap_last_cap\", \"%d\", &last_cap);\n \n \tif (strcmp(\"privileged\", argv[1]))\n \t\texpected_cap_flag = 0;\ndiff --git a/testcases/kernel/containers/userns/userns07.c b/testcases/kernel/containers/userns/userns07.c\nindex 9e34a3d9b..de41c77b1 100644\n--- a/testcases/kernel/containers/userns/userns07.c\n+++ b/testcases/kernel/containers/userns/userns07.c\n@@ -93,7 +93,7 @@ static struct tst_test test = {\n \t\tNULL,\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/kernel/unprivileged_userns_clone\", \"1\", TST_SR_SKIP},\n+\t\t{PROC_SYS_KERNEL \"unprivileged_userns_clone\", \"1\", TST_SR_SKIP},\n \t\t{}\n \t},\n };\ndiff --git a/testcases/kernel/containers/userns/userns08.c b/testcases/kernel/containers/userns/userns08.c\nindex fbe51c8a5..61cc22842 100644\n--- a/testcases/kernel/containers/userns/userns08.c\n+++ b/testcases/kernel/containers/userns/userns08.c\n@@ -26,6 +26,8 @@\n #include \"lapi/sched.h\"\n #include \"tst_safe_file_at.h\"\n \n+#define PROC_SYS_USER\t\"/proc/sys/user/\"\n+\n static pid_t clone_newuser(void)\n {\n \tconst struct tst_clone_args cargs = {\n@@ -119,7 +121,7 @@ static void setup(void)\n \tSAFE_WRITE(SAFE_WRITE_ALL, fd, \"\\n\", 1);\n \tSAFE_CLOSE(fd);\n \n-\tSAFE_TRY_FILE_PRINTF(\"/proc/sys/user/max_user_namespaces\", \"%d\", 10);\n+\tSAFE_TRY_FILE_PRINTF(PROC_SYS_USER \"max_user_namespaces\", \"%d\", 10);\n }\n \n static struct tst_test test = {\n@@ -133,8 +135,8 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", NULL, TST_SR_SKIP},\n-\t\t{\"/proc/sys/kernel/unprivileged_userns_clone\", \"1\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", NULL, TST_SR_SKIP},\n+\t\t{PROC_SYS_KERNEL \"unprivileged_userns_clone\", \"1\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/kernel/include/ksm_helper.h b/testcases/kernel/include/ksm_helper.h\nindex d4a6d5c7d..2b523b108 100644\n--- a/testcases/kernel/include/ksm_helper.h\n+++ b/testcases/kernel/include/ksm_helper.h\n@@ -7,7 +7,7 @@\n #ifndef KSM_HELPER_H\n #define KSM_HELPER_H\n \n-#define PATH_KSM\t\"/sys/kernel/mm/ksm/\"\n+#include \"tst_path.h\"\n \n void wait_ksmd_full_scan(void);\n \ndiff --git a/testcases/kernel/logging/kmsg/kmsg01.c b/testcases/kernel/logging/kmsg/kmsg01.c\nindex ba8179d5a..32225a059 100644\n--- a/testcases/kernel/logging/kmsg/kmsg01.c\n+++ b/testcases/kernel/logging/kmsg/kmsg01.c\n@@ -32,8 +32,8 @@\n #define NUM_READ_MSGS 3\n #define NUM_READ_RETRY 10\n #define NUM_OVERWRITE_MSGS 1024\n-#define PRINTK \"/proc/sys/kernel/printk\"\n-#define CONSOLE_LOGLEVEL_QUIET   4\n+#define PRINTK PROC_SYS_KERNEL \"printk\"\n+#define CONSOLE_LOGLEVEL_QUIET  4\n \n static int console_loglevel = -1;\n \ndiff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap05.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap05.c\nindex 75f28102d..dff48da59 100644\n--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap05.c\n+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap05.c\n@@ -31,10 +31,6 @@ static char path_sys_sz_resv[BUFSIZ];\n static char path_sys_sz_surp[BUFSIZ];\n static char path_sys_sz_huge[BUFSIZ];\n \n-#define PATH_PROC_VM\t\t\"/proc/sys/vm/\"\n-#define PATH_PROC_OVER\t\tPATH_PROC_VM \"nr_overcommit_hugepages\"\n-#define PATH_PROC_HUGE\t\tPATH_PROC_VM \"nr_hugepages\"\n-\n /* Only ia64 requires this */\n #ifdef __ia64__\n #define ADDR (void *)(0x8000000000000000UL)\n@@ -191,8 +187,8 @@ static void setup(void)\n \t\tpath = path_sys_sz_huge;\n \t\tpathover = path_sys_sz_over;\n \t} else {\n-\t\tpath = PATH_PROC_HUGE;\n-\t\tpathover = PATH_PROC_OVER;\n+\t\tpath = PATH_NR_HPAGES;\n+\t\tpathover = PATH_OC_HPAGES;\n \t}\n \n \tif (opt_alloc) {\ndiff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap32.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap32.c\nindex 188ee2176..62a019619 100644\n--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap32.c\n+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap32.c\n@@ -21,7 +21,6 @@\n \n #include \"hugetlb.h\"\n \n-#define PATH_HUGEPAGE \"/sys/kernel/mm/hugepages\"\n #define GIGANTIC_MIN_ORDER 10\n \n static int org_g_hpages;\n@@ -45,14 +44,14 @@ static void setup(void)\n \tstruct dirent *ent;\n \tunsigned long hpage_size;\n \n-\tif (access(PATH_HUGEPAGE, F_OK))\n+\tif (access(PATH_HUGEPAGES, F_OK))\n \t\ttst_brk(TCONF, \"hugetlbfs is not supported\");\n \n-\tdir = SAFE_OPENDIR(PATH_HUGEPAGE);\n+\tdir = SAFE_OPENDIR(PATH_HUGEPAGES);\n \twhile ((ent = SAFE_READDIR(dir))) {\n \t\tif ((sscanf(ent->d_name, \"hugepages-%lukB\", &hpage_size) == 1) &&\n \t\t\tis_hugetlb_gigantic(hpage_size * 1024)) {\n-\t\t\tsprintf(g_hpage_path, \"%s/%s/%s\", PATH_HUGEPAGE,\n+\t\t\tsprintf(g_hpage_path, \"%s/%s/%s\", PATH_HUGEPAGES,\n \t\t\t\t\tent->d_name, \"nr_hugepages\");\n \t\t\tbreak;\n \t\t}\n@@ -62,8 +61,8 @@ static void setup(void)\n \n \tSAFE_CLOSEDIR(dir);\n \n-\tSAFE_FILE_PRINTF(\"/proc/sys/vm/drop_caches\", \"3\");\n-\tSAFE_FILE_PRINTF(\"/proc/sys/vm/compact_memory\", \"1\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"3\");\n+\tSAFE_FILE_PRINTF(PATH_COMPACT_MEMORY, \"1\");\n \n \tif (tst_available_mem() < (long long)hpage_size) {\n \t\tg_hpage_path[0] = '\\0';\ndiff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap34.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap34.c\nindex ab7469cd7..52d6f43f8 100644\n--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap34.c\n+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap34.c\n@@ -32,7 +32,6 @@\n #define STACK_ALLOCATION_SIZE\t(16*1024*1024)\n #endif\n #define MNTPOINT \"hugetlbfs/\"\n-#define PATH_HUGEPAGE \"/sys/kernel/mm/hugepages\"\n \n #define STACKS_MAX 64\n \ndiff --git a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat04.c b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat04.c\nindex 9f877fd07..c3c07e923 100644\n--- a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat04.c\n+++ b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat04.c\n@@ -82,7 +82,7 @@ static void setup(void)\n \tlong hpage_size, orig_hugepages;\n \tunsigned long new_shmmax;\n \n-\torig_hugepages = TST_SYS_CONF_LONG_GET(\"/proc/sys/vm/nr_hugepages\");\n+\torig_hugepages = TST_SYS_CONF_LONG_GET(PATH_NR_HPAGES);\n \tSAFE_FILE_SCANF(PATH_SHMMAX, \"%lu\", &new_shmmax);\n \n \tif (new_shmmax < SIZE)\ndiff --git a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c\nindex 625761f6e..150c9b61e 100644\n--- a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c\n+++ b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c\n@@ -19,7 +19,7 @@\n  * depending on the system being tested.\n  */\n #define MAXIDS\t8192\n-#define PATH_SHMMNI\t\"/proc/sys/kernel/shmmni\"\n+#define PATH_SHMMNI\tPROC_SYS_KERNEL\t\"shmmni\"\n \n static size_t shm_size;\n static int shm_id_1 = -1;\ndiff --git a/testcases/kernel/mem/hugetlb/lib/hugetlb.h b/testcases/kernel/mem/hugetlb/lib/hugetlb.h\nindex fa742eb8d..ae23261d4 100644\n--- a/testcases/kernel/mem/hugetlb/lib/hugetlb.h\n+++ b/testcases/kernel/mem/hugetlb/lib/hugetlb.h\n@@ -29,7 +29,7 @@\n #define SHM_HUGETLB\t04000\t/* segment is mapped via hugetlb */\n #endif\n \n-#define PATH_SHMMAX \"/proc/sys/kernel/shmmax\"\n+#define PATH_SHMMAX PROC_SYS_KERNEL \"shmmax\"\n \n #ifndef barrier\n # ifdef mb\ndiff --git a/testcases/kernel/mem/ksm/ksm01.c b/testcases/kernel/mem/ksm/ksm01.c\nindex be03f943f..444737c9f 100644\n--- a/testcases/kernel/mem/ksm/ksm01.c\n+++ b/testcases/kernel/mem/ksm/ksm01.c\n@@ -74,13 +74,13 @@ static struct tst_test test = {\n \t},\n \t.setup = setup,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/sys/kernel/mm/ksm/run\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/sleep_millisecs\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/max_page_sharing\", NULL,\n+\t\t{KSM_FP(\"run\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"sleep_millisecs\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"max_page_sharing\"), NULL,\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/merge_across_nodes\", \"1\",\n+\t\t{KSM_FP(\"merge_across_nodes\"), \"1\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/smart_scan\", \"0\",\n+\t\t{KSM_FP(\"smart_scan\"), \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TBROK_RO},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/mem/ksm/ksm02.c b/testcases/kernel/mem/ksm/ksm02.c\nindex 147e7e834..c0f25faa5 100644\n--- a/testcases/kernel/mem/ksm/ksm02.c\n+++ b/testcases/kernel/mem/ksm/ksm02.c\n@@ -97,13 +97,13 @@ static struct tst_test test = {\n \t},\n \t.setup = setup,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/sys/kernel/mm/ksm/run\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/sleep_millisecs\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/max_page_sharing\", NULL,\n+\t\t{KSM_FP(\"run\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"sleep_millisecs\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"max_page_sharing\"), NULL,\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/merge_across_nodes\", \"1\",\n+\t\t{KSM_FP(\"merge_across_nodes\"), \"1\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/smart_scan\", \"0\",\n+\t\t{KSM_FP(\"smart_scan\"), \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TBROK_RO},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/mem/ksm/ksm03.c b/testcases/kernel/mem/ksm/ksm03.c\nindex 34a086ae7..c82881f3f 100644\n--- a/testcases/kernel/mem/ksm/ksm03.c\n+++ b/testcases/kernel/mem/ksm/ksm03.c\n@@ -79,13 +79,13 @@ static struct tst_test test = {\n \t},\n \t.setup = setup,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/sys/kernel/mm/ksm/run\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/sleep_millisecs\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/max_page_sharing\", NULL,\n+\t\t{KSM_FP(\"run\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"sleep_millisecs\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"max_page_sharing\"), NULL,\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/merge_across_nodes\", \"1\",\n+\t\t{KSM_FP(\"merge_across_nodes\"), \"1\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/smart_scan\", \"0\",\n+\t\t{KSM_FP(\"smart_scan\"), \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TBROK_RO},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/mem/ksm/ksm04.c b/testcases/kernel/mem/ksm/ksm04.c\nindex a9a06be40..455daec2a 100644\n--- a/testcases/kernel/mem/ksm/ksm04.c\n+++ b/testcases/kernel/mem/ksm/ksm04.c\n@@ -86,13 +86,13 @@ static struct tst_test test = {\n \t},\n \t.setup = setup,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/sys/kernel/mm/ksm/run\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/sleep_millisecs\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/max_page_sharing\", NULL,\n+\t\t{KSM_FP(\"run\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"sleep_millisecs\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"max_page_sharing\"), NULL,\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/merge_across_nodes\", \"1\",\n+\t\t{KSM_FP(\"merge_across_nodes\"), \"1\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/smart_scan\", \"0\",\n+\t\t{KSM_FP(\"smart_scan\"), \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TBROK_RO},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/mem/ksm/ksm05.c b/testcases/kernel/mem/ksm/ksm05.c\nindex 96ffad511..cb182fef4 100644\n--- a/testcases/kernel/mem/ksm/ksm05.c\n+++ b/testcases/kernel/mem/ksm/ksm05.c\n@@ -93,8 +93,8 @@ static struct tst_test test = {\n \t.forks_child = 1,\n \t.test_all = test_ksm,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/sys/kernel/mm/ksm/run\", \"1\", TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/smart_scan\", \"0\",\n+\t\t{KSM_FP(\"run\"), \"1\", TST_SR_TBROK},\n+\t\t{KSM_FP(\"smart_scan\"), \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TBROK_RO},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/mem/ksm/ksm06.c b/testcases/kernel/mem/ksm/ksm06.c\nindex 22371ea53..73f5c7931 100644\n--- a/testcases/kernel/mem/ksm/ksm06.c\n+++ b/testcases/kernel/mem/ksm/ksm06.c\n@@ -132,12 +132,12 @@ static struct tst_test test = {\n \t},\n \t.setup = setup,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/sys/kernel/mm/ksm/max_page_sharing\", NULL,\n+\t\t{KSM_FP(\"max_page_sharing\"), NULL,\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n-\t\t{\"/sys/kernel/mm/ksm/run\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/sleep_millisecs\", NULL, TST_SR_TBROK},\n-\t\t{\"/sys/kernel/mm/ksm/merge_across_nodes\", NULL, TST_SR_TCONF},\n-\t\t{\"/sys/kernel/mm/ksm/smart_scan\", \"0\",\n+\t\t{KSM_FP(\"run\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"sleep_millisecs\"), NULL, TST_SR_TBROK},\n+\t\t{KSM_FP(\"merge_across_nodes\"), NULL, TST_SR_TCONF},\n+\t\t{KSM_FP(\"smart_scan\"), \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TBROK_RO},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/mem/ksm/ksm07.c b/testcases/kernel/mem/ksm/ksm07.c\nindex 6b97b4591..d7efd5654 100644\n--- a/testcases/kernel/mem/ksm/ksm07.c\n+++ b/testcases/kernel/mem/ksm/ksm07.c\n@@ -98,10 +98,10 @@ static struct tst_test test = {\n \t\t{}\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{PATH_KSM \"pages_skipped\", NULL, TST_SR_TCONF},\n-\t\t{PATH_KSM \"run\", NULL, TST_SR_TCONF},\n-\t\t{PATH_KSM \"sleep_millisecs\", NULL, TST_SR_TCONF},\n-\t\t{PATH_KSM \"smart_scan\", \"1\",\n+\t\t{KSM_FP(\"pages_skipped\"), NULL, TST_SR_TCONF},\n+\t\t{KSM_FP(\"run\"), NULL, TST_SR_TCONF},\n+\t\t{KSM_FP(\"sleep_millisecs\"), NULL, TST_SR_TCONF},\n+\t\t{KSM_FP(\"smart_scan\"), \"1\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/mem/oom/oom.h b/testcases/kernel/mem/oom/oom.h\nindex 42ed181b0..643bd382a 100644\n--- a/testcases/kernel/mem/oom/oom.h\n+++ b/testcases/kernel/mem/oom/oom.h\n@@ -7,16 +7,17 @@\n #define OOM_H_\n \n #include <pthread.h>\n+#include \"tst_path.h\"\n #include \"config.h\"\n #include \"numa_helper.h\"\n \n-#define PATH_KSM        \"/sys/kernel/mm/ksm/\"\n-\n #define LENGTH\t\t\t(3UL<<30)\n #define NORMAL\t\t\t1\n #define MLOCK\t\t\t2\n #define KSM\t\t\t3\n \n+#define OVERCOMMIT_MEMORY\tPROC_SYS_VM \"overcommit_memory\"\n+\n #ifdef HAVE_NUMA_V2\n static inline void set_global_mempolicy(int mempolicy)\n {\n@@ -222,10 +223,10 @@ static inline void testoom(int mempolicy, int lite, int retcode, int allow_sigki\n \t\t\t \"skip OOM test for KSM pags\");\n \t} else {\n \t\ttst_res(TINFO, \"start OOM testing for KSM pages.\");\n-\t\tSAFE_FILE_SCANF(PATH_KSM \"run\", \"%d\", &ksm_run_orig);\n-\t\tSAFE_FILE_PRINTF(PATH_KSM \"run\", \"1\");\n+\t\tSAFE_FILE_SCANF(KSM_FP(\"run\"), \"%d\", &ksm_run_orig);\n+\t\tSAFE_FILE_PRINTF(KSM_FP(\"run\"), \"1\");\n \t\toom(KSM, lite, retcode, allow_sigkill);\n-\t\tSAFE_FILE_PRINTF(PATH_KSM \"run\", \"%d\", ksm_run_orig);\n+\t\tSAFE_FILE_PRINTF(KSM_FP(\"run\"), \"%d\", ksm_run_orig);\n \t}\n }\n \ndiff --git a/testcases/kernel/mem/oom/oom01.c b/testcases/kernel/mem/oom/oom01.c\nindex 48fe85849..46ea0c562 100644\n--- a/testcases/kernel/mem/oom/oom01.c\n+++ b/testcases/kernel/mem/oom/oom01.c\n@@ -17,8 +17,6 @@\n #include \"tst_test.h\"\n #include \"oom.h\"\n \n-#define OVERCOMMIT_MEMORY \"/proc/sys/vm/overcommit_memory\"\n-\n static void verify_oom(void)\n {\n \t/* we expect mmap to fail before OOM is hit */\ndiff --git a/testcases/kernel/mem/oom/oom02.c b/testcases/kernel/mem/oom/oom02.c\nindex 01a405ec1..d0c19051a 100644\n--- a/testcases/kernel/mem/oom/oom02.c\n+++ b/testcases/kernel/mem/oom/oom02.c\n@@ -49,7 +49,7 @@ static struct tst_test test = {\n \t.test_all = verify_oom,\n \t.skip_in_compat = 1,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/vm/overcommit_memory\", \"1\", TST_SR_TBROK},\n+\t\t{OVERCOMMIT_MEMORY, \"1\", TST_SR_TBROK},\n \t\t{}\n \t},\n };\ndiff --git a/testcases/kernel/mem/oom/oom03.c b/testcases/kernel/mem/oom/oom03.c\nindex f218b8130..03dca168b 100644\n--- a/testcases/kernel/mem/oom/oom03.c\n+++ b/testcases/kernel/mem/oom/oom03.c\n@@ -76,7 +76,7 @@ static struct tst_test test = {\n \t.needs_cgroup_ctrls = (const char *const []){ \"memory\", NULL },\n \t.skip_in_compat = 1,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/vm/overcommit_memory\", \"1\", TST_SR_TBROK},\n+\t\t{OVERCOMMIT_MEMORY, \"1\", TST_SR_TBROK},\n \t\t{}\n \t},\n };\ndiff --git a/testcases/kernel/mem/oom/oom04.c b/testcases/kernel/mem/oom/oom04.c\nindex d4beb12c7..ea632acab 100644\n--- a/testcases/kernel/mem/oom/oom04.c\n+++ b/testcases/kernel/mem/oom/oom04.c\n@@ -72,7 +72,7 @@ static struct tst_test test = {\n \t.needs_cgroup_ctrls = (const char *const []){ \"cpuset\", NULL },\n \t.skip_in_compat = 1,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/vm/overcommit_memory\", \"1\", TST_SR_TBROK},\n+\t\t{OVERCOMMIT_MEMORY, \"1\", TST_SR_TBROK},\n \t\t{}\n \t},\n };\ndiff --git a/testcases/kernel/mem/oom/oom05.c b/testcases/kernel/mem/oom/oom05.c\nindex 6b8d436d1..edb690676 100644\n--- a/testcases/kernel/mem/oom/oom05.c\n+++ b/testcases/kernel/mem/oom/oom05.c\n@@ -95,7 +95,7 @@ static struct tst_test test = {\n \t},\n \t.skip_in_compat = 1,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/vm/overcommit_memory\", \"1\", TST_SR_TBROK},\n+\t\t{OVERCOMMIT_MEMORY, \"1\", TST_SR_TBROK},\n \t\t{}\n \t},\n };\ndiff --git a/testcases/kernel/mem/thp/thp.h b/testcases/kernel/mem/thp/thp.h\nindex 7723bedc2..ef84bbb42 100644\n--- a/testcases/kernel/mem/thp/thp.h\n+++ b/testcases/kernel/mem/thp/thp.h\n@@ -6,7 +6,7 @@\n #ifndef THP_H\n #define THP_H\n \n-#define PATH_THP \"/sys/kernel/mm/transparent_hugepage/\"\n+#include \"tst_path.h\"\n \n static inline void check_hugepage(void)\n {\ndiff --git a/testcases/kernel/sched/sysctl/proc_sched_rt01.c b/testcases/kernel/sched/sysctl/proc_sched_rt01.c\nindex df57ebcde..2a72bf40d 100644\n--- a/testcases/kernel/sched/sysctl/proc_sched_rt01.c\n+++ b/testcases/kernel/sched/sysctl/proc_sched_rt01.c\n@@ -26,9 +26,9 @@\n #include <stdio.h>\n #include \"tst_test.h\"\n \n-#define RT_PERIOD_US \"/proc/sys/kernel/sched_rt_period_us\"\n-#define RT_RUNTIME_US \"/proc/sys/kernel/sched_rt_runtime_us\"\n-#define RR_TIMESLICE_MS \"/proc/sys/kernel/sched_rr_timeslice_ms\"\n+#define RT_PERIOD_US\tPROC_SYS_KERNEL \"sched_rt_period_us\"\n+#define RT_RUNTIME_US\tPROC_SYS_KERNEL \"sched_rt_runtime_us\"\n+#define RR_TIMESLICE_MS\tPROC_SYS_KERNEL \"sched_rr_timeslice_ms\"\n \n static int period_fd;\n static int runtime_fd;\ndiff --git a/testcases/kernel/syscalls/fanotify/fanotify10.c b/testcases/kernel/syscalls/fanotify/fanotify10.c\nindex 41f13408a..257b72ddb 100644\n--- a/testcases/kernel/syscalls/fanotify/fanotify10.c\n+++ b/testcases/kernel/syscalls/fanotify/fanotify10.c\n@@ -99,8 +99,7 @@ static int ignore_mark_unsupported;\n #define FILE_EXEC_PATH2 MNT2_PATH\"/\"TEST_APP\n #define FILE2_EXEC_PATH2 MNT2_PATH\"/\"TEST_APP2\n \n-#define DROP_CACHES_FILE \"/proc/sys/vm/drop_caches\"\n-#define CACHE_PRESSURE_FILE \"/proc/sys/vm/vfs_cache_pressure\"\n+#define CACHE_PRESSURE_FILE PROC_SYS_VM \"vfs_cache_pressure\"\n \n static pid_t child_pid;\n static int bind_mount_created;\n@@ -517,9 +516,9 @@ static void drop_caches(void)\n \t * In order to ensure that the inode can be released in the two-tier\n \t * directory structure, drop_cache is required three times.\n \t */\n-\tSAFE_FILE_PRINTF(DROP_CACHES_FILE, \"3\");\n-\tSAFE_FILE_PRINTF(DROP_CACHES_FILE, \"3\");\n-\tSAFE_FILE_PRINTF(DROP_CACHES_FILE, \"3\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"3\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"3\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"3\");\n }\n \n static int create_fanotify_groups(unsigned int n)\ndiff --git a/testcases/kernel/syscalls/fcntl/fcntl35.c b/testcases/kernel/syscalls/fcntl/fcntl35.c\nindex 2d730377b..69ed8b149 100644\n--- a/testcases/kernel/syscalls/fcntl/fcntl35.c\n+++ b/testcases/kernel/syscalls/fcntl/fcntl35.c\n@@ -49,13 +49,13 @@ static void setup(void)\n \ttest_max_unpriv = getpagesize();\n \ttest_max_priv = test_max_unpriv * 16;\n \n-\tif (!access(\"/proc/sys/fs/pipe-max-size\", F_OK)) {\n-\t\tSAFE_FILE_SCANF(\"/proc/sys/fs/pipe-max-size\", \"%d\",\n+\tif (!access(PROC_SYS_FS \"pipe-max-size\", F_OK)) {\n+\t\tSAFE_FILE_SCANF(PROC_SYS_FS \"pipe-max-size\", \"%d\",\n \t\t\t\t&pipe_max_unpriv);\n-\t\tSAFE_FILE_PRINTF(\"/proc/sys/fs/pipe-max-size\", \"%d\",\n+\t\tSAFE_FILE_PRINTF(PROC_SYS_FS \"pipe-max-size\", \"%d\",\n \t\t\t\ttest_max_unpriv);\n \t} else {\n-\t\ttst_brk(TCONF, \"/proc/sys/fs/pipe-max-size doesn't exist\");\n+\t\ttst_brk(TCONF, PROC_SYS_FS \"pipe-max-size doesn't exist\");\n \t}\n \n \tpw = SAFE_GETPWNAM(\"nobody\");\n@@ -63,7 +63,7 @@ static void setup(void)\n \n static void cleanup(void)\n {\n-\tSAFE_FILE_PRINTF(\"/proc/sys/fs/pipe-max-size\", \"%d\", pipe_max_unpriv);\n+\tSAFE_FILE_PRINTF(PROC_SYS_FS \"pipe-max-size\", \"%d\", pipe_max_unpriv);\n }\n \n static int verify_pipe_size(int exp_pip_sz, char *desp)\ndiff --git a/testcases/kernel/syscalls/inotify/inotify07.c b/testcases/kernel/syscalls/inotify/inotify07.c\nindex b4000f353..920ad0de2 100644\n--- a/testcases/kernel/syscalls/inotify/inotify07.c\n+++ b/testcases/kernel/syscalls/inotify/inotify07.c\n@@ -153,7 +153,7 @@ static void setup(void)\n \ttst_res(TINFO, DIR_PATH \" ino=%lu\", buf.st_ino);\n \n \t/* Drop dentry caches, so overlayfs will allocate a new dentry */\n-\tSAFE_FILE_PRINTF(\"/proc/sys/vm/drop_caches\", \"2\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"2\");\n \n \t/* Copy up directory to make it a merge directory */\n \tSAFE_CHMOD(DIR_PATH, 0700);\ndiff --git a/testcases/kernel/syscalls/inotify/inotify08.c b/testcases/kernel/syscalls/inotify/inotify08.c\nindex e0837cac3..afb6eae60 100644\n--- a/testcases/kernel/syscalls/inotify/inotify08.c\n+++ b/testcases/kernel/syscalls/inotify/inotify08.c\n@@ -146,7 +146,7 @@ static void setup(void)\n \t\t\tmajor(buf.st_dev), minor(buf.st_dev));\n \n \t/* Drop dentry caches, so overlayfs will allocate a new dentry */\n-\tSAFE_FILE_PRINTF(\"/proc/sys/vm/drop_caches\", \"2\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"2\");\n \n \t/* Copy up file */\n \tSAFE_CHMOD(FILE_PATH, 0600);\ndiff --git a/testcases/kernel/syscalls/io_uring/io_uring01.c b/testcases/kernel/syscalls/io_uring/io_uring01.c\nindex 4c64e562b..1f562cc2f 100644\n--- a/testcases/kernel/syscalls/io_uring/io_uring01.c\n+++ b/testcases/kernel/syscalls/io_uring/io_uring01.c\n@@ -165,7 +165,7 @@ static struct tst_test test = {\n \t\t{}\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/kernel/io_uring_disabled\", \"0\",\n+\t\t{PROC_SYS_KERNEL \"io_uring_disabled\", \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n \t\t{}\n \t}\ndiff --git a/testcases/kernel/syscalls/io_uring/io_uring02.c b/testcases/kernel/syscalls/io_uring/io_uring02.c\nindex 50206cf1f..7052a1c62 100644\n--- a/testcases/kernel/syscalls/io_uring/io_uring02.c\n+++ b/testcases/kernel/syscalls/io_uring/io_uring02.c\n@@ -255,7 +255,7 @@ static struct tst_test test = {\n \t\t{}\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/kernel/io_uring_disabled\", \"0\",\n+\t\t{PROC_SYS_KERNEL \"io_uring_disabled\", \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/syscalls/io_uring/io_uring03.c b/testcases/kernel/syscalls/io_uring/io_uring03.c\nindex 645c96b02..e5c804831 100644\n--- a/testcases/kernel/syscalls/io_uring/io_uring03.c\n+++ b/testcases/kernel/syscalls/io_uring/io_uring03.c\n@@ -133,7 +133,7 @@ static struct tst_test test = {\n \t\t{}\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/kernel/io_uring_disabled\", \"0\",\n+\t\t{PROC_SYS_KERNEL \"io_uring_disabled\", \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n \t\t{}\n \t}\ndiff --git a/testcases/kernel/syscalls/ipc/msgget/msgget03.c b/testcases/kernel/syscalls/ipc/msgget/msgget03.c\nindex f3d7579a3..4c9409c0c 100644\n--- a/testcases/kernel/syscalls/ipc/msgget/msgget03.c\n+++ b/testcases/kernel/syscalls/ipc/msgget/msgget03.c\n@@ -74,7 +74,7 @@ static struct tst_test test = {\n \t.cleanup = cleanup,\n \t.test_all = verify_msgget,\n \t.save_restore = (const struct tst_path_val[]){\n-\t\t{\"/proc/sys/kernel/msgmni\", NULL, TST_SR_TCONF},\n+\t\t{PROC_SYS_KERNEL \"msgmni\", NULL, TST_SR_TCONF},\n \t\t{}\n \t}\n };\ndiff --git a/testcases/kernel/syscalls/ipc/msgget/msgget04.c b/testcases/kernel/syscalls/ipc/msgget/msgget04.c\nindex 7f8f2ed9e..af7e3f8a4 100644\n--- a/testcases/kernel/syscalls/ipc/msgget/msgget04.c\n+++ b/testcases/kernel/syscalls/ipc/msgget/msgget04.c\n@@ -22,7 +22,7 @@\n #include \"tst_safe_sysv_ipc.h\"\n #include \"tse_newipc.h\"\n \n-#define NEXT_ID_PATH \"/proc/sys/kernel/msg_next_id\"\n+#define NEXT_ID_PATH PROC_SYS_KERNEL \"msg_next_id\"\n static int queue_id, pid;\n static key_t msgkey;\n \ndiff --git a/testcases/kernel/syscalls/ipc/msgget/msgget05.c b/testcases/kernel/syscalls/ipc/msgget/msgget05.c\nindex c683142f5..e362f7fb0 100644\n--- a/testcases/kernel/syscalls/ipc/msgget/msgget05.c\n+++ b/testcases/kernel/syscalls/ipc/msgget/msgget05.c\n@@ -20,7 +20,7 @@\n #include \"tst_safe_sysv_ipc.h\"\n #include \"tse_newipc.h\"\n \n-#define NEXT_ID_PATH \"/proc/sys/kernel/msg_next_id\"\n+#define NEXT_ID_PATH PROC_SYS_KERNEL \"msg_next_id\"\n \n static int queue_id[2], pid;\n static key_t msgkey[2];\ndiff --git a/testcases/kernel/syscalls/ipc/semget/semget05.c b/testcases/kernel/syscalls/ipc/semget/semget05.c\nindex 57a65dbdd..5ef242d8e 100644\n--- a/testcases/kernel/syscalls/ipc/semget/semget05.c\n+++ b/testcases/kernel/syscalls/ipc/semget/semget05.c\n@@ -38,7 +38,7 @@ static void setup(void)\n \tused_cnt = GET_USED_ARRAYS();\n \ttst_res(TINFO, \"Current environment %d semaphore arrays are already in use\",\n \t\tused_cnt);\n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/sem\", \"%*d %*d %*d %d\", &maxsems);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"sem\", \"%*d %*d %*d %d\", &maxsems);\n \n \t/* Prevent timeout due to high semaphore array limit */\n \ttst_set_runtime(maxsems / 200);\n@@ -74,7 +74,7 @@ static struct tst_test test = {\n \t.cleanup = cleanup,\n \t.test_all = verify_semget,\n \t.save_restore = (const struct tst_path_val[]){\n-\t\t{\"/proc/sys/kernel/sem\", NULL,\n+\t\t{PROC_SYS_KERNEL \"sem\", NULL,\n \t\t\tTST_SR_TCONF_MISSING | TST_SR_SKIP_RO},\n \t\t{}\n \t}\ndiff --git a/testcases/kernel/syscalls/ipc/shmctl/shmctl03.c b/testcases/kernel/syscalls/ipc/shmctl/shmctl03.c\nindex a1f53e7c1..4e45af4af 100644\n--- a/testcases/kernel/syscalls/ipc/shmctl/shmctl03.c\n+++ b/testcases/kernel/syscalls/ipc/shmctl/shmctl03.c\n@@ -30,9 +30,9 @@ static void verify_ipcinfo(void)\n \telse\n \t\ttst_res(TPASS, \"shmmin = 1\");\n \n-\tTST_ASSERT_ULONG(\"/proc/sys/kernel/shmmax\", info.shmmax);\n-\tTST_ASSERT_ULONG(\"/proc/sys/kernel/shmmni\", info.shmmni);\n-\tTST_ASSERT_ULONG(\"/proc/sys/kernel/shmall\", info.shmall);\n+\tTST_ASSERT_ULONG(PROC_SYS_KERNEL \"shmmax\", info.shmmax);\n+\tTST_ASSERT_ULONG(PROC_SYS_KERNEL \"shmmni\", info.shmmni);\n+\tTST_ASSERT_ULONG(PROC_SYS_KERNEL \"shmall\", info.shmall);\n }\n \n static struct tst_test test = {\ndiff --git a/testcases/kernel/syscalls/ipc/shmget/shmget02.c b/testcases/kernel/syscalls/ipc/shmget/shmget02.c\nindex 5c77d47d8..99f7a5f92 100644\n--- a/testcases/kernel/syscalls/ipc/shmget/shmget02.c\n+++ b/testcases/kernel/syscalls/ipc/shmget/shmget02.c\n@@ -143,7 +143,7 @@ static struct tst_test test = {\n \t.tcnt = ARRAY_SIZE(tcases),\n \t.hugepages = {TST_NO_HUGEPAGES},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/kernel/shmmax\", \"8192\", TST_SR_TCONF_MISSING | TST_SR_TBROK_RO},\n+\t\t{PROC_SYS_KERNEL \"shmmax\", \"8192\", TST_SR_TCONF_MISSING | TST_SR_TBROK_RO},\n \t\t{}\n \t},\n };\ndiff --git a/testcases/kernel/syscalls/ipc/shmget/shmget03.c b/testcases/kernel/syscalls/ipc/shmget/shmget03.c\nindex a54540d58..17fce4c70 100644\n--- a/testcases/kernel/syscalls/ipc/shmget/shmget03.c\n+++ b/testcases/kernel/syscalls/ipc/shmget/shmget03.c\n@@ -37,7 +37,7 @@ static void setup(void)\n \tused_cnt = GET_USED_SEGMENTS();\n \ttst_res(TINFO, \"Current environment %d shared memory segments are already in use\",\n \t\tused_cnt);\n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/shmmni\", \"%i\", &maxshms);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"shmmni\", \"%i\", &maxshms);\n \n \tqueues = SAFE_MALLOC((maxshms - used_cnt) * sizeof(int));\n \tfor (num = 0; num < maxshms - used_cnt; num++) {\ndiff --git a/testcases/kernel/syscalls/ipc/shmget/shmget05.c b/testcases/kernel/syscalls/ipc/shmget/shmget05.c\nindex 246674938..eadf9992a 100644\n--- a/testcases/kernel/syscalls/ipc/shmget/shmget05.c\n+++ b/testcases/kernel/syscalls/ipc/shmget/shmget05.c\n@@ -23,7 +23,7 @@\n #include \"tst_safe_sysv_ipc.h\"\n #include \"tse_newipc.h\"\n \n-#define NEXT_ID_PATH \"/proc/sys/kernel/shm_next_id\"\n+#define NEXT_ID_PATH PROC_SYS_KERNEL \"shm_next_id\"\n static int shm_id, pid;\n static key_t shmkey;\n \ndiff --git a/testcases/kernel/syscalls/ipc/shmget/shmget06.c b/testcases/kernel/syscalls/ipc/shmget/shmget06.c\nindex 420844f0a..e6d027809 100644\n--- a/testcases/kernel/syscalls/ipc/shmget/shmget06.c\n+++ b/testcases/kernel/syscalls/ipc/shmget/shmget06.c\n@@ -21,7 +21,7 @@\n #include \"tst_safe_sysv_ipc.h\"\n #include \"tse_newipc.h\"\n \n-#define NEXT_ID_PATH \"/proc/sys/kernel/shm_next_id\"\n+#define NEXT_ID_PATH PROC_SYS_KERNEL \"shm_next_id\"\n \n static int shm_id[2], pid;\n static key_t shmkey[2];\ndiff --git a/testcases/kernel/syscalls/keyctl/keyctl02.c b/testcases/kernel/syscalls/keyctl/keyctl02.c\nindex 3c5a2501e..6241f4126 100644\n--- a/testcases/kernel/syscalls/keyctl/keyctl02.c\n+++ b/testcases/kernel/syscalls/keyctl/keyctl02.c\n@@ -30,7 +30,7 @@\n \n #define LOOPS\t20000\n #define MAX_WAIT_FOR_GC_MS 5000\n-#define PATH_KEY_COUNT_QUOTA\t\"/proc/sys/kernel/keys/root_maxkeys\"\n+#define PATH_KEY_COUNT_QUOTA\tPROC_SYS_KERNEL \"keys/root_maxkeys\"\n \n static int orig_maxkeys;\n static int realtime_kernel;\ndiff --git a/testcases/kernel/syscalls/madvise/madvise01.c b/testcases/kernel/syscalls/madvise/madvise01.c\nindex 884c59b0b..b9ba4bdbe 100644\n--- a/testcases/kernel/syscalls/madvise/madvise01.c\n+++ b/testcases/kernel/syscalls/madvise/madvise01.c\n@@ -24,7 +24,6 @@\n \n #define TMP_DIR \"tmp_madvise\"\n #define TEST_FILE TMP_DIR\"/testfile\"\n-#define KSM_SYS_DIR \"/sys/kernel/mm/ksm\"\n #define STR \"abcdefghijklmnopqrstuvwxyz12345\\n\"\n \n static char *sfile;\ndiff --git a/testcases/kernel/syscalls/madvise/madvise02.c b/testcases/kernel/syscalls/madvise/madvise02.c\nindex cc3faf5cf..8817746d0 100644\n--- a/testcases/kernel/syscalls/madvise/madvise02.c\n+++ b/testcases/kernel/syscalls/madvise/madvise02.c\n@@ -46,7 +46,6 @@\n #define MAP_SIZE (4 * 1024)\n #define TEST_FILE \"testfile\"\n #define STR \"abcdefghijklmnopqrstuvwxyz12345\\n\"\n-#define KSM_SYS_DIR\t\"/sys/kernel/mm/ksm\"\n \n static struct stat st;\n static long pagesize;\n@@ -98,7 +97,7 @@ static void tcases_filter(void)\n \t\tcase MADV_UNMERGEABLE:\n \t\t\t/* kernel configured with CONFIG_KSM,\n \t\t\t * skip EINVAL test for MADV_MERGEABLE. */\n-\t\t\tif (access(KSM_SYS_DIR, F_OK) == 0)\n+\t\t\tif (access(PATH_KSM, F_OK) == 0)\n \t\t\t\ttc->skip = 1;\n \t\tbreak;\n \t\tcase MADV_WILLNEED:\ndiff --git a/testcases/kernel/syscalls/madvise/madvise06.c b/testcases/kernel/syscalls/madvise/madvise06.c\nindex a9df913fc..7e2af8950 100644\n--- a/testcases/kernel/syscalls/madvise/madvise06.c\n+++ b/testcases/kernel/syscalls/madvise/madvise06.c\n@@ -48,7 +48,7 @@\n #define PASS_THRESHOLD (CHUNK_SZ / 4)\n #define PASS_THRESHOLD_KB (PASS_THRESHOLD / 1024)\n \n-static const char drop_caches_fname[] = \"/proc/sys/vm/drop_caches\";\n+static const char drop_caches_fname[] = PATH_DROP_CACHES;\n static int pg_sz, stat_refresh_sup;\n \n static long init_swap, init_swap_cached, init_cached;\ndiff --git a/testcases/kernel/syscalls/madvise/madvise08.c b/testcases/kernel/syscalls/madvise/madvise08.c\nindex 96bcaf159..03bc26acb 100644\n--- a/testcases/kernel/syscalls/madvise/madvise08.c\n+++ b/testcases/kernel/syscalls/madvise/madvise08.c\n@@ -33,7 +33,7 @@\n #include \"tst_test.h\"\n #include \"lapi/mmap.h\"\n \n-#define CORE_PATTERN \"/proc/sys/kernel/core_pattern\"\n+#define CORE_PATTERN PROC_SYS_KERNEL \"core_pattern\"\n #define CORE_FILTER \"/proc/self/coredump_filter\"\n #define YCOUNT 0x500L\n #define FMEMSIZE (YCOUNT + 0x2L)\ndiff --git a/testcases/kernel/syscalls/migrate_pages/migrate_pages02.c b/testcases/kernel/syscalls/migrate_pages/migrate_pages02.c\nindex 780aae1b5..e9b502fb8 100644\n--- a/testcases/kernel/syscalls/migrate_pages/migrate_pages02.c\n+++ b/testcases/kernel/syscalls/migrate_pages/migrate_pages02.c\n@@ -324,7 +324,7 @@ static struct tst_test test = {\n \t.test_all = run,\n \t.setup = setup,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/kernel/numa_balancing\", \"0\",\n+\t\t{PROC_SYS_KERNEL \"numa_balancing\", \"0\",\n \t\t\tTST_SR_SKIP_MISSING | TST_SR_TCONF_RO},\n \t\t{}\n \t},\ndiff --git a/testcases/kernel/syscalls/mmap/mmap10.c b/testcases/kernel/syscalls/mmap/mmap10.c\nindex fb5543899..45be81dae 100644\n--- a/testcases/kernel/syscalls/mmap/mmap10.c\n+++ b/testcases/kernel/syscalls/mmap/mmap10.c\n@@ -40,7 +40,7 @@\n #include \"tst_test.h\"\n \n #define SIZE (5 * TST_MB)\n-#define PATH_KSM \"/sys/kernel/mm/ksm/\"\n+#define PATH_KSM SYS_KERNEL_MM \"ksm/\"\n \n static size_t page_sz;\n static char *memory;\ndiff --git a/testcases/kernel/syscalls/move_pages/move_pages12.c b/testcases/kernel/syscalls/move_pages/move_pages12.c\nindex 440773a38..dc246d792 100644\n--- a/testcases/kernel/syscalls/move_pages/move_pages12.c\n+++ b/testcases/kernel/syscalls/move_pages/move_pages12.c\n@@ -76,8 +76,6 @@\n \n #define LOOPS\t10000\n #define PATH_MEMINFO\t\"/proc/meminfo\"\n-#define PATH_NR_HUGEPAGES\t\"/proc/sys/vm/nr_hugepages\"\n-#define PATH_HUGEPAGES\t\"/sys/kernel/mm/hugepages/\"\n #define TEST_NODES\t2\n \n static struct tcase {\n@@ -269,7 +267,7 @@ static void setup(void)\n \tpgsz = (int)get_page_size();\n \tSAFE_FILE_LINES_SCANF(PATH_MEMINFO, \"Hugepagesize: %d\", &hpsz);\n \n-\tSAFE_FILE_PRINTF(\"/proc/sys/vm/drop_caches\", \"3\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"3\");\n \tSAFE_FILE_LINES_SCANF(PATH_MEMINFO, \"MemFree: %ld\", &memfree);\n \ttst_res(TINFO, \"Free RAM %ld kB\", memfree);\n \n@@ -307,10 +305,10 @@ static void setup(void)\n \thpsz *= 1024;\n \n \tif (orig_hugepages_node1 == -1 || orig_hugepages_node2 == -1) {\n-\t\tSAFE_FILE_SCANF(PATH_NR_HUGEPAGES, \"%ld\", &orig_hugepages);\n+\t\tSAFE_FILE_SCANF(PATH_NR_HPAGES, \"%ld\", &orig_hugepages);\n \t\ttst_res(TINFO, \"Increasing global hugepages pool to %ld\",\n \t\t\torig_hugepages + 8);\n-\t\tSAFE_FILE_PRINTF(PATH_NR_HUGEPAGES, \"%ld\", orig_hugepages + 8);\n+\t\tSAFE_FILE_PRINTF(PATH_NR_HPAGES, \"%ld\", orig_hugepages + 8);\n \t}\n \n \talloc_free_huge_on_node(node1, 4L * hpsz);\n@@ -320,7 +318,7 @@ static void setup(void)\n static void cleanup(void)\n {\n \tif (orig_hugepages != -1)\n-\t\tSAFE_FILE_PRINTF(PATH_NR_HUGEPAGES, \"%ld\", orig_hugepages);\n+\t\tSAFE_FILE_PRINTF(PATH_NR_HPAGES, \"%ld\", orig_hugepages);\n \n \tif (orig_hugepages_node1 != -1) {\n \t\tSAFE_FILE_PRINTF(path_hugepages_node1,\ndiff --git a/testcases/kernel/syscalls/newuname/newuname01.c b/testcases/kernel/syscalls/newuname/newuname01.c\nindex 37058023a..4318b4fff 100644\n--- a/testcases/kernel/syscalls/newuname/newuname01.c\n+++ b/testcases/kernel/syscalls/newuname/newuname01.c\n@@ -31,16 +31,16 @@ static void run(void)\n \n \tTST_EXP_EQ_STR(name->sysname, \"Linux\");\n \n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/hostname\", \"%1023[^\\n]\", proc_val);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"hostname\", \"%1023[^\\n]\", proc_val);\n \tTST_EXP_EQ_STR(name->nodename, proc_val);\n \n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/osrelease\", \"%1023[^\\n]\", proc_val);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"osrelease\", \"%1023[^\\n]\", proc_val);\n \tTST_EXP_EQ_STR(name->release, proc_val);\n \n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/version\", \"%1023[^\\n]\", proc_val);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"version\", \"%1023[^\\n]\", proc_val);\n \tTST_EXP_EQ_STR(name->version, proc_val);\n \n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/domainname\", \"%1023[^\\n]\", proc_val);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"domainname\", \"%1023[^\\n]\", proc_val);\n \tTST_EXP_EQ_STR(name->domainname, proc_val);\n }\n \ndiff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c\nindex 7306ecf51..2614f62d6 100644\n--- a/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c\n+++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c\n@@ -211,7 +211,7 @@ static void setup(void)\n \t * knowing if perf_event_open() support is enabled is checking for\n \t * the existence of the file /proc/sys/kernel/perf_event_paranoid.\n \t */\n-\tif (access(\"/proc/sys/kernel/perf_event_paranoid\", F_OK) == -1)\n+\tif (access(PROC_SYS_KERNEL \"perf_event_paranoid\", F_OK) == -1)\n \t\ttst_brk(TCONF, \"Kernel doesn't have perf_event support\");\n \n \tbind_to_current_cpu();\ndiff --git a/testcases/kernel/syscalls/pkeys/pkey01.c b/testcases/kernel/syscalls/pkeys/pkey01.c\nindex 8cbe2d6b5..6762d9912 100644\n--- a/testcases/kernel/syscalls/pkeys/pkey01.c\n+++ b/testcases/kernel/syscalls/pkeys/pkey01.c\n@@ -36,7 +36,6 @@\n \n #define TEST_FILE \"pkey_testfile\"\n #define STR \"abcdefghijklmnopqrstuvwxyz12345\\n\"\n-#define PATH_VM_NRHPS \"/proc/sys/vm/nr_hugepages\"\n \n static int size;\n static int execute_supported = 1;\ndiff --git a/testcases/kernel/syscalls/preadv2/preadv203.c b/testcases/kernel/syscalls/preadv2/preadv203.c\nindex 472543e5c..905aa8af3 100644\n--- a/testcases/kernel/syscalls/preadv2/preadv203.c\n+++ b/testcases/kernel/syscalls/preadv2/preadv203.c\n@@ -58,7 +58,7 @@ static volatile int stop;\n \n static void drop_caches(void)\n {\n-\tSAFE_FILE_PRINTF(\"/proc/sys/vm/drop_caches\", \"3\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"3\");\n }\n \n /*\ndiff --git a/testcases/kernel/syscalls/readahead/readahead02.c b/testcases/kernel/syscalls/readahead/readahead02.c\nindex 5ebc43278..d50d833fc 100644\n--- a/testcases/kernel/syscalls/readahead/readahead02.c\n+++ b/testcases/kernel/syscalls/readahead/readahead02.c\n@@ -35,7 +35,6 @@\n #include \"lapi/syscalls.h\"\n \n static char testfile[PATH_MAX] = \"testfile\";\n-#define DROP_CACHES_FNAME \"/proc/sys/vm/drop_caches\"\n #define PROC_IO_FNAME \"/proc/self/io\"\n #define DEFAULT_FILESIZE (64 * 1024 * 1024)\n #define SHORT_SLEEP_US 5000\n@@ -97,7 +96,7 @@ static int has_file(const char *fname, int required)\n \n static void drop_caches(void)\n {\n-\tSAFE_FILE_PRINTF(DROP_CACHES_FNAME, \"1\");\n+\tSAFE_FILE_PRINTF(PATH_DROP_CACHES, \"1\");\n }\n \n static unsigned long get_bytes_read(void)\n@@ -430,7 +429,7 @@ static void setup(void)\n \tif (access(PROC_IO_FNAME, F_OK))\n \t\ttst_brk(TCONF, \"Requires \" PROC_IO_FNAME);\n \n-\thas_file(DROP_CACHES_FNAME, 1);\n+\thas_file(PATH_DROP_CACHES, 1);\n \n \t/* check if readahead is supported */\n \ttst_syscall(__NR_readahead, 0, 0, 0);\ndiff --git a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c\nindex 6dbf5af89..c12d987e8 100644\n--- a/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c\n+++ b/testcases/kernel/syscalls/sched_rr_get_interval/sched_rr_get_interval01.c\n@@ -17,7 +17,7 @@\n #include \"tst_timer.h\"\n #include \"tst_sched.h\"\n \n-#define PROC_SCHED_RR_TIMESLICE_MS\t\"/proc/sys/kernel/sched_rr_timeslice_ms\"\n+#define PROC_SCHED_RR_TIMESLICE_MS\tPROC_SYS_KERNEL \"sched_rr_timeslice_ms\"\n static int proc_flag;\n \n struct tst_ts tp;\ndiff --git a/testcases/kernel/syscalls/sendmsg/sendmsg03.c b/testcases/kernel/syscalls/sendmsg/sendmsg03.c\nindex 34ebc7e95..b7187fd8f 100644\n--- a/testcases/kernel/syscalls/sendmsg/sendmsg03.c\n+++ b/testcases/kernel/syscalls/sendmsg/sendmsg03.c\n@@ -111,7 +111,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/kernel/syscalls/sendto/sendto03.c b/testcases/kernel/syscalls/sendto/sendto03.c\nindex 622de6474..b35e51b96 100644\n--- a/testcases/kernel/syscalls/sendto/sendto03.c\n+++ b/testcases/kernel/syscalls/sendto/sendto03.c\n@@ -205,7 +205,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/kernel/syscalls/setpgid/setpgid02.c b/testcases/kernel/syscalls/setpgid/setpgid02.c\nindex 978d255e5..fd5823bd8 100644\n--- a/testcases/kernel/syscalls/setpgid/setpgid02.c\n+++ b/testcases/kernel/syscalls/setpgid/setpgid02.c\n@@ -42,7 +42,7 @@ static void setup(void)\n \t * pid_max would not be in use by another process and guarantees that\n \t * it corresponds to an invalid PGID, generating EPERM.\n \t */\n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/pid_max\", \"%d\\n\", &inval_pgid);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"pid_max\", \"%d\\n\", &inval_pgid);\n }\n \n static void run(unsigned int n)\ndiff --git a/testcases/kernel/syscalls/setsockopt/setsockopt05.c b/testcases/kernel/syscalls/setsockopt/setsockopt05.c\nindex 35a3d1bd3..d09a3b527 100644\n--- a/testcases/kernel/syscalls/setsockopt/setsockopt05.c\n+++ b/testcases/kernel/syscalls/setsockopt/setsockopt05.c\n@@ -88,7 +88,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/kernel/syscalls/setsockopt/setsockopt06.c b/testcases/kernel/syscalls/setsockopt/setsockopt06.c\nindex 2160b29e7..840155b8d 100644\n--- a/testcases/kernel/syscalls/setsockopt/setsockopt06.c\n+++ b/testcases/kernel/syscalls/setsockopt/setsockopt06.c\n@@ -116,7 +116,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/kernel/syscalls/setsockopt/setsockopt08.c b/testcases/kernel/syscalls/setsockopt/setsockopt08.c\nindex 76ec1054e..70985571b 100644\n--- a/testcases/kernel/syscalls/setsockopt/setsockopt08.c\n+++ b/testcases/kernel/syscalls/setsockopt/setsockopt08.c\n@@ -158,7 +158,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/kernel/syscalls/setsockopt/setsockopt09.c b/testcases/kernel/syscalls/setsockopt/setsockopt09.c\nindex a4b6b9315..c3f46443a 100644\n--- a/testcases/kernel/syscalls/setsockopt/setsockopt09.c\n+++ b/testcases/kernel/syscalls/setsockopt/setsockopt09.c\n@@ -111,7 +111,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/kernel/syscalls/splice/splice.h b/testcases/kernel/syscalls/splice/splice.h\nindex 16e4c98ed..a5313e0a3 100644\n--- a/testcases/kernel/syscalls/splice/splice.h\n+++ b/testcases/kernel/syscalls/splice/splice.h\n@@ -26,13 +26,13 @@ static inline int get_max_limit(int default_len_data)\n {\n \tint pipe_max_unpriv;\n \n-\tif (!access(\"/proc/sys/fs/pipe-max-size\", F_OK)) {\n-\t\tSAFE_FILE_SCANF(\"/proc/sys/fs/pipe-max-size\", \"%d\", &pipe_max_unpriv);\n+\tif (!access(PROC_SYS_FS \"pipe-max-size\", F_OK)) {\n+\t\tSAFE_FILE_SCANF(PROC_SYS_FS \"pipe-max-size\", \"%d\", &pipe_max_unpriv);\n \t\treturn MIN(pipe_max_unpriv, default_len_data);\n \t}\n \n-\tif (!access(\"/proc/sys/fs/pipe-max-pages\", F_OK)) {\n-\t\tSAFE_FILE_SCANF(\"/proc/sys/fs/pipe-max-pages\", \"%d\", &pipe_max_unpriv);\n+\tif (!access(PROC_SYS_FS \"pipe-max-pages\", F_OK)) {\n+\t\tSAFE_FILE_SCANF(PROC_SYS_FS \"pipe-max-pages\", \"%d\", &pipe_max_unpriv);\n \t\treturn MIN(pipe_max_unpriv * getpagesize(), default_len_data);\n \t}\n \ndiff --git a/testcases/kernel/syscalls/splice/splice06.c b/testcases/kernel/syscalls/splice/splice06.c\nindex e64d32ded..860960640 100644\n--- a/testcases/kernel/syscalls/splice/splice06.c\n+++ b/testcases/kernel/syscalls/splice/splice06.c\n@@ -25,8 +25,8 @@\n #define PIPE_MAX_INIT_SIZE 65536\n #define DOMAIN_INIT_NAME \"LTP_INIT\"\n #define DOMAIN_TEST_NAME \"LTP_TEST\"\n-#define INTEGER_PROCFILE \"/proc/sys/fs/pipe-max-size\"\n-#define STRING_PROCFILE \"/proc/sys/kernel/domainname\"\n+#define INTEGER_PROCFILE PROC_SYS_FS \"pipe-max-size\"\n+#define STRING_PROCFILE PROC_SYS_KERNEL \"domainname\"\n static int pipe_max_test_size;\n \n static void format_str(char *str)\ndiff --git a/testcases/kernel/syscalls/syslog/syslog11.c b/testcases/kernel/syscalls/syslog/syslog11.c\nindex 28a6fdf49..f657fef28 100644\n--- a/testcases/kernel/syscalls/syslog/syslog11.c\n+++ b/testcases/kernel/syscalls/syslog/syslog11.c\n@@ -56,7 +56,7 @@ static void run(unsigned int n)\n static struct tst_test test = {\n \t.test = run,\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/kernel/printk\", NULL, TST_SR_TBROK},\n+\t\t{PROC_SYS_KERNEL \"printk\", NULL, TST_SR_TBROK},\n \t\t{}\n \t},\n \t.needs_root = 1,\ndiff --git a/testcases/kernel/syscalls/wait4/wait402.c b/testcases/kernel/syscalls/wait4/wait402.c\nindex 18ed0814f..12e8b68fa 100644\n--- a/testcases/kernel/syscalls/wait4/wait402.c\n+++ b/testcases/kernel/syscalls/wait4/wait402.c\n@@ -25,7 +25,7 @@ static void run(void)\n \n static void setup(void)\n {\n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/pid_max\", \"%d\\n\", &pid_max);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL \"pid_max\", \"%d\\n\", &pid_max);\n }\n \n static struct tst_test test = {\ndiff --git a/testcases/kernel/syscalls/waitid/waitid10.c b/testcases/kernel/syscalls/waitid/waitid10.c\nindex 14d4ba76b..ef701e8ef 100644\n--- a/testcases/kernel/syscalls/waitid/waitid10.c\n+++ b/testcases/kernel/syscalls/waitid/waitid10.c\n@@ -48,7 +48,7 @@ static void setup(void)\n \tchar c;\n \n \tSAFE_GETRLIMIT(RLIMIT_CORE, &rlim);\n-\tSAFE_FILE_SCANF(\"/proc/sys/kernel/core_pattern\", \"%c\", &c);\n+\tSAFE_FILE_SCANF(PROC_SYS_KERNEL\t\"core_pattern\", \"%c\", &c);\n \n \tif (rlim.rlim_cur)\n \t\treturn;\ndiff --git a/testcases/network/iptables/nft02.c b/testcases/network/iptables/nft02.c\nindex 5f0671c5d..fb06cfa3d 100644\n--- a/testcases/network/iptables/nft02.c\n+++ b/testcases/network/iptables/nft02.c\n@@ -203,7 +203,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\ndiff --git a/testcases/network/packet/fanout01.c b/testcases/network/packet/fanout01.c\nindex dc1ff6ce5..18e766d45 100644\n--- a/testcases/network/packet/fanout01.c\n+++ b/testcases/network/packet/fanout01.c\n@@ -96,7 +96,7 @@ static struct tst_test test = {\n \t\tNULL\n \t},\n \t.save_restore = (const struct tst_path_val[]) {\n-\t\t{\"/proc/sys/user/max_user_namespaces\", \"1024\", TST_SR_SKIP},\n+\t\t{PROC_SYS_USER \"max_user_namespaces\", \"1024\", TST_SR_SKIP},\n \t\t{}\n \t},\n \t.tags = (const struct tst_tag[]) {\n","prefixes":[]}