Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1402318
| 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-17 14:30 +0200 |
| Message-ID | <rzMim-4v6-19@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> <rznjX-5fy-3@gated-at.bofh.it> <rzEkN-7L0-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, 17 May, at 04:11:09AM, Yuyang Du wrote:
> On Mon, May 16, 2016 at 10:46:38AM +0100, Matt Fleming wrote:
> >
> > 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.
>
> Well, I don't know how concurrent it can be, but aren't both update
> and read synchronized by rq->lock? So I don't understand the latter
> case, and the former should be addressed (missing its own update?).
I'm not talking about concurrency; when I said "someone" above, I was
referring to code.
So, if the code looks like the following, either now or in the future,
static void __schedule(bool preempt)
{
...
/* Clear RQCF_ACT_SKIP */
rq->clock_update_flags = 0;
...
delta = rq_clock();
}
I would expect to see a warning triggered, because we've read the rq
clock outside of the code area where we know it's safe to do so
without a clock update.
The solution for that bug may be as simple as rearranging the code,
delta = rq_clock();
...
rq->clock_update_flags = 0;
but we definitely want to catch such bugs in the first instance.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll 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