From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jens Axboe Subject: Re: [PATCH V4 3/4] block: queue work on unbound wq Date: Mon, 8 Apr 2013 13:13:28 +0200 Message-ID: <20130408111328.GA12244@kernel.dk> References: <91239cde99aaba2715f63db1f88241d9f4a36e13.1364740180.git.viresh.kumar@linaro.org> <20130331181931.GA7533@htj.dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Viresh Kumar , linaro-kernel@lists.linaro.org, patches@linaro.org, robin.randhawa@arm.com, Steve.Bannister@arm.com, Liviu.Dudau@arm.com, charles.garcia-tobin@arm.com, arvind.chauhan@arm.com, davem@davemloft.net, airlied@redhat.com, tglx@linutronix.de, peterz@infradead.org, mingo@redhat.com, rostedt@goodmis.org, linux-rt-users@vger.kernel.org, linux-kernel@vger.kernel.org To: Tejun Heo Return-path: Content-Disposition: inline In-Reply-To: <20130331181931.GA7533@htj.dyndns.org> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-rt-users.vger.kernel.org On Sun, Mar 31 2013, Tejun Heo wrote: > Hello, Viresh. > > On Sun, Mar 31, 2013 at 08:01:46PM +0530, Viresh Kumar wrote: > > Block layer uses workqueues for multiple purposes. There is no real dependency > > of scheduling these on the cpu which scheduled them. > > > > On a idle system, it is observed that and idle cpu wakes up many times just to > > service this work. It would be better if we can schedule it on a cpu which the > > scheduler believes to be the most appropriate one. > > > > This patch replaces normal workqueues with UNBOUND versions. > > Hmm.... so, we really don't want to unconditionally convert workqueues > to unbound. Especially not kblockd. On configurations with multiple > high iops devices with IRQ routing, having request completion runinng > on the same CPU has significant performance advantages. We can't > simply switch it to an unbound wokrqueue because it saves power on > small arm configuration. I had the same complaint, when it was posted originally... > Plus, I'd much prefer to be clearly marking the workqueues which would > contribute to powersaving when converted to unbound at least until we > can come up with a no-compromise solution which doesn't need to trade > off between cache locality and powersaving. > > So, let's please introduce a new flag to mark these workqueues, say, > WQ_UNBOUND_FOR_POWER_SAVE or whatever (please come up with a better > name) and provide a compile time switch with boot time override. And lets please have it off by default. The specialized configs / setups can turn it on, but we should default to better performance. -- Jens Axboe