Christophe Leroy <christophe.le...@c-s.fr> writes: > Le 12/01/2019 à 10:55, Christophe Leroy a écrit : >> The purpose of this serie is to activate CONFIG_THREAD_INFO_IN_TASK which >> moves the thread_info into task_struct. >> >> Moving thread_info into task_struct has the following advantages: >> - It protects thread_info from corruption in the case of stack >> overflows. >> - Its address is harder to determine if stack addresses are >> leaked, making a number of attacks more difficult. > > I ran null_syscall and context_switch benchmark selftests and the result > is surprising. There is slight degradation in context_switch and a > significant one on null_syscall: > > Without the serie: > > ~# chrt -f 98 ./context_switch --no-altivec --no-vector --no-fp > 55542 > 55562 > 55564 > 55562 > 55568 > ... > > ~# ./null_syscall > 2546.71 ns 336.17 cycles > > > With the serie: > > ~# chrt -f 98 ./context_switch --no-altivec --no-vector --no-fp > 55138 > 55142 > 55152 > 55144 > 55142 > > ~# ./null_syscall > 3479.54 ns 459.30 cycles > > So 0,8% less context switches per second and 37% more time for one syscall ? > > Any idea ?
What platform is that on? On 64-bit we have to turn one mtmsrd into two and that's obviously a slow down. But I don't see that you've done anything similar in 32-bit code. I assume it's patch 8 that causes the slow down? cheers