Re: [PATCH v5 1/7] x86/sgx: Provide indication of life-cycle of EPC pages

From: Jarkko Sakkinen
Date: Wed Sep 22 2021 - 01:28:06 EST


On Tue, 2021-09-21 at 15:15 -0700, Dave Hansen wrote:
> On 9/21/21 2:28 PM, Jarkko Sakkinen wrote:
> > > Since there are multiple uses of the "owner" field with different types
> > > change the sgx_epc_page structure to define an anonymous union with
> > > each of the uses explicitly called out.
> > But it's still always a pointer.
> >
> > And not only that, but two alternative fields in that union have *exactly* the
> > same type, so it's kind of artifically representing the problem more complex
> > than it really is.
> >
> > I'm not just getting, why all this complexity, and not a few casts instead?
>
> I suggested this. It makes the structure more self-describing because
> it explicitly lists the possibles uses of the space in the structure.
>
> Maybe I stare at 'struct page' and its 4 unions too much and I'm
> enamored by their shininess. But, in the end, I prefer unions to casting.

Yeah, packing data into constrained space (as in the case of struct page) is
the only application for, where you can speak of a quantitative decision, when
you pick union.

/Jarkko