I run a SPECJbb benchmark in my KVM virtual machine. It shows a drastic drop on throughput between Warehouse 2 and Warehouse 3(The different between them is just addding on cocurrent task)
Then I use perf in my guest virtual machine. It shows that _spin_unlock_irqrestore has very high sampling rate.
Events: 31K cycles
74.89% [kernel] [k] _spin_unlock_irqrestore
7.36% perf-1968.map [.] 0x7f84b913e064
6.82% [kernel] [k] __do_softirq
6.39% [kernel] [k] handle_IRQ_event
...
It seems that only 7.36% cpu time running my Java program. Why _spin_unlock_irqrestore's sampling rate is so high? And what does it do?