From: Alexander Graf <graf@amazon.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jonathan Corbet <corbet@lwn.net>
Cc: The AWS Nitro Enclaves Team <aws-nitro-enclaves-devel@amazon.com>,
"Arnd Bergmann" <arnd@arndb.de>,
Shuah Khan <skhan@linuxfoundation.org>,
<linux-kernel@vger.kernel.org>, <linux-doc@vger.kernel.org>,
<mancio@amazon.com>, <diapop@amazon.com>, <mknaust@amazon.com>
Subject: [PATCH 7/8] Documentation: ABI: Describe nitro_enclaves cpu_pool sysfs
Date: Thu, 30 Jul 2026 12:53:11 +0000 [thread overview]
Message-ID: <20260730125312.71415-8-graf@amazon.com> (raw)
In-Reply-To: <20260730125312.71415-1-graf@amazon.com>
An operator or an orchestrator placing an enclave needs more than the
contents of these files: how far the partition between used and avail
goes, and which node the enclave allocates from when it does not name
one. Write both down.
Assisted-by: Kiro:claude-opus-5
Signed-off-by: Alexander Graf <graf@amazon.com>
---
.../sysfs-devices-virtual-misc-nitro_enclaves | 44 +++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 45 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-devices-virtual-misc-nitro_enclaves
diff --git a/Documentation/ABI/testing/sysfs-devices-virtual-misc-nitro_enclaves b/Documentation/ABI/testing/sysfs-devices-virtual-misc-nitro_enclaves
new file mode 100644
index 000000000000..20b978c62244
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-devices-virtual-misc-nitro_enclaves
@@ -0,0 +1,44 @@
+What: /sys/devices/virtual/misc/nitro_enclaves/cpu_pool/mode
+Date: July 2026
+KernelVersion: 7.3
+Contact: aws-nitro-enclaves-devel@amazon.com
+Description:
+ Read-only. Mode of the Nitro Enclaves CPU pool, one of:
+
+ none the pool is empty (ne_cpus is unset)
+ static ne_cpus is a CPU list; the listed CPUs are
+ offlined and dedicated to the pool
+
+What: /sys/devices/virtual/misc/nitro_enclaves/cpu_pool/total
+What: /sys/devices/virtual/misc/nitro_enclaves/cpu_pool/used
+What: /sys/devices/virtual/misc/nitro_enclaves/cpu_pool/avail
+Date: July 2026
+KernelVersion: 7.3
+Contact: aws-nitro-enclaves-devel@amazon.com
+Description:
+ Read-only. CPU-list strings describing the Nitro Enclaves CPU
+ pool: total is every CPU thread dedicated to the pool, used is
+ the threads held on behalf of enclaves, and avail is the
+ threads free for allocation. A thread leaves used when the
+ enclave holding it is released; if that release fails part way
+ through, the thread stays in used until the driver is unloaded
+ or the machine reboots. used and avail partition total at any
+ instant, and each read is a consistent snapshot, so a thread
+ that changes hands between two reads can be absent from both.
+ total changes only when the pool is reconfigured, which
+ requires that no enclave exists.
+
+ These files report no error of their own. A read does take the
+ pool lock, so it can wait for a write to ne_cpus to finish.
+
+ By default, allocation for a new enclave targets the NUMA
+ node that owns the first core in total and does not spill to
+ another node. NE_SET_ALLOC_NUMA_NODE changes the target, and
+ its node-agnostic value lets one enclave take cores from
+ more than one node.
+
+ Pool threads are offline, so the threads free on a given
+ node come from intersecting avail with the nodeN/cpuM
+ symlinks under /sys/devices/system/node, which outlive a CPU
+ going offline. nodeN/cpulist is filtered against
+ cpu_online_mask and lists none of them.
diff --git a/MAINTAINERS b/MAINTAINERS
index 716acfc3d7c1..e573764d9cc2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -19184,6 +19184,7 @@ R: The AWS Nitro Enclaves Team <aws-nitro-enclaves-devel@amazon.com>
L: linux-kernel@vger.kernel.org
S: Supported
W: https://aws.amazon.com/ec2/nitro/nitro-enclaves/
+F: Documentation/ABI/testing/sysfs-devices-virtual-misc-nitro_enclaves
F: Documentation/virt/ne_overview.rst
F: drivers/virt/nitro_enclaves/
F: include/linux/nitro_enclaves.h
--
2.47.1
next prev parent reply other threads:[~2026-07-30 12:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 12:53 [PATCH 0/8] nitro_enclaves: Support multi-NUMA CPU pools and per-node allocation Alexander Graf
2026-07-30 12:53 ` [PATCH 1/8] nitro_enclaves: Let 32-bit processes use the ioctl interface Alexander Graf
2026-07-30 12:53 ` [PATCH 2/8] nitro_enclaves: Initialise the CPU pool mutex statically Alexander Graf
2026-07-30 12:53 ` [PATCH 3/8] nitro_enclaves: Slot pool cores by sibling mask Alexander Graf
2026-07-30 12:53 ` [PATCH 4/8] nitro_enclaves: Allow the CPU pool to span NUMA nodes Alexander Graf
2026-07-30 12:53 ` [PATCH 5/8] nitro_enclaves: Add NE_SET_ALLOC_NUMA_NODE Alexander Graf
2026-07-30 15:28 ` Arnd Bergmann
2026-07-30 12:53 ` [PATCH 6/8] nitro_enclaves: Expose CPU pool state under sysfs Alexander Graf
2026-07-30 15:28 ` Arnd Bergmann
2026-07-30 12:53 ` Alexander Graf [this message]
2026-07-30 12:53 ` [PATCH 8/8] Documentation: virt: Describe multi-NUMA Nitro Enclaves CPU pools Alexander Graf
2026-07-30 15:43 ` [PATCH 0/8] nitro_enclaves: Support multi-NUMA CPU pools and per-node allocation Arnd Bergmann
2026-07-30 16:35 ` Graf (AWS), Alexander
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260730125312.71415-8-graf@amazon.com \
--to=graf@amazon.com \
--cc=arnd@arndb.de \
--cc=aws-nitro-enclaves-devel@amazon.com \
--cc=corbet@lwn.net \
--cc=diapop@amazon.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mancio@amazon.com \
--cc=mknaust@amazon.com \
--cc=skhan@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.