RE: [PATCH 1/4] x86/sgx: Track phase and type of SGX EPC pages

From: Luck, Tony
Date: Wed Jul 14 2021 - 19:39:04 EST


> I've no objection to tracking the type for SGX2, my argument in the context of
> #MC support is that there should be no need to track the type. Either the #MC
> is recoverable or it isn't, and the enclave is toast regardless of what type of
> page hit the #MC.

I'll separate the "phase" from the "type".

Here phase is used for the life-cycle of EPC pages:

DIRTY -> FREE -> IN-USE -> DIRTY

Errors can be reported by memory controller page scrubbers
for pages that are not "IN-USE" ... and the recovery action is
just to make sure that they are never allocated.

When a page is IN-USE ... it has a "type". I currently
only have a way to inject errors into SGX_PAGE_TYPE_REG
pages. That means initial recovery code is going to focus on
those since that is all I can test. But I'll try not to special case
them as far as possible.

-Tony