From: Dave Hansen <dave.hansen@intel.com>
To: Haitao Huang <haitao.huang@linux.intel.com>,
jarkko@kernel.org, dave.hansen@linux.intel.com, tj@kernel.org,
mkoutny@suse.com, linux-kernel@vger.kernel.org,
linux-sgx@vger.kernel.org, x86@kernel.org,
cgroups@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com,
bp@alien8.de, hpa@zytor.com, sohil.mehta@intel.com,
tim.c.chen@linux.intel.com
Cc: zhiquan1.li@intel.com, kristen@linux.intel.com,
seanjc@google.com, zhanb@microsoft.com, anakrish@microsoft.com,
mikko.ylinen@linux.intel.com, yangjie@microsoft.com,
chrisyan@microsoft.com
Subject: Re: [PATCH v9 09/15] x86/sgx: Charge mem_cgroup for per-cgroup reclamation
Date: Fri, 16 Feb 2024 13:55:10 -0800 [thread overview]
Message-ID: <0ab99d42-c3fe-4415-b993-57fb1fec21a4@intel.com> (raw)
In-Reply-To: <op.2i87qioawjvjmi@hhuan26-mobl.amr.corp.intel.com>
On 2/16/24 13:38, Haitao Huang wrote:
> On Fri, 16 Feb 2024 09:15:59 -0600, Dave Hansen <dave.hansen@intel.com>
> wrote:
...
>> Does this 'indirect' change any behavior other than whether it does a
>> search for an mm to find a place to charge the backing storage?
>
> No.
>
>> Instead of passing a flag around, why not just pass the mm?
>>
> There is no need to pass in mm. We could just check if current->mm ==
> NULL for the need of doing the search in the enclave mm list.
>
> But you had a concern [1] that the purpose was not clear hence suggested
> current_is_ksgxd().
Right, because there was only one possible way that mm could be NULL but
it wasn't obvious from the code what that way was.
> Would it be OK if we replace current_is_ksgxd() with (current->flags &
> PF_KTHREAD)? That would express the real intent of checking if calling
> context is not in a user context.
No, I think that focuses on the symptom and not on the fundamental problem.
The fundamental problem is that you need an mm in order to charge your
allocations to the right group. Indirect reclaim means you are not in a
context which is connected to the mm that should be charged while direct
reclaim is.
>> This refactoring out of 'indirect' or passing the mm around really wants
>> to be in its own patch anyway.
>>
> Looks like I could do:
> 1) refactoring of 'indirect' value/enum suggested above. This seems the
> most straightforward without depending on any assumptions of other
> kernel code.
> 2) replace current_is_ksgxd() with current->mm == NULL. This assumes
> kthreads has no mm.
> 3) replace current_is_ksgxd() with current->flags & PF_KTHREAD. This is
> direct use of the flag PF_KTHREAD, so it should be better than #2?
>
> Any preference or further thoughts?
Pass around a:
struct mm_struct *charge_mm
Then, at the bottom do:
/*
* Backing RAM allocations need to be charged to some mm and
* associated cgroup. If this context does not have an mm to
* charge, search the enclave's mm_list to find some mm
* associated with this enclave.
*/
if (!charge_mm)
... do slow mm lookup
else
return mm_to_cgroup_whatever(charge_mm);
Then just comment the call sites where the initial charge_mm comes in:
/* Indirect SGX reclaim, no mm to charge, so NULL: */
foo(..., NULL);
/* Direct SGX reclaim, charge current mm for allocations: */
foo(..., current->mm);
next prev parent reply other threads:[~2024-02-16 21:55 UTC|newest]
Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-05 21:06 [PATCH v9 00/15] Add Cgroup support for SGX EPC memory Haitao Huang
2024-02-05 21:06 ` [PATCH v9 01/15] cgroup/misc: Add per resource callbacks for CSS events Haitao Huang
2024-02-05 21:06 ` [PATCH v9 02/15] cgroup/misc: Export APIs for SGX driver Haitao Huang
2024-02-05 21:06 ` [PATCH v9 03/15] cgroup/misc: Add SGX EPC resource type Haitao Huang
2024-02-05 21:06 ` [PATCH v9 04/15] x86/sgx: Implement basic EPC misc cgroup functionality Haitao Huang
2024-02-19 12:47 ` Huang, Kai
2024-02-26 18:25 ` Michal Koutný
2024-02-27 21:35 ` Haitao Huang
2024-03-09 21:10 ` Haitao Huang
2024-02-05 21:06 ` [PATCH v9 05/15] x86/sgx: Add sgx_epc_lru_list to encapsulate LRU list Haitao Huang
2024-02-05 21:06 ` [PATCH v9 06/15] x86/sgx: Abstract tracking reclaimable pages in LRU Haitao Huang
2024-02-05 21:06 ` [PATCH v9 07/15] x86/sgx: Expose sgx_reclaim_pages() for cgroup Haitao Huang
2024-02-20 9:26 ` Huang, Kai
2024-02-05 21:06 ` [PATCH v9 08/15] x86/sgx: Implement EPC reclamation flows " Haitao Huang
2024-02-12 19:35 ` Jarkko Sakkinen
2024-02-20 9:52 ` Huang, Kai
2024-02-20 13:18 ` Michal Koutný
2024-02-20 20:09 ` Huang, Kai
2024-02-21 6:23 ` Haitao Huang
2024-02-21 10:48 ` Huang, Kai
2024-02-22 20:12 ` Haitao Huang
2024-02-22 22:24 ` Huang, Kai
2024-03-28 0:24 ` Haitao Huang
2024-02-21 6:44 ` Haitao Huang
2024-02-21 11:00 ` Huang, Kai
2024-02-22 17:20 ` Haitao Huang
2024-02-22 22:31 ` Huang, Kai
2024-02-22 18:09 ` Haitao Huang
2024-02-05 21:06 ` [PATCH v9 09/15] x86/sgx: Charge mem_cgroup for per-cgroup reclamation Haitao Huang
2024-02-12 19:46 ` Jarkko Sakkinen
2024-02-13 3:21 ` Haitao Huang
2024-02-15 23:43 ` Dave Hansen
2024-02-16 6:07 ` Haitao Huang
2024-02-16 15:15 ` Dave Hansen
2024-02-16 21:38 ` Haitao Huang
2024-02-16 21:55 ` Dave Hansen [this message]
2024-02-16 23:33 ` Haitao Huang
2024-02-05 21:06 ` [PATCH v9 10/15] x86/sgx: Add EPC reclamation in cgroup try_charge() Haitao Huang
2024-02-12 19:55 ` Jarkko Sakkinen
2024-02-12 23:15 ` Haitao Huang
2024-02-14 1:52 ` Jarkko Sakkinen
2024-02-19 15:12 ` Haitao Huang
2024-02-19 20:20 ` Jarkko Sakkinen
2024-02-19 15:39 ` [RFC PATCH] x86/sgx: Remove 'reclaim' boolean parameters Haitao Huang
2024-02-19 15:56 ` Dave Hansen
2024-02-19 20:42 ` Jarkko Sakkinen
2024-02-19 22:25 ` Haitao Huang
2024-02-19 22:43 ` Jarkko Sakkinen
2024-02-19 20:23 ` Jarkko Sakkinen
2024-02-21 11:06 ` [PATCH v9 10/15] x86/sgx: Add EPC reclamation in cgroup try_charge() Huang, Kai
2024-02-22 17:09 ` Haitao Huang
2024-02-22 21:26 ` Huang, Kai
2024-02-22 22:57 ` Haitao Huang
2024-02-23 10:18 ` Huang, Kai
2024-02-23 17:00 ` Haitao Huang
2024-02-26 1:38 ` Huang, Kai
2024-02-26 4:03 ` Haitao Huang
2024-02-26 11:36 ` Huang, Kai
2024-02-26 14:04 ` Dave Hansen
2024-02-26 21:48 ` Haitao Huang
2024-02-26 21:56 ` Dave Hansen
2024-02-26 22:34 ` Huang, Kai
2024-02-26 22:38 ` Dave Hansen
2024-02-26 22:46 ` Huang, Kai
2024-02-27 20:41 ` Jarkko Sakkinen
2024-02-27 9:26 ` Michal Koutný
2024-02-26 21:18 ` Haitao Huang
2024-02-26 22:24 ` Huang, Kai
2024-02-26 22:31 ` Dave Hansen
2024-02-26 22:38 ` Huang, Kai
2024-02-05 21:06 ` [PATCH v9 11/15] x86/sgx: Abstract check for global reclaimable pages Haitao Huang
2024-02-12 19:56 ` Jarkko Sakkinen
2024-02-21 11:34 ` Huang, Kai
2024-02-05 21:06 ` [PATCH v9 12/15] x86/sgx: Expose sgx_epc_cgroup_reclaim_pages() for global reclaimer Haitao Huang
2024-02-12 19:58 ` Jarkko Sakkinen
2024-02-21 11:10 ` Huang, Kai
2024-02-22 16:35 ` Haitao Huang
2024-02-05 21:06 ` [PATCH v9 13/15] x86/sgx: Turn on per-cgroup EPC reclamation Haitao Huang
2024-02-21 11:23 ` Huang, Kai
2024-02-22 16:36 ` Haitao Huang
2024-02-22 22:44 ` Huang, Kai
2024-02-23 18:46 ` Haitao Huang
2024-02-05 21:06 ` [PATCH v9 14/15] Docs/x86/sgx: Add description for cgroup support Haitao Huang
2024-02-05 21:06 ` [PATCH v9 15/15] selftests/sgx: Add scripts for EPC cgroup testing Haitao Huang
2024-03-27 12:55 ` Jarkko Sakkinen
2024-03-27 16:56 ` Jarkko Sakkinen
2024-03-28 0:57 ` Haitao Huang
2024-03-28 3:05 ` Haitao Huang
2024-03-30 11:23 ` Jarkko Sakkinen
2024-03-30 11:26 ` Jarkko Sakkinen
2024-04-02 11:23 ` Michal Koutný
2024-04-02 11:58 ` Jarkko Sakkinen
2024-04-02 16:20 ` Haitao Huang
2024-04-02 17:40 ` Michal Koutný
2024-04-02 18:20 ` Haitao Huang
2024-04-03 16:46 ` Jarkko Sakkinen
2024-04-03 15:33 ` Jarkko Sakkinen
2024-04-02 15:42 ` Dave Hansen
2024-04-03 15:16 ` Jarkko Sakkinen
2024-03-28 3:54 ` Haitao Huang
2024-03-30 11:15 ` Jarkko Sakkinen
2024-03-30 15:32 ` Haitao Huang
2024-03-31 16:19 ` Jarkko Sakkinen
2024-03-31 17:35 ` Haitao Huang
2024-04-01 14:10 ` Jarkko Sakkinen
2024-02-08 8:43 ` [PATCH v9 00/15] Add Cgroup support for SGX EPC memory Mikko Ylinen
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=0ab99d42-c3fe-4415-b993-57fb1fec21a4@intel.com \
--to=dave.hansen@intel.com \
--cc=anakrish@microsoft.com \
--cc=bp@alien8.de \
--cc=cgroups@vger.kernel.org \
--cc=chrisyan@microsoft.com \
--cc=dave.hansen@linux.intel.com \
--cc=haitao.huang@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jarkko@kernel.org \
--cc=kristen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sgx@vger.kernel.org \
--cc=mikko.ylinen@linux.intel.com \
--cc=mingo@redhat.com \
--cc=mkoutny@suse.com \
--cc=seanjc@google.com \
--cc=sohil.mehta@intel.com \
--cc=tglx@linutronix.de \
--cc=tim.c.chen@linux.intel.com \
--cc=tj@kernel.org \
--cc=x86@kernel.org \
--cc=yangjie@microsoft.com \
--cc=zhanb@microsoft.com \
--cc=zhiquan1.li@intel.com \
/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