On 12/06/18 13:50, Nadav Amit wrote: > GCC considers the number of statements in inlined assembly blocks, > according to new-lines and semicolons, as an indication to the cost of > the block in time and space. This data is distorted by the kernel code, > which puts information in alternative sections. As a result, the > compiler may perform incorrect inlining and branch optimizations. > > The solution is to set an assembly macro and call it from the inlined > assembly block. As a result GCC considers the inline assembly block as > a single instruction. > > The effect of the patch is a more aggressive inlining, which also > causes a size increase of kernel. > > text data bss dec hex filename > 18147336 10226688 2957312 31331336 1de1408 ./vmlinux before > 18162555 10226288 2957312 31346155 1de4deb ./vmlinux after (+14819) > > Static text symbols: > Before: 40053 > After: 39942 (-111) > > Cc: Juergen Gross <jgross@xxxxxxxx> > Cc: Alok Kataria <akataria@xxxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> > Cc: x86@xxxxxxxxxx > Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx > > Signed-off-by: Nadav Amit <namit@xxxxxxxxxx> Reviewed-by: Juergen Gross <jgross@xxxxxxxx> Juergen _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization