I've been able to back port the following commit:

"""
commit 52aec3308db85f4e9f5c8b9f5dc4fbd0138c6fa4 
Author: Alex Shi <[email protected]> 
Date: Thu Jun 28 09:02:23 2012 +0800 

x86/tlb: replace INVALIDATE_TLB_VECTOR by CALL_FUNCTION_VECTOR

There are 32 INVALIDATE_TLB_VECTOR now in kernel. That is quite big 
amount of vector in IDT. But it is still not enough, since modern x86 
sever has more cpu number. That still causes heavy lock contention 
in TLB flushing. 

The patch using generic smp call function to replace it. That saved 32 
vector number in IDT, and resolved the lock contention in TLB 
flushing on large system. 

In the NHM EX machine 4P * 8cores * HT = 64 CPUs, hackbench pthread 
has 3% performance increase. 

Signed-off-by: Alex Shi <[email protected]> 
Link: 
http://lkml.kernel.org/r/[email protected] 
Signed-off-by: H. Peter Anvin <[email protected]> 
"""

Responsible to alter the logic for the flush_tlb_others_ipi sequence. I
also back-ported the following needed commits:

"""
commit 3a4f7b0a59006a3986b8ed6faf0031f1e5232db4 
Author: Alex Shi <[email protected]> 
Date: Thu Jun 28 09:02:17 2012 +0800 

x86/flush_tlb: try flush_tlb_single one by one in flush_tlb_range

commit 3331548b0d3907b1ab84e86239e149b8a52cda5d 
Author: Jan Beulich <[email protected]> 
Date: Tue Nov 29 11:03:46 2011 +0000 

x86-64: Reduce amount of redundant code generated for invalidate_interruptNN 
"""

Right now I'm sending the source code to a kernel builder machine and
will provide a hotfixed kernel, to be tested, soon.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1467955

Title:
  Precise BUG: soft lockup in flush_tlb_others_ipi

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1467955/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to