aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/dmu_object.c
diff options
context:
space:
mode:
authorMateusz Guzik <[email protected]>2020-11-02 20:51:12 +0100
committerGitHub <[email protected]>2020-11-02 11:51:12 -0800
commit09eb36ce3d98e0eeaeec9c333ac818b2bc3f85bf (patch)
tree967d479b3fe081cc9e6cdd2d6ffc4daa412fc7d0 /module/zfs/dmu_object.c
parent8583540c6e04135626fe301ace8aa51212826965 (diff)
Introduce CPU_SEQID_UNSTABLE
Current CPU_SEQID users don't care about possibly changing CPU ID, but enclose it within kpreempt disable/enable in order to fend off warnings from Linux's CONFIG_DEBUG_PREEMPT. There is no need to do it. The expected way to get CPU ID while allowing for migration is to use raw_smp_processor_id. In order to make this future-proof this patch keeps CPU_SEQID as is and introduces CPU_SEQID_UNSTABLE instead, to make it clear that consumers explicitly want this behavior. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Matt Macy <[email protected]> Signed-off-by: Mateusz Guzik <[email protected]> Closes #11142
Diffstat (limited to 'module/zfs/dmu_object.c')
-rw-r--r--module/zfs/dmu_object.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/module/zfs/dmu_object.c b/module/zfs/dmu_object.c
index 453a2842c..12cdbd68b 100644
--- a/module/zfs/dmu_object.c
+++ b/module/zfs/dmu_object.c
@@ -58,10 +58,8 @@ dmu_object_alloc_impl(objset_t *os, dmu_object_type_t ot, int blocksize,
int dnodes_per_chunk = 1 << dmu_object_alloc_chunk_shift;
int error;
- kpreempt_disable();
- cpuobj = &os->os_obj_next_percpu[CPU_SEQID %
+ cpuobj = &os->os_obj_next_percpu[CPU_SEQID_UNSTABLE %
os->os_obj_next_percpu_len];
- kpreempt_enable();
if (dn_slots == 0) {
dn_slots = DNODE_MIN_SLOTS;