cgroups.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kristen Carlson Accardi <kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: jarkko-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	dave.hansen-CPWUtch7KCBzeIdxy0IIJw@public.gmane.org,
	tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-sgx-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Zefan Li <lizefan.x-EC8Uxl6Npydl57MIdRCFDg@public.gmane.org>,
	Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
Cc: zhiquan1.li-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	Kristen Carlson Accardi
	<kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Subject: [PATCH 22/26] cgroup/misc: Add private per cgroup data to struct misc_cg
Date: Fri, 11 Nov 2022 10:35:27 -0800	[thread overview]
Message-ID: <20221111183532.3676646-23-kristen@linux.intel.com> (raw)
In-Reply-To: <20221111183532.3676646-1-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

The SGX driver needs to be able to store additional per cgroup data
specific to SGX along with the misc_cg struct. Add the ability to get
and set this data in struct misc_cg.

Signed-off-by: Kristen Carlson Accardi <kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
---
 include/linux/misc_cgroup.h | 12 ++++++++++++
 kernel/cgroup/misc.c        | 39 +++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+)

diff --git a/include/linux/misc_cgroup.h b/include/linux/misc_cgroup.h
index c00deae4d2df..7fbf3efb0f62 100644
--- a/include/linux/misc_cgroup.h
+++ b/include/linux/misc_cgroup.h
@@ -43,6 +43,7 @@ struct misc_res {
 	unsigned long max;
 	atomic_long_t usage;
 	atomic_long_t events;
+	void *priv;
 };
 
 /**
@@ -63,6 +64,8 @@ struct misc_cg *root_misc(void);
 struct misc_cg *parent_misc(struct misc_cg *cg);
 unsigned long misc_cg_read(enum misc_res_type type, struct misc_cg *cg);
 unsigned long misc_cg_max(enum misc_res_type type, struct misc_cg *cg);
+void *misc_cg_get_priv(enum misc_res_type type, struct misc_cg *cg);
+void misc_cg_set_priv(enum misc_res_type type, struct misc_cg *cg, void *priv);
 unsigned long misc_cg_res_total_usage(enum misc_res_type type);
 int misc_cg_set_capacity(enum misc_res_type type, unsigned long capacity);
 int misc_cg_try_charge(enum misc_res_type type, struct misc_cg *cg,
@@ -130,6 +133,15 @@ static inline unsigned long misc_cg_max(enum misc_res_type type, struct misc_cg
 	return 0;
 }
 
+static void *misc_cg_get_priv(enum misc_res_type type, struct misc_cg *cg)
+{
+	return NULL;
+}
+
+static void misc_cg_set_priv(enum misc_res_type type, struct misc_cg *cg, void *priv)
+{
+}
+
 static inline unsigned long misc_cg_res_total_usage(enum misc_res_type type)
 {
 	return 0;
diff --git a/kernel/cgroup/misc.c b/kernel/cgroup/misc.c
index 18d0bec7d609..642879ad136f 100644
--- a/kernel/cgroup/misc.c
+++ b/kernel/cgroup/misc.c
@@ -251,6 +251,45 @@ unsigned long misc_cg_max(enum misc_res_type type, struct misc_cg *cg)
 }
 EXPORT_SYMBOL_GPL(misc_cg_max);
 
+/**
+ * misc_cg_get_priv() - Return the priv value of the misc cgroup res.
+ * @type: Type of the misc res.
+ * @cg: Misc cgroup whose priv will be read
+ *
+ * Context: Any context.
+ * Return:
+ * 	The value of the priv field for the specified misc cgroup.
+ * 	If an invalid misc_res_type is given, NULL will be returned.
+ */
+void *misc_cg_get_priv(enum misc_res_type type, struct misc_cg *cg)
+{
+	if (!(valid_type(type) && cg))
+		return NULL;
+
+	return cg->res[type].priv;
+}
+EXPORT_SYMBOL_GPL(misc_cg_get_priv);
+
+/**
+ * misc_cg_set_priv() - Set the priv value of the misc cgroup res.
+ * @type: Type of the misc res.
+ * @cg: Misc cgroup whose priv will be written
+ * @priv: Value to store in the priv field of the struct misc_cg
+ *
+ * If an invalid misc_res_type is given, the priv data will not be
+ * stored.
+ *
+ * Context: Any context.
+ */
+void misc_cg_set_priv(enum misc_res_type type, struct misc_cg *cg, void *priv)
+{
+	if (!(valid_type(type) && cg))
+		return;
+
+	cg->res[type].priv = priv;
+}
+EXPORT_SYMBOL_GPL(misc_cg_set_priv);
+
 /**
  * misc_cg_max_show() - Show the misc cgroup max limit.
  * @sf: Interface file
-- 
2.37.3


  parent reply	other threads:[~2022-11-11 18:35 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-11 18:35 [PATCH 00/26] Add Cgroup support for SGX EPC memory Kristen Carlson Accardi
     [not found] ` <20221111183532.3676646-1-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-11 18:35   ` [PATCH 01/26] x86/sgx: Call cond_resched() at the end of sgx_reclaim_pages() Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-2-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-15 23:27       ` Jarkko Sakkinen
     [not found]         ` <Y3QgZ+ZKAfJ92U5L-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2022-11-16  1:00           ` Reinette Chatre
2022-11-11 18:35   ` [PATCH 02/26] x86/sgx: Store struct sgx_encl when allocating new va pages Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-3-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-15 23:31       ` Jarkko Sakkinen
2022-11-11 18:35   ` [PATCH 03/26] x86/sgx: Add 'struct sgx_epc_lru' to encapsulate lru list(s) Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-4-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-15 23:35       ` Jarkko Sakkinen
2022-11-11 18:35   ` [PATCH 04/26] x86/sgx: Use sgx_epc_lru for existing active page list Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 05/26] x86/sgx: Track epc pages on reclaimable or unreclaimable lists Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 06/26] x86/sgx: Introduce RECLAIM_IN_PROGRESS flag for EPC pages Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-7-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-15 23:42       ` Jarkko Sakkinen
2022-11-11 18:35   ` [PATCH 07/26] x86/sgx: Use a list to track to-be-reclaimed pages during reclaim Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 08/26] x86/sgx: Add EPC page flags to identify type of page Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 09/26] x86/sgx: Allow reclaiming up to 32 pages, but scan 16 by default Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 10/26] x86/sgx: Return the number of EPC pages that were successfully reclaimed Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 11/26] x86/sgx: Add option to ignore age of page during EPC reclaim Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 12/26] x86/sgx: Add helper to retrieve SGX EPC LRU given an EPC page Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 13/26] x86/sgx: Prepare for multiple LRUs Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 14/26] x86/sgx: Expose sgx_reclaim_pages() for use by EPC cgroup Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 15/26] x86/sgx: Add helper to grab pages from an arbitrary EPC LRU Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 16/26] x86/sgx: Add EPC OOM path to forcefully reclaim EPC Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 17/26] cgroup/misc: Add notifier block list support for css events Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-18-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-14 22:42       ` Tejun Heo
2022-11-14 23:10         ` Kristen Carlson Accardi
     [not found]           ` <6f7afaa6811cbda30d12c38d73d4b261ab733a9f.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-14 23:11             ` Tejun Heo
2022-11-14 23:17               ` Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 18/26] cgroup/misc: Expose root_misc Kristen Carlson Accardi
2022-11-14 22:19     ` Tejun Heo
2022-11-11 18:35   ` [PATCH 19/26] cgroup/misc: Expose parent_misc() Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-20-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-14 22:30       ` Tejun Heo
2022-11-11 18:35   ` [PATCH 20/26] cgroup/misc: allow users of misc cgroup to read specific cgroup usage Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-21-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-14 22:31       ` Tejun Heo
2022-11-11 18:35   ` [PATCH 21/26] cgroup/misc: allow misc cgroup consumers to read the max value Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-22-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-14 22:33       ` Tejun Heo
2022-11-11 18:35   ` Kristen Carlson Accardi [this message]
     [not found]     ` <20221111183532.3676646-23-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-14 22:34       ` [PATCH 22/26] cgroup/misc: Add private per cgroup data to struct misc_cg Tejun Heo
2022-11-11 18:35   ` [PATCH 23/26] cgroup/misc: Add tryget functionality for misc controller Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 24/26] cgroup/misc: Add SGX EPC resource type Kristen Carlson Accardi
2022-11-11 18:35   ` [PATCH 25/26] x86/sgx: Add support for misc cgroup controller Kristen Carlson Accardi
     [not found]     ` <20221111183532.3676646-26-kristen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2022-11-14 22:38       ` Tejun Heo
2022-11-11 18:35 ` [PATCH 26/26] Docs/x86/sgx: Add description for cgroup support Kristen Carlson Accardi
2022-11-12  9:28   ` Bagas Sanjaya

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=20221111183532.3676646-23-kristen@linux.intel.com \
    --to=kristen-vuqaysv1563yd54fqh9/ca@public.gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=dave.hansen-CPWUtch7KCBzeIdxy0IIJw@public.gmane.org \
    --cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
    --cc=jarkko-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sgx-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=lizefan.x-EC8Uxl6Npydl57MIdRCFDg@public.gmane.org \
    --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=zhiquan1.li-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).