Could this tracking be done at the enclave page (struct sgx_encl_page)
instead?
In principle yes. Though Sean has some issues with me tracking types
at all.
The enclave page's EPC page information is not available when
the page is in swap and it would be useful to know the page type without
loading the page from swap. The information would continue to be
accessible from struct epc_page via the owner pointer that may make some
of the changes easier since it would not be needed to pass the page type
around so much and thus possibly address the SECS page issue that Sean
pointed out in
https://lore.kernel.org/lkml/YO3FuBupQTKYaKBf@xxxxxxxxxx/
I think I noticed that the "owner" pointer in sgx_encl_page doesn't point
back to the epc_page for all types of SGX pages. So some additional
changes would be needed. I'm not at all sure why this is different (or
what use the non-REG pages use "owner" for.