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 <[email protected]> > Cc: Alok Kataria <[email protected]> > Cc: Thomas Gleixner <[email protected]> > Cc: Ingo Molnar <[email protected]> > Cc: "H. Peter Anvin" <[email protected]> > Cc: [email protected] > Cc: [email protected] > > Signed-off-by: Nadav Amit <[email protected]>
Reviewed-by: Juergen Gross <[email protected]> Juergen _______________________________________________ Virtualization mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/virtualization
