Re: [PATCH] x86/sgx: fix a NULL pointer

From: Dave Hansen
Date: Tue Jul 18 2023 - 17:37:00 EST


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.