From nobody Sun Feb 8 01:33:52 2026 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (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 782C33D331C for ; Tue, 20 Jan 2026 20:48:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768942109; cv=none; b=AQ/hbzlh5NlN1UKM18BYh9aFHczOje7oge/a/FtHRvKvE3NFaYRUAzJO9t1zlCsiaSCtpbe8X/cE1tlMpgakpAg5wpjsDWPfjwUfgbMdCffrgMCqHEJPEq7dCiAToc8SUxC4m/aV3mMCqXfJHRRWnFFZ1qrI65uAKtGqPQrH7KU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768942109; c=relaxed/simple; bh=idZzD+qmASeZyd4nOwqF6riq/XRhSnW4bOxcRz99q4E=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Sn3FtBqFgS4mhhop1ZiB6eAPIXZ63ahRsLMU9TXPF8exPgrdmersusgzviyPcrTHlFgRYTRVNrQBPJNSPxqR42bFHWqmULbEFzjdAJutcbBR6CXSN4vlYovfwLk1l4+9SC/tx1CnBG933aS1DK0TayySQJD5m3Fy0I5eNS8i31o= 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=JHZQIU1X; arc=none smtp.client-ip=209.85.218.44 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="JHZQIU1X" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-b874c00a3fcso923801166b.1 for ; Tue, 20 Jan 2026 12:48:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768942106; x=1769546906; 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=+k1PJboJMDuM0TRQLWkcucgCYVlpX1tanOnKHKQcsmk=; b=JHZQIU1X0VjPQbq8qrCq8cns6nQqukRXqHY/wR5FHt0hBafPF1KgdoFo8Aj0PtI78s HoZ5EdI44B2oNWUbqHsD2/WLXMFCVjqvMdVZ6kEFzJR7o8xyiIMrf8g3DH6Dh6fwRyp6 NDkiDB6IGgeE3B+8QSP4y3gMNSnPZfi+JbQJent1OkzbvOylS2YJF8ttEKH3uy4xyajm 19ZMvpe9Nl+NBYjLEUJAB+o5OzU7RZBSXseSI2yRYZEihmqA2Ll1DdvnVnkPy63SEy/Z yaUuN9JNylvjOje7935/DCc6yTrLp5FGK+PovKDaHpjU4vuWOgc0+rFoVCQFmqVKb2Lp aPqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768942106; x=1769546906; 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=+k1PJboJMDuM0TRQLWkcucgCYVlpX1tanOnKHKQcsmk=; b=UBwghvWpEqzlLJMZcZG+sUN86j6DsX4g3w3+x8lkj7h/+3nyzrOULGkuDn8gcRPVT7 cQFu8lOc6hNhyArsPot1+SsH4IuSnvu6wqEm80ahA++Y22uVK0jjccc7KahtjbDI4FWj 1Lmi92hg0B5qlQE1AZSDjx6xZwWnpDXgTxaPPxiaARY/Bsbuk85LQi/1I3ogFweIHuuA j8ICbOmx1cmXAk44f/bGOeXvtziZjW1cdsfMwtzBlohcvQD48xFlTTtvTZf12dosODi9 J1bnjO/jGqyAglpE1qEnyv6xNZ234DfwYy00mTM2hHiWTpJcEFB893C35GYnC9mJ6PC/ w53w== X-Forwarded-Encrypted: i=1; AJvYcCWI0g2clT3TOX0P1N45Sv7KmY/lWsMhOuGFeZcWix68sdKWLHZ9sPC4mvgg3bZopSme425w9vWZcvG1N6Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzbtEjwF1sSWqSE4JXbEkIO0lsSMzJ7y47BKl1Mf5+NePKkk5FZ 9rQBS5mcdnZctQrjT2VLbYNGcRA3xFlpojLi4NyLZI6I/Vgam3GDmdfcKqr89w== X-Gm-Gg: AZuq6aI4J+c2VOQ45XAm1NrGoHLswQJaY7p5ZbV9F1AQqmzf8siX6hBBdBakLKph9uf jGlJp9wQIdjSrJB8jfTcDhshovz9mcCo44pX05SQaBsIlQpQ279QSKSJZ4eeShKG1ZdXu+zg92A UQZ2hJo1odNdkskScCFmMPLXffjLG8YO92GykdgV+b5ayHapxGKB/yOuj7hLjvWlhrA/nbZSTOj 7FlG0xOjy2+LXemlbjy471yKJnTLUJI2gHrxXf2R6/BOnexpkk2A8+th/pEFyTYxJLlKfYEMheB cGsyhwGydMBFJ/91MSnGrOd4ipB1jvTp68Hwlje4kkzJi+RYD6ddVW8kU7CwfBX/LlYh41AgU45 ozSQCyZcyQrFuVkR2ARbVp2V2mstuxyXTIw2xoa/Cepsi2+cxDPxbCiWcLirtKbZaPVHjChh2lp rE/yBuH2DBVrA2cLNRqSuGwVSz68S2WBEv2K+dO5KDyeUBFb3HWtqKfhQ6LrxI2w== X-Received: by 2002:a17:907:7fa0:b0:b73:826a:9102 with SMTP id a640c23a62f3a-b880036e4f4mr262368966b.49.1768942105332; Tue, 20 Jan 2026 12:48:25 -0800 (PST) Received: from f.. (cst-prg-85-136.cust.vodafone.cz. [46.135.85.136]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b879516900csm1590732766b.23.2026.01.20.12.48.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Jan 2026 12:48:24 -0800 (PST) From: Mateusz Guzik To: brauner@kernel.org Cc: viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Mateusz Guzik Subject: [PATCH] pid: reorder fields in pid_namespace to reduce false sharing Date: Tue, 20 Jan 2026 21:48:20 +0100 Message-ID: <20260120204820.1497002-1-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 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" alloc_pid() loads pid_cachep, level and pid_max prior to taking the lock. It dirties idr and pid_allocated with the lock. Some of these fields share the cacheline as is, split them up. No change in the size of the struct. Signed-off-by: Mateusz Guzik Reviewed-by: Jan Kara --- this is independent of other patches i got an inconsistent win in terms of throughput rate, but relative contention between pidmap lock and the rest went down include/linux/pid_namespace.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h index 0e7ae12c96d2..b20baaa7e62b 100644 --- a/include/linux/pid_namespace.h +++ b/include/linux/pid_namespace.h @@ -27,6 +27,13 @@ struct pid_namespace { struct idr idr; struct rcu_head rcu; unsigned int pid_allocated; +#ifdef CONFIG_SYSCTL +#if defined(CONFIG_MEMFD_CREATE) + int memfd_noexec_scope; +#endif + struct ctl_table_set set; + struct ctl_table_header *sysctls; +#endif struct task_struct *child_reaper; struct kmem_cache *pid_cachep; unsigned int level; @@ -40,13 +47,6 @@ struct pid_namespace { int reboot; /* group exit code if this pidns was rebooted */ struct ns_common ns; struct work_struct work; -#ifdef CONFIG_SYSCTL - struct ctl_table_set set; - struct ctl_table_header *sysctls; -#if defined(CONFIG_MEMFD_CREATE) - int memfd_noexec_scope; -#endif -#endif } __randomize_layout; =20 extern struct pid_namespace init_pid_ns; --=20 2.48.1