libceph: multiple workspaces for CRUSH computations
authorIlya Dryomov <idryomov@gmail.com>
Mon, 17 Aug 2020 11:45:04 +0000 (13:45 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 12 Oct 2020 13:29:26 +0000 (15:29 +0200)
commit3986f9a42e993075af01c17dc8968cfb96a4fe53
treef737033c3469e447f868acb37b6c2b1d32965a2e
parent1c30c90733879ea197dd29af54450a0f6cdcacb1
libceph: multiple workspaces for CRUSH computations

Replace a global map->crush_workspace (protected by a global mutex)
with a list of workspaces, up to the number of CPUs + 1.

This is based on a patch from Robin Geuze <robing@nl.team.blue>.
Robin and his team have observed a 10-20% increase in IOPS on all
queue depths and lower CPU usage as well on a high-end all-NVMe
100GbE cluster.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
include/linux/ceph/osdmap.h
include/linux/crush/crush.h
net/ceph/osdmap.c