[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ad2d9610-61c0-4719-9df1-0116ef317d8a@intel.com>
Date: Tue, 18 Jul 2023 14:36:53 -0700
From: Dave Hansen <dave.hansen@...el.com>
To: Haitao Huang <haitao.huang@...ux.intel.com>,
Jarkko Sakkinen <jarkko@...nel.org>,
dave.hansen@...ux.intel.com, linux-kernel@...r.kernel.org,
linux-sgx@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
x86@...nel.org, "H. Peter Anvin" <hpa@...or.com>
Cc: kai.huang@...el.com, reinette.chatre@...el.com,
kristen@...ux.intel.com, seanjc@...gle.com, stable@...r.kernel.org
Subject: Re: [PATCH] x86/sgx: fix a NULL pointer
On 7/18/23 14:22, Haitao Huang wrote:
> I agree this is the race. But for this to happen, that is at #1 you have
> only one non-SECS page left so #3 can happen. That means it is already
> high pressure
I think our definitions of memory pressure differ.
Pressure is raised by allocations and dropped by reclaim. This
raise->drop cycle is (or should be) time-limited and can't take forever.
The reclaim either works in a short period of time or something dies.
If allocations are transient, pressure is transient.
Let's say a pressure blip (a one-time event) comes along and pages out
that second-to-last page. That's pretty low pressure. Years pass. The
enclave never gets run. Nothing pages the second-to-last page back in.
A second pressure blip comes along. The SECS page gets paged out.
That's two pressure blips in, say 10 years. Is that "high pressure"?
> because reclaimer has swapped all other non-SECS.
> In my example of two enclaves of 5 non-EPC pages. #3 won't happen
> because you don't reach #1 with only one non-SECS left.
Powered by blists - more mailing lists