Re: [PATCH v2 1/4] x86/hyper-v: move synic/stimer control structures definitions to hyperv-tlfs.h

From: Roman Kagan
Date: Thu Nov 29 2018 - 02:53:42 EST


On Wed, Nov 28, 2018 at 02:07:42PM +0100, Thomas Gleixner wrote:
> On Wed, 28 Nov 2018, Vitaly Kuznetsov wrote:
>
> > Nadav Amit <nadav.amit@xxxxxxxxx> writes:
> >
> > >
> > > On a different note: how come all of the hyper-v structs are not marked
> > > with the âpacked" attribute?
> >
> > "packed" should not be needed with proper padding; I vaguely remember
> > someone (from x86@?) arguing _against_ "packed".
>
> Packed needs to be used, when describing fixed format data structures in
> hardware or other ABIs, so the compiler cannot put alignment holes into
> them.
>
> Using packed for generic data structures might result in suboptimal layouts
> and prevents layout randomization.

Sorry for my illiteracy, I didn't watch this field closely so I had to
google about layout randomization. Is my understanding correct that one
can't rely any more on the compiler to naturally align the struct
members with minimal padding? My life will never be the same...

Roman.