Home
last modified time | relevance | path

Searched refs:lockref (Results 1 – 8 of 8) sorted by relevance

/DragonOS-0.1.8/kernel/src/common/
Dlockref.h10 struct lockref struct
30 void lockref_inc(struct lockref *lock_ref); argument
39 bool lockref_inc_not_zero(struct lockref *lock_ref);
51 int lockref_dec(struct lockref *lock_ref);
63 int lockref_dec_return(struct lockref *lock_ref);
76 bool lockref_dec_not_zero(struct lockref *lock_ref);
88 bool lockref_dec_or_lock_not_zero(struct lockref *lock_ref);
95 void lockref_mark_dead(struct lockref * lock_ref);
104 bool lockref_inc_not_dead(struct lockref *lock_ref);
/DragonOS-0.1.8/docs/kernel/locking/
Dlockref.md2 # lockref chapter
4   lockref是将自旋锁与引用计数变量融合在连续、对齐的8字节内的一种技术。
6 …sp; 目前,DragonOS中,通过C、Rust各实现了一个版本的lockref。请注意,二者不兼容。对于新的功能模块,请使用Rust版本的lockref。随着代码重构工作的进行,我们…
8 ## 1. lockref结构
14 /// 由于需要cmpxchg,所以整个lockref按照8字节对齐
32 struct lockref
37 aligned_u64 lock_count; // 通过该变量的声明,使得整个lockref的地址按照8字节对齐
49   由于在高负载的情况下,系统会频繁的执行“锁定-改变引用变量-解锁”的操作,这期间很可能出现spinlock和引用计数跨缓存行的情况,这将会大大降低性能。lockref通过强制…
51 …可更改引用计数的值,进一步提升性能。当快速路径不存在(对于未支持的体系结构)或者尝试超时后,将会退化成“锁定-改变引用变量-解锁”的操作。此时由于lockref强制对齐,只涉及到1个缓存行,因此性…
55 …锁,然后改变引用计数,同时通过`lock cmpxchg`指令验证在更改发生时,没有其他线程持有锁,并且当前的目标lockref的值与old变量中存储的一致,从而将新值存储到目标lockref。这…
[all …]
Dlocks.md34   当您同时需要使用自旋锁以及引用计数时,一个好的方法是:使用`lockref`. 这是一种额外的加速技术,能额外提供“无锁修改引用计数”的功能。详情请见:{ref}`lockr…
Dindex.rst12 lockref
/DragonOS-0.1.8/kernel/src/libs/
Dlockref.c10 … struct lockref old; \
15 … struct lockref new = old; \
40 void lockref_inc(struct lockref *lock_ref) in lockref_inc()
58 bool lockref_inc_not_zero(struct lockref *lock_ref) in lockref_inc_not_zero()
91 int lockref_dec(struct lockref *lock_ref) in lockref_dec()
125 int lockref_dec_return(struct lockref *lock_ref) in lockref_dec_return()
149 bool lockref_dec_not_zero(struct lockref *lock_ref) in lockref_dec_not_zero()
181 bool lockref_dec_or_lock_not_zero(struct lockref *lock_ref) in lockref_dec_or_lock_not_zero()
208 void lockref_mark_dead(struct lockref *lock_ref) in lockref_mark_dead()
222 bool lockref_inc_not_dead(struct lockref *lock_ref) in lockref_inc_not_dead()
Dmod.rs11 pub mod lockref; module
/DragonOS-0.1.8/kernel/src/filesystem/vfs/
DVFS.h52 struct lockref lockref; // 该lockref包含了dentry的自旋锁以及引用计数 member
76 struct lockref lockref; // 自旋锁与引用计数 member
/DragonOS-0.1.8/docs/community/ChangeLog/V0.1.x/
DV0.1.3.md41 - lockref: new: 新增rust版本的lockref (#135)
250 新增rust版本的lockref (#135)
254 * new: Rust版本的lockref
258 * lockref文档