Re: [PATCH v3 2/6] sched/rtmutex/deadline: Fix a PI crash for deadline tasks

From: Xunlei Pang
Date: Thu Apr 21 2016 - 23:26:20 EST


Hi Peter,

On 2016/04/20 at 21:49, Xunlei Pang wrote:
> On 2016/04/20 at 21:19, Peter Zijlstra wrote:
>> On Thu, Apr 14, 2016 at 07:37:03PM +0800, Xunlei Pang wrote:
>>> + /* Updated under pi_lock and rtmutex lock */
>>> struct rb_node *pi_waiters_leftmost;
>>> + struct rb_node *pi_waiters_leftmost_copy;
>>> struct task_struct *rt_mutex_get_top_task(struct task_struct *task)
>>> {
>>> + if (!task->pi_waiters_leftmost_copy)
>>> return NULL;
>>>
>>> + return rb_entry(task->pi_waiters_leftmost_copy,
>>> + struct rt_mutex_waiter, pi_tree_entry)->task;
>>> }
>> why ?! Why not keep a regular task_struct pointer and avoid this stuff?
> I meant to make it semantically consistent, but I can change it since you think task_struct is better.

What do you think this version of PATCH1 and PATCH2?
If you are fine with it, I can sent it out as v4 separately, then we can focus on the issue in PATCH5.

Thanks!

>
> Regards,
> Xunlei