Hi, This patches kills two kinds of atomic operations in block accounting I/O.
The 1st two patches convert atomic refcount of partition into percpu refcount. The 2nd two patches converts partition->in_flight[] into percpu variable. With this change, ~15% throughput improvement can be observed when running fio(randread) over null blk in a dual-socket environment. block/bio.c | 4 ++-- block/blk-core.c | 5 ++-- block/blk-merge.c | 2 +- block/genhd.c | 9 ++++--- block/partition-generic.c | 17 ++++++------- drivers/md/dm.c | 10 ++++---- drivers/nvdimm/core.c | 4 ++-- include/linux/genhd.h | 61 +++++++++++++++++++++++++++++++++-------------- 8 files changed, 72 insertions(+), 40 deletions(-) Thanks, Ming -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/