umtx_frop_pi will be used by Linux emulation layer.
Details
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 40578 Build 37467: arc lint + arc unit
Event Timeline
| sys/kern/kern_umtx.c | ||
|---|---|---|
| 1720 | If exposing such function as the generic KPI, we should assert there that key is locked and busy. For that, you need to add corresponding primitives. | |
| sys/kern/kern_umtx.c | ||
|---|---|---|
| 1727 | Shouldn't #endif go before this line? Otherwise uc is not defined. It might be better to define some helper e.g. UMTXQ_ASSERT_LOCKED_BUSY(key) and expand it into block as you write for INVARIANTS, otherwise keep it empty. | |
| sys/kern/kern_umtx.c | ||
|---|---|---|
| 1725 | No, pass the key to UMTXQ_LOCKED_ASSERT_BUSY(), so that the INVARIANTS block above is not needed. | |
| sys/kern/kern_umtx.c | ||
|---|---|---|
| 92 | arg should be key and not uc | |
| 98 | This is better, but please do #ifdef INVARIANTS
#define UMTXQ_ASSERT_LOCKED_BUSY(key) <your definition>
#else
#define UMTXQ_ASSERT_LOCKED_BUSY(key) do {} while (0)
#endifSo that uc is not calculated for !INVARIANTS case. Also note a suggested name change | |
| sys/kern/kern_umtx.c | ||
|---|---|---|
| 93 | UMTXQ_ASSERT_LOCKED_BUSY | |
Are you suggesting to call UMTXQ_ASSERT_LOCKED_BUSY() by UMTXQ_LOCKED_ASSERT() instead? The assert does both lock and busy checks, so IMO the longer name is more correct.
no, I prefer to follow to the same style in code, naming, etc, that's why i named the macro like UMTXQ_LOCKED_ASSERT_BUSY. Thank you for your patience ))