lkml.org 
[lkml]   [2013]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 04/14] sched: SCHED_DEADLINE SMP-related data structures & logic.
On 10/14/2013 02:03 PM, Peter Zijlstra wrote:
> On Mon, Oct 14, 2013 at 12:43:36PM +0200, Juri Lelli wrote:
>> +static inline void dl_set_overload(struct rq *rq)
>> +{
>> + if (!rq->online)
>> + return;
>> +
>> + cpumask_set_cpu(rq->cpu, rq->rd->dlo_mask);
>> + /*
>> + * Must be visible before the overload count is
>> + * set (as in sched_rt.c).
>> + */
>> + wmb();
>> + atomic_inc(&rq->rd->dlo_count);
>> +}
>
> Please, make that smp_wmb() and modify the comment to point to the
> matching barrier ; I couldn't find one! Which suggests something is
> amiss.
>
> Ideally we'd have something like smp_wmb__after_set_bit() but alas.
>

The only user of this function is pull_dl_task (that tries to pull only if at
least one runqueue of the root_domain is overloaded). Surely makes sense to
ensure that changes in the dlo_mask have to be visible before we check if we
should look at that mask. Am I right if I say that the matching barrier is
constituted by the spin_lock on this_rq acquired by schedule() before calling
pre_schedule()?

Same thing in rt_set_overload(), do we need to modify the comment also there?

Thanks,

- Juri


\
 
 \ /
  Last update: 2013-10-15 11:41    [W:0.157 / U:0.248 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site