Messages in this thread | | | Date | Fri, 8 Jan 2016 13:17:48 -0500 | From | Tejun Heo <> | Subject | Re: [PATCH 5/5] cfq-iosched: Allow parent cgroup to preempt its child |
| |
Hello,
On Thu, Jan 07, 2016 at 04:28:16PM +0100, Jan Kara wrote: > From: Jan Kara <jack@suse.com> > > Currently we don't allow sync workload of one cgroup to preempt sync > workload of any other cgroup. This is because we want to achieve service > separation between cgroups. However in cases where cgroup preempting is > ancestor of the current cgroup, there is no need of separation and > idling introduces unnecessary overhead. This is hurts for example the ^^^ > case when workload is isolated within a cgroup but journalling threads > are in root cgroup. Simple way to demostrate the issue is using: > > dbench4 -c /usr/share/dbench4/client.txt -t 10 -D /mnt 1 > > on ext4 filesystem on plain SATA driver (mounted with barrier=0 to make > difference more visible). When all processes are in the root cgroup, > reported throughput is 153.132 MB/sec. When dbench process gets its own > blkio cgroup, reported throughput drops to 26.1006 MB/sec. > > Fix the problem by making check in cfq_should_preempt() more benevolent > and allow preemption by ancestor cgroup. This improves the throughput > reported by dbench4 to 48.9106 MB/sec. > > Signed-off-by: Jan Kara <jack@suse.com>
Acked-by: Tejun Heo <tj@kernel.org>
Thanks.
-- tejun
| |