From: Dan Williams Date: Fri, 16 Oct 2009 05:25:22 +0000 (+1100) Subject: md/raid456: downlevel multicore operations to raid_run_ops X-Git-Tag: v2.6.32-rc6~27^2~8 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=417b8d4ac868cf58d6c68f52d72f7648413e0edc;p=pandora-kernel.git md/raid456: downlevel multicore operations to raid_run_ops The percpu conversion allowed a straightforward handoff of stripe processing to the async subsytem that initially showed some modest gains (+4%). However, this model is too simplistic and leads to stripes bouncing between raid5d and the async thread pool for every invocation of handle_stripe(). As reported by Holger this can fall into a pathological situation severely impacting throughput (6x performance loss). By downleveling the parallelism to raid_run_ops the pathological stripe_head bouncing is eliminated. This version still exhibits an average 11% throughput loss for: mdadm --create /dev/md0 /dev/sd[b-q] -n 16 -l 6 echo 1024 > /sys/block/md0/md/stripe_cache_size dd if=/dev/zero of=/dev/md0 bs=1024k count=2048 ...but the results are at least stable and can be used as a base for further multicore experimentation. Reported-by: Holger Kiehl Signed-off-by: Dan Williams Signed-off-by: NeilBrown --- Reading git-diff-tree failed