block: use __this_cpu_add() instead of access by smp_processor_id()
authorKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
Wed, 27 May 2020 05:24:18 +0000 (07:24 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 27 May 2020 11:21:23 +0000 (05:21 -0600)
Most architectures have fast path to access percpu for current cpu.
The required preempt_disable() is provided by part_stat_lock().

[hch: rebased]

Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/part_stat.h

index a6b0938ce82e9bc418ae8552e16542aeff2fc81b..24125778ef3ec7b1e84ec389ec4b420e205704a4 100644 (file)
@@ -54,7 +54,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value)
         part_stat_read(part, field[STAT_DISCARD]))
 
 #define __part_stat_add(part, field, addnd)                            \
-       (part_stat_get(part, field) += (addnd))
+       __this_cpu_add((part)->dkstats->field, addnd)
 
 #define part_stat_add(part, field, addnd)      do {                    \
        __part_stat_add((part), field, addnd);                          \