Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1401401

Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing update_rq_clock()

From Matt Fleming <matt@codeblueprint.co.uk>
Newsgroups linux.kernel
Subject Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing update_rq_clock()
Date 2016-05-16 11:50 +0200
Message-ID <rznjX-5fy-3@gated-at.bofh.it> (permalink)
References <ry4W5-3UF-5@gated-at.bofh.it> <ry4W6-3UF-17@gated-at.bofh.it> <rzg8Z-u7-317@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Sun, 15 May, at 10:14:39AM, Yuyang Du wrote:
> Hi Matt,
> 
> Thanks for Ccing me.
> 
> I am indeed interested, because I recently encountered an rq clock
> issue, which is that the clock jumps about 200ms when I was
> experimenting the "flat util hierarchy" patches, which really annoyed
> me, and I had to stop to figure out what is wrong (but haven't yet
> figured out ;))
> 
> First, this patchset does not solve my problem, but never mind, by
> reviewing your patches, I have some comments:
 
Thanks for the review. One gap that this patch series doesn't address
is that some callers of update_rq_clock() do not pin rq->lock, which
makes the diagnostic checks useless in that case.

I plan on handling that next, but I wanted to get this series out as
soon as possible for review.

> On Thu, May 12, 2016 at 08:49:53PM +0100, Matt Fleming wrote:
> >  
> > -	rq->clock_skip_update = 0;
> > +	/* Clear ACT, preserve everything else */
> > +	rq->clock_update_flags ^= RQCF_ACT_SKIP;
> 
> The comment says "Clear ACT", but this is really xor, and I am not sure
> this is even what you want.
 
Urgh, you're right. I'm not sure what I was thinking when I wrote
that.

> In addition, would it be simpler to do this?
> 
> update_rq_clock()
> 	if (flags & RQCF_ACT_SKIP)
> 		flags <<= 1; /* effective skip is an update */
> 		return;
> 
> 	flags = RQCF_UPDATED;

No because if someone calls rq_clock() immediately after __schedule(),
or even immediately after we clear RQCF_ACT_SKIP in __schedule(), we
should trigger a warning since the clock has not actually been
updated.

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

[RFC][PATCH 5/5] sched/core: Add debug code to catch missing update_rq_clock() Matt Fleming <matt@codeblueprint.co.uk> - 2016-05-12 22:00 +0200
  Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing  update_rq_clock() Yuyang Du <yuyang.du@intel.com> - 2016-05-16 04:10 +0200
    Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing  update_rq_clock() Matt Fleming <matt@codeblueprint.co.uk> - 2016-05-16 11:50 +0200
      Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing  update_rq_clock() Yuyang Du <yuyang.du@intel.com> - 2016-05-17 06:00 +0200
        Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing  update_rq_clock() Matt Fleming <matt@codeblueprint.co.uk> - 2016-05-17 14:30 +0200
          Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing  update_rq_clock() Yuyang Du <yuyang.du@intel.com> - 2016-05-18 04:50 +0200
            Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing  update_rq_clock() Matt Fleming <matt@codeblueprint.co.uk> - 2016-05-18 10:50 +0200
              Re: [RFC][PATCH 5/5] sched/core: Add debug code to catch missing  update_rq_clock() Yuyang Du <yuyang.du@intel.com> - 2016-05-19 08:40 +0200

csiph-web