Ok, so I’m looking at the code generation and your compiler is pure
and utter *shit*.
Adding Jakub to the cc, because gcc-4.9.0 seems to be terminally broken.
Lookie here, your compiler does some absolutely insane things with the
spilling, including spilling a *constant*. For chrissake, that
compiler shouldn’t have been allowed to graduate from kindergarten.
We’re talking “sloth that was dropped on the head as a baby” level
retardation levels here:
movq $load_balance_mask, -136(%rbp) #, %sfp
subq $184, %rsp #,
movq (%rdx), %rax # sd_22(D)->parent, sd_parent
movl %edi, -144(%rbp) # this_cpu, %sfp
movl %ecx, -140(%rbp) # idle, %sfp
movq %r8, -200(%rbp) # continue_balancing, %sfp
movq %rax, -184(%rbp) # sd_parent, %sfp
movq -136(%rbp), %rax # %sfp, tcp_ptr__
add %gs:this_cpu_off, %rax # this_cpu_off, tcp_ptr__
Note the contents of -136(%rbp). Seriously. That’s an
_immediate_constant_ that the compiler is spilling.
Somebody needs to raise that as a gcc bug. Because it damn well is
some seriously crazy shit.
However, that constant spilling part just counts as “too stupid to
live”. The real bug is this:…
Ver original http://lkml.iu.edu/hypermail/linux/kernel/1407.3/00650.html
Ver reporte del bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61904