diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2020-08-17 14:45:04 +0300 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2020-10-12 16:29:26 +0300 |
commit | 3986f9a42e993075af01c17dc8968cfb96a4fe53 (patch) | |
tree | f737033c3469e447f868acb37b6c2b1d32965a2e /include/linux/crush | |
parent | 1c30c90733879ea197dd29af54450a0f6cdcacb1 (diff) | |
download | linux-3986f9a42e993075af01c17dc8968cfb96a4fe53.tar.xz |
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>
Diffstat (limited to 'include/linux/crush')
-rw-r--r-- | include/linux/crush/crush.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/crush/crush.h b/include/linux/crush/crush.h index 2f811baf78d2..30dba392b730 100644 --- a/include/linux/crush/crush.h +++ b/include/linux/crush/crush.h @@ -346,6 +346,9 @@ struct crush_work_bucket { struct crush_work { struct crush_work_bucket **work; /* Per-bucket working store */ +#ifdef __KERNEL__ + struct list_head item; +#endif }; #ifdef __KERNEL__ |