Messages in this thread | | | Date | Mon, 4 Feb 2008 13:47:57 -0800 | From | "Siddha, Suresh B" <> | Subject | Re: [rfc] direct IO submission and completion scalability issues |
| |
On Sun, Feb 03, 2008 at 10:52:52AM +0100, Nick Piggin wrote: > Hi guys, > > Just had another way we might do this. Migrate the completions out to > the submitting CPUs rather than migrate submission into the completing > CPU.
Hi Nick, This was the first experiment I tried on a quad core four package SMP platform. And it didn't show much improvement in my prototype(my protoype was migrating the softirq to the kblockd context of the submitting CPU).
In the OLTP workload, quite a bit of activity happens below the block layer and by the time we come to softirq, some damage is done in slab, scsi cmds, timers etc. Last year OLS paper (http://ols.108.redhat.com/2007/Reprints/gough-Reprint.pdf) shows different cache lines that are contended in the kernel for the OLTP workload.
Softirq migration should atleast reduce the cacheline contention that happens in sched and AIO layers. I didn't spend much time why my softirq migration patch didn't help much (as I was behind bigger birds of migrating IO submission to completion CPU at that time). If this solution has less side-effects and easily acceptable, then we can analyze the softirq migration patch further and findout the potential.
While there is some potential with the softirq migration, full potential can be exploited by making the IO submission and completion on the same CPU.
thanks, suresh
| |