Hello!
On 5/4/22 11:17 AM, Byungchul Park wrote:
Workqueue already provides concurrency control. By that, any wait in a work doesn't prevents events in other works with the control enabled. Thus, each work would better be considered a different context.
So let Dept assign a different context id to each work.
Signed-off-by: Byungchul Park byungchul.park@lge.com
[...]
diff --git a/kernel/dependency/dept.c b/kernel/dependency/dept.c index 18e5951..6707313 100644 --- a/kernel/dependency/dept.c +++ b/kernel/dependency/dept.c @@ -1844,6 +1844,16 @@ void dept_enirq_transition(unsigned long ip) dept_exit(flags); }
+/*
- Assign a different context id to each work.
- */
+void dept_work_enter(void) +{
- struct dept_task *dt = dept_task();
- dt->cxt_id[DEPT_CXT_PROCESS] += (1UL << DEPT_CXTS_NR);
Parens around << unnecessary...
[...]
MBR, Sergey