On 07/12/2019 08:03, Ming Lei wrote:I would assume that it does, seeing that that was the primary goal of fio ...
On Fri, Dec 06, 2019 at 10:35:04PM +0800, John Garry wrote:
Currently the cpu allowed mask for the threaded part of a threaded irq
handler will be set to the effective affinity of the hard irq.
Typically the effective affinity of the hard irq will be for a single cpu. As such,
the threaded handler would always run on the same cpu as the hard irq.
We have seen scenarios in high data-rate throughput testing that the cpu
handling the interrupt can be totally saturated handling both the hard
interrupt and threaded handler parts, limiting throughput.
Hi Ming,
Frankly speaking, I never observed that single CPU is saturated by one storage
completion queue's interrupt load. Because CPU is still much quicker than
current storage device.
If there are more drives, one CPU won't handle more than one queue(drive)'s
interrupt if (nr_drive * nr_hw_queues) < nr_cpu_cores.
Are things this simple? I mean, can you guarantee that fio processes are evenly distributed as such?
Well ... to get a _real_ comparison you would need to specify the number of irqs handled (and the resulting IOPS) alongside the cpu load.
So could you describe your case in a bit detail? Then we can confirm
if this change is really needed.
The issue is that the CPU is saturated in servicing the hard and threaded part of the interrupt together - here's the sort of thing which we saw previously:
Before:
CPUÂÂÂ %usrÂÂÂ %sysÂÂÂ %irqÂÂÂ %softÂÂÂ %idle
allÂÂÂ 2.9ÂÂÂ 13.1ÂÂÂ 1.2ÂÂÂ 4.6ÂÂÂ 78.2
0ÂÂÂ 0.0ÂÂÂ 29.3ÂÂÂ 10.1ÂÂÂ 58.6ÂÂÂ 2.0
1ÂÂÂ 18.2ÂÂÂ 39.4ÂÂÂ 0.0ÂÂÂ 1.0ÂÂÂ 41.4
2ÂÂÂ 0.0ÂÂÂ 2.0ÂÂÂ 0.0ÂÂÂ 0.0ÂÂÂ 98.0
CPU0 has no effectively no idle.
Then, by allowing the threaded part to roam:
After:
CPUÂÂÂ %usrÂÂÂ %sysÂÂÂ %irqÂÂÂ %softÂÂÂ %idle
allÂÂÂ 3.5ÂÂÂ 18.4ÂÂÂ 2.7ÂÂÂ 6.8ÂÂÂ 68.6
0ÂÂÂ 0.0ÂÂÂ 20.6ÂÂÂ 29.9ÂÂÂ 29.9ÂÂÂ 19.6
1ÂÂÂ 0.0ÂÂÂ 39.8ÂÂÂ 0.0ÂÂÂ 50.0ÂÂÂ 10.2
Note: I think that I may be able to reduce the irq hard part load in the endpoint driver, but not that much such that we see still this issue.