From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yw1-f174.google.com (mail-yw1-f174.google.com [209.85.128.174]) (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 24D63143C61 for ; Thu, 25 Dec 2025 17:09:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766682576; cv=none; b=ivN3N0qNzu+8umGCL898NmNDGpeJ+vtgjgzSwDfLaVsqfs0menMPwEx/K3S1756/dplxhu7BQkN8nOFNo9Tta759MoyHmTdSjysqVwGQT4J0lbFWBnThkrJji1mLa7rhqc7QGFNR/611MGTnbYQD/b58bwUnG44z6DmtuG9O22Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766682576; c=relaxed/simple; bh=64FglmTS1OdF+V/prIMfTt+1sXoKkHP+6lT5SmSOBdk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=eR5H768+a4ADuZyj8Nln26vKcKPGCqaWM9W2wdW62gwV1NXWzpMfVJiI8oEchqwS9J4CgfYHWqLKdMuY0vCfaJ+wbW9I73cLcgwC77LvyW8jlfIfUfYb6GFK0bpfgs+UzzBfhvpTgdABDCX4RtG2EF64/qS6TESO9xg5r4yLmvM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=IVk2ENsc; arc=none smtp.client-ip=209.85.128.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IVk2ENsc" Received: by mail-yw1-f174.google.com with SMTP id 00721157ae682-78fc4425b6bso35843077b3.1 for ; Thu, 25 Dec 2025 09:09:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766682573; x=1767287373; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=k7qlVsNxJs5wHpy4xTAplw9Daf3JL+d5uEkSeiMaPJw=; b=IVk2ENsc7+w2YU8aQb0Iu/NmDJjmfYJq8JyKUSFQdltBCT5HTMrZz4nBCyjAR8DcHH 4urQ95Hwxpsq55rGUgjkYvGNPVYECP2CSoYnYdUhZG/Umrw2lX6Qen7I1S3bBMAR722K HBeqfv+Lkj+LF4QvLAdT1Z+kjwqwlaNYSnF4mJx6TZ/3KLRqfMVcccYbb0ChmM37NAFD S/gTjPEZazXbVHPLNI6WehMid56jrPFekpYFxocDNMbcm/+CK/b2svDH/8VbMwAlREFl e5uG6gXQAKo+Cs6wGUCwnvMZq43CSsldZQT8EeZBhstCN9UuFqI7ow0xOadqIQz03XfF Y5zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766682573; x=1767287373; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=k7qlVsNxJs5wHpy4xTAplw9Daf3JL+d5uEkSeiMaPJw=; b=ZmB4ImPmFr/GLfcDLot7GHYRAFL/Xnk3OW0e0iPK23fekBbCi1FytcmOTtVRe0jdfN m+GE1SbtPYJUyLXLEw+RPxn94AncUeXDDihf5bLuKLuqwQeq5JQzTBRjwqOwC0REmwx+ G3mQlPbilYwNptP5iTVpp/dQWm+Gu4PzVNcY1X5lt3phlzNdGKGwT00mXFA7x/kZzzxJ RcMJckdd8UHPjch1jwv3bft3r/8/Vhbfk5qErY8z1IvHtPeJYTr0E6uoBwUdcYsCjLsf lckPHXQ4Dn/eQnazuqdeY6tv+5E+uT/iZm9bTE1kl8FUDk/QexmFVuN3KCkDL+1Vbiev ChEA== X-Forwarded-Encrypted: i=1; AJvYcCXwxfieGgcbIgdnD8avEuhI+K43JhpRyZSUNjdr1BGSEHzxghZssZe+MFISz610+Wf1jm0TDiNG0XK4rcT2@vger.kernel.org X-Gm-Message-State: AOJu0YwQX7RglLsomfhZeiYMZHEqioRb3tPRfudEQW7APWFmUwtRmemm +NoCKnYPu2af3embajQ3OUzYDPFowVtsj6bnq3hf0omke4o6r2KXTkBu X-Gm-Gg: AY/fxX4KIYU5hWCtPL1Mpz2B5ARBwWevnLvLj6P3d5cWaTPZ8vFd5qrZC9yKx+NQp0x y1ZfxxJiXLeooXE1m+akUuIxoq1TiXRttKgYdnLGFQhqDEfIQggeEGah7isxbvdSygtY9GCmBtG Te1uMwWrjvkW3UkG3raRbHtdC/SZHUS5S75n3EwDnv/ZR3crXbiURAVtnhxlYP8MrNNonHELYn2 KBzzf5AvaikqwxNiUIJBB3Z+3xIJYRG+M54GeRCxsrJ1KqFUvhOS/fGaA06B60jMunkVvjb0sMq wqAsUTuR8hvAVriQaFoNMoMKg4TJBs+d22QgEKSNv8MxLy/+ptCX6+wVkOWKwS6gNcP2dcr44GO lFNfF+lS2V7Z7FvBw9aq9/Eoalw1Rf1esBdtXD5Jw0k3kkCGBhpT2XjLt1d8IPRHVyA/qdLKTHq u86JFQTuo= X-Google-Smtp-Source: AGHT+IFIuLpHsarRNwSoLm3t6E+K96wDE4rDGU/n9UNmyTCmfV0vn20FDQMesQWZb9h9vnQFHjeUuw== X-Received: by 2002:a05:690c:488a:b0:78c:f9e:1f57 with SMTP id 00721157ae682-78fb4084085mr193557537b3.28.1766682572925; Thu, 25 Dec 2025 09:09:32 -0800 (PST) Received: from localhost ([2601:346:0:79bd:5a70:118b:3656:4527]) by smtp.gmail.com with ESMTPSA id 00721157ae682-78fb44f0d4csm76080557b3.37.2025.12.25.09.09.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Dec 2025 09:09:32 -0800 (PST) From: "Yury Norov (NVIDIA)" To: Steven Rostedt , Andrew Morton , Masami Hiramatsu , Mathieu Desnoyers , Andy Shevchenko , Christophe Leroy , Randy Dunlap , Ingo Molnar , Jani Nikula , Joonas Lahtinen , David Laight , Petr Pavlu , Andi Shyti , Rodrigo Vivi , Tvrtko Ursulin , Daniel Gomez , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-modules@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: "Yury Norov (NVIDIA)" Subject: [PATCH v4 0/7] Unload linux/kernel.h Date: Thu, 25 Dec 2025 12:09:22 -0500 Message-ID: <20251225170930.1151781-1-yury.norov@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-modules@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit kernel.h hosts declarations that can be placed better. This series decouples kernel.h with some explicit and implicit dependencies; also, moves tracing functionality to a new independent header. My local build testing shows ~2% performance improvement for GCC + Ubuntu x86_64/localyesconfig. v1: https://lore.kernel.org/all/20251129195304.204082-1-yury.norov@gmail.com/ v2: https://lore.kernel.org/all/20251203162329.280182-1-yury.norov@gmail.com/ v3: https://lore.kernel.org/all/20251205175237.242022-1-yury.norov@gmail.com/ v4: - drop kernel.h dependency on linux/instruction_pointer.h (new patch #4); - drop trace_printk.h dependency on string.h (new patch #5 - Steven); - drop kernel.h dependency on trace_printk.h (new patch #7); - explicitly tested CONFIG_FORTIFY x86_64 build with no issues. 0-DAY CI Kernel Test Service: alpha allnoconfig gcc-15.1.0 alpha allyesconfig gcc-15.1.0 alpha defconfig gcc-15.1.0 arc allmodconfig clang-16 arc allmodconfig gcc-15.1.0 arc allnoconfig gcc-15.1.0 arc allyesconfig clang-22 arc allyesconfig gcc-15.1.0 arc defconfig gcc-15.1.0 arc randconfig-001-20251225 gcc-11.5.0 arc randconfig-002-20251225 gcc-11.5.0 arm allnoconfig clang-22 arm allnoconfig gcc-15.1.0 arm allyesconfig clang-16 arm allyesconfig gcc-15.1.0 arm defconfig gcc-15.1.0 arm exynos_defconfig gcc-15.1.0 arm randconfig-001-20251225 gcc-11.5.0 arm randconfig-002-20251225 gcc-11.5.0 arm randconfig-003-20251225 gcc-11.5.0 arm randconfig-004-20251225 gcc-11.5.0 arm spitz_defconfig gcc-15.1.0 arm64 allmodconfig clang-19 arm64 allmodconfig clang-22 arm64 allnoconfig gcc-15.1.0 arm64 defconfig gcc-15.1.0 arm64 randconfig-001-20251225 clang-18 arm64 randconfig-001-20251225 gcc-11.5.0 arm64 randconfig-002-20251225 gcc-11.5.0 arm64 randconfig-002-20251225 gcc-12.5.0 arm64 randconfig-003-20251225 clang-22 arm64 randconfig-003-20251225 gcc-11.5.0 arm64 randconfig-004-20251225 clang-22 arm64 randconfig-004-20251225 gcc-11.5.0 csky allmodconfig gcc-15.1.0 csky allnoconfig gcc-15.1.0 csky defconfig gcc-15.1.0 csky randconfig-001-20251225 gcc-11.5.0 csky randconfig-001-20251225 gcc-15.1.0 csky randconfig-002-20251225 gcc-11.5.0 hexagon allmodconfig clang-17 hexagon allmodconfig gcc-15.1.0 hexagon allnoconfig clang-22 hexagon allnoconfig gcc-15.1.0 hexagon defconfig gcc-15.1.0 hexagon randconfig-001-20251225 clang-22 hexagon randconfig-002-20251225 clang-22 i386 allmodconfig clang-20 i386 allmodconfig gcc-14 i386 allnoconfig gcc-14 i386 allnoconfig gcc-15.1.0 i386 allyesconfig clang-20 i386 allyesconfig gcc-14 i386 buildonly-randconfig-001-20251225 clang-20 i386 buildonly-randconfig-002-20251225 clang-20 i386 buildonly-randconfig-003-20251225 clang-20 i386 buildonly-randconfig-003-20251225 gcc-14 i386 buildonly-randconfig-004-20251225 clang-20 i386 buildonly-randconfig-005-20251225 clang-20 i386 buildonly-randconfig-006-20251225 clang-20 i386 randconfig-007-20251225 clang-20 i386 randconfig-011-20251225 clang-20 i386 randconfig-011-20251225 gcc-14 i386 randconfig-012-20251225 gcc-14 i386 randconfig-013-20251225 gcc-14 i386 randconfig-014-20251225 clang-20 i386 randconfig-014-20251225 gcc-14 i386 randconfig-015-20251225 gcc-14 i386 randconfig-016-20251225 clang-20 i386 randconfig-016-20251225 gcc-14 i386 randconfig-017-20251225 clang-20 i386 randconfig-017-20251225 gcc-14 loongarch allmodconfig clang-19 loongarch allmodconfig clang-22 loongarch allnoconfig clang-22 loongarch allnoconfig gcc-15.1.0 loongarch defconfig clang-19 loongarch randconfig-001-20251225 clang-22 loongarch randconfig-002-20251225 clang-22 loongarch randconfig-002-20251225 gcc-15.1.0 m68k allmodconfig gcc-15.1.0 m68k allnoconfig gcc-15.1.0 m68k allyesconfig clang-16 m68k allyesconfig gcc-15.1.0 m68k defconfig clang-19 microblaze allnoconfig gcc-15.1.0 microblaze allyesconfig gcc-15.1.0 microblaze defconfig clang-19 mips allmodconfig gcc-15.1.0 mips allnoconfig gcc-15.1.0 mips allyesconfig gcc-15.1.0 mips gcw0_defconfig gcc-15.1.0 nios2 allmodconfig clang-22 nios2 allmodconfig gcc-11.5.0 nios2 allnoconfig clang-22 nios2 allnoconfig gcc-11.5.0 nios2 defconfig clang-19 nios2 randconfig-001-20251225 clang-22 nios2 randconfig-001-20251225 gcc-9.5.0 nios2 randconfig-002-20251225 clang-22 nios2 randconfig-002-20251225 gcc-11.5.0 openrisc allmodconfig clang-22 openrisc allmodconfig gcc-15.1.0 openrisc allnoconfig clang-22 openrisc allnoconfig gcc-15.1.0 openrisc defconfig gcc-15.1.0 parisc allmodconfig gcc-15.1.0 parisc allnoconfig clang-22 parisc allnoconfig gcc-15.1.0 parisc allyesconfig clang-19 parisc allyesconfig gcc-15.1.0 parisc defconfig gcc-15.1.0 parisc randconfig-001-20251225 clang-22 parisc randconfig-002-20251225 clang-22 parisc64 defconfig clang-19 powerpc allmodconfig gcc-15.1.0 powerpc allnoconfig clang-22 powerpc allnoconfig gcc-15.1.0 powerpc cell_defconfig gcc-15.1.0 powerpc pmac32_defconfig gcc-15.1.0 powerpc randconfig-001-20251225 clang-22 powerpc randconfig-002-20251225 clang-22 powerpc64 randconfig-001-20251225 clang-22 powerpc64 randconfig-002-20251225 clang-22 riscv allmodconfig clang-22 riscv allnoconfig clang-22 riscv allnoconfig gcc-15.1.0 riscv allyesconfig clang-16 riscv defconfig clang-22 riscv defconfig gcc-15.1.0 riscv randconfig-001-20251225 clang-19 riscv randconfig-001-20251225 clang-22 riscv randconfig-002-20251225 clang-19 riscv randconfig-002-20251225 gcc-11.5.0 s390 allmodconfig clang-18 s390 allmodconfig clang-19 s390 allnoconfig clang-22 s390 allyesconfig gcc-15.1.0 s390 defconfig clang-22 s390 defconfig gcc-15.1.0 s390 randconfig-001-20251225 clang-19 s390 randconfig-001-20251225 gcc-14.3.0 s390 randconfig-002-20251225 clang-19 sh allmodconfig gcc-15.1.0 sh allnoconfig clang-22 sh allnoconfig gcc-15.1.0 sh allyesconfig clang-19 sh allyesconfig gcc-15.1.0 sh defconfig gcc-14 sh randconfig-001-20251225 clang-19 sh randconfig-001-20251225 gcc-15.1.0 sh randconfig-002-20251225 clang-19 sh randconfig-002-20251225 gcc-9.5.0 sh se7724_defconfig gcc-15.1.0 sparc allnoconfig clang-22 sparc allnoconfig gcc-15.1.0 sparc defconfig gcc-15.1.0 sparc randconfig-001-20251225 gcc-13 sparc randconfig-002-20251225 gcc-13 sparc64 allmodconfig clang-22 sparc64 defconfig gcc-14 sparc64 randconfig-001-20251225 gcc-13 sparc64 randconfig-002-20251225 gcc-13 um allmodconfig clang-19 um allnoconfig clang-22 um allyesconfig gcc-14 um allyesconfig gcc-15.1.0 um defconfig gcc-14 um i386_defconfig gcc-14 um randconfig-001-20251225 gcc-13 um randconfig-002-20251225 gcc-13 um x86_64_defconfig gcc-14 x86_64 allmodconfig clang-20 x86_64 allnoconfig clang-20 x86_64 allnoconfig clang-22 x86_64 allyesconfig clang-20 x86_64 buildonly-randconfig-001-20251225 clang-20 x86_64 buildonly-randconfig-001-20251225 gcc-14 x86_64 buildonly-randconfig-002-20251225 clang-20 x86_64 buildonly-randconfig-002-20251225 gcc-14 x86_64 buildonly-randconfig-003-20251225 gcc-14 x86_64 buildonly-randconfig-004-20251225 clang-20 x86_64 buildonly-randconfig-004-20251225 gcc-14 x86_64 buildonly-randconfig-005-20251225 gcc-14 x86_64 buildonly-randconfig-006-20251225 clang-20 x86_64 buildonly-randconfig-006-20251225 gcc-14 x86_64 defconfig gcc-14 x86_64 kexec clang-20 x86_64 randconfig-001-20251225 clang-20 x86_64 randconfig-002-20251225 clang-20 x86_64 randconfig-003-20251225 clang-20 x86_64 randconfig-004-20251225 clang-20 x86_64 randconfig-005-20251225 clang-20 x86_64 randconfig-006-20251225 clang-20 x86_64 randconfig-011-20251225 gcc-13 x86_64 randconfig-012-20251225 gcc-13 x86_64 randconfig-012-20251225 gcc-14 x86_64 randconfig-013-20251225 clang-20 x86_64 randconfig-013-20251225 gcc-13 x86_64 randconfig-014-20251225 clang-20 x86_64 randconfig-014-20251225 gcc-13 x86_64 randconfig-015-20251225 gcc-13 x86_64 randconfig-015-20251225 gcc-14 x86_64 randconfig-016-20251225 clang-20 x86_64 randconfig-016-20251225 gcc-13 x86_64 randconfig-071-20251225 clang-20 x86_64 randconfig-072-20251225 clang-20 x86_64 randconfig-073-20251225 clang-20 x86_64 randconfig-073-20251225 gcc-14 x86_64 randconfig-074-20251225 clang-20 x86_64 randconfig-075-20251225 clang-20 x86_64 randconfig-075-20251225 gcc-14 x86_64 randconfig-076-20251225 clang-20 x86_64 randconfig-076-20251225 gcc-14 x86_64 rhel-9.4 clang-20 x86_64 rhel-9.4-bpf gcc-14 x86_64 rhel-9.4-func clang-20 x86_64 rhel-9.4-kselftests clang-20 x86_64 rhel-9.4-kunit gcc-14 x86_64 rhel-9.4-ltp gcc-14 x86_64 rhel-9.4-rust clang-20 xtensa allnoconfig clang-22 xtensa allnoconfig gcc-15.1.0 xtensa allyesconfig clang-22 xtensa randconfig-001-20251225 gcc-13 xtensa randconfig-002-20251225 gcc-13 Merry Christmas everybody! Steven Rostedt (1): tracing: Remove size parameter in __trace_puts() Yury Norov (NVIDIA) (6): kernel.h: drop STACK_MAGIC macro moduleparam: include required headers explicitly kernel.h: move VERIFY_OCTAL_PERMISSIONS() to sysfs.h kernel.h: include linux/instruction_pointer.h explicitly tracing: move tracing declarations from kernel.h to a dedicated header kernel.h: drop trace_printk.h Documentation/filesystems/sysfs.rst | 2 +- arch/powerpc/kvm/book3s_xics.c | 1 + arch/powerpc/xmon/xmon.c | 1 + arch/s390/include/asm/processor.h | 1 + arch/s390/kernel/ipl.c | 1 + arch/s390/kernel/machine_kexec.c | 1 + drivers/gpu/drm/i915/gt/intel_gtt.h | 1 + .../drm/i915/gt/selftest_ring_submission.c | 1 + drivers/gpu/drm/i915/i915_gem.h | 1 + drivers/gpu/drm/i915/i915_selftest.h | 2 + drivers/hwtracing/stm/dummy_stm.c | 1 + drivers/infiniband/hw/hfi1/trace_dbg.h | 1 + drivers/tty/sysrq.c | 1 + drivers/usb/early/xhci-dbc.c | 1 + fs/ext4/inline.c | 1 + include/linux/kernel.h | 209 ------------------ include/linux/moduleparam.h | 7 +- include/linux/sunrpc/debug.h | 1 + include/linux/sysfs.h | 13 ++ include/linux/trace_printk.h | 204 +++++++++++++++++ include/linux/ww_mutex.h | 1 + kernel/debug/debug_core.c | 1 + kernel/panic.c | 1 + kernel/rcu/rcu.h | 1 + kernel/rcu/rcutorture.c | 1 + kernel/trace/error_report-traces.c | 1 + kernel/trace/ring_buffer_benchmark.c | 1 + kernel/trace/trace.c | 8 +- kernel/trace/trace.h | 2 +- kernel/trace/trace_benchmark.c | 1 + kernel/trace/trace_events_trigger.c | 1 + kernel/trace/trace_functions.c | 1 + kernel/trace/trace_printk.c | 1 + kernel/trace/trace_selftest.c | 1 + lib/sys_info.c | 1 + samples/fprobe/fprobe_example.c | 1 + samples/ftrace/ftrace-direct-modify.c | 1 + samples/ftrace/ftrace-direct-multi-modify.c | 1 + samples/ftrace/ftrace-direct-multi.c | 1 + samples/ftrace/ftrace-direct-too.c | 1 + samples/ftrace/ftrace-direct.c | 1 + samples/trace_printk/trace-printk.c | 1 + sound/hda/common/sysfs.c | 1 + 43 files changed, 266 insertions(+), 216 deletions(-) create mode 100644 include/linux/trace_printk.h -- 2.43.0