提交 6d20e85f 编写于 作者: Z Zheng Zengkai

Revert "locking/rwsem: Better collate rwsem_read_trylock()"

hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7F5L7
CVE: NA

--------------------------------

Revert this patch due to fio performance degradation.
This reverts commit 70e33bec.
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 17c1456e
......@@ -273,16 +273,9 @@ static inline void rwsem_set_nonspinnable(struct rw_semaphore *sem)
static inline bool rwsem_read_trylock(struct rw_semaphore *sem)
{
long cnt = atomic_long_add_return_acquire(RWSEM_READER_BIAS, &sem->count);
if (WARN_ON_ONCE(cnt < 0))
rwsem_set_nonspinnable(sem);
if (!(cnt & RWSEM_READ_FAILED_MASK)) {
rwsem_set_reader_owned(sem);
return true;
}
return false;
return !(cnt & RWSEM_READ_FAILED_MASK);
}
/*
......@@ -1347,6 +1340,8 @@ static inline void __down_read(struct rw_semaphore *sem)
if (!rwsem_read_trylock(sem)) {
rwsem_down_read_slowpath(sem, TASK_UNINTERRUPTIBLE);
DEBUG_RWSEMS_WARN_ON(!is_rwsem_reader_owned(sem), sem);
} else {
rwsem_set_reader_owned(sem);
}
}
......@@ -1356,6 +1351,8 @@ static inline int __down_read_interruptible(struct rw_semaphore *sem)
if (IS_ERR(rwsem_down_read_slowpath(sem, TASK_INTERRUPTIBLE)))
return -EINTR;
DEBUG_RWSEMS_WARN_ON(!is_rwsem_reader_owned(sem), sem);
} else {
rwsem_set_reader_owned(sem);
}
return 0;
}
......@@ -1366,6 +1363,8 @@ static inline int __down_read_killable(struct rw_semaphore *sem)
if (IS_ERR(rwsem_down_read_slowpath(sem, TASK_KILLABLE)))
return -EINTR;
DEBUG_RWSEMS_WARN_ON(!is_rwsem_reader_owned(sem), sem);
} else {
rwsem_set_reader_owned(sem);
}
return 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册