Re: [PATCH 08/14] sched: add latency tracing for -deadline tasks.

From: Peter Zijlstra
Date: Wed Nov 27 2013 - 09:59:01 EST


On Wed, Nov 27, 2013 at 03:34:35PM +0100, Ingo Molnar wrote:
>
> * Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> > On Wed, Nov 27, 2013 at 09:16:47AM -0500, Steven Rostedt wrote:
> > > On Wed, 27 Nov 2013 14:43:45 +0100
> > > Juri Lelli <juri.lelli@xxxxxxxxx> wrote:
> > > diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c
> > > > index f76f8d6..ad94604 100644
> > > > --- a/kernel/trace/trace_selftest.c
> > > > +++ b/kernel/trace/trace_selftest.c
> > > > @@ -1023,16 +1023,16 @@ trace_selftest_startup_nop(struct tracer *trace, struct trace_array *tr)
> > > > static int trace_wakeup_test_thread(void *data)
> > > > {
> > > > /* Make this a -deadline thread */
> > > > - struct sched_param2 paramx = {
> > > > + static const struct sched_param2 param = {
> > > > .sched_priority = 0,
> > > > + .sched_flags = 0,
> > > > .sched_runtime = 100000ULL,
> > > > .sched_deadline = 10000000ULL,
> > > > .sched_period = 10000000ULL
> > > > - .sched_flags = 0
> > >
> > > Assigning structures like this, you don't need to set the zero fields.
> > > all fields not explicitly stated, are set to zero.
> >
> > Only because its static. Otherwise unnamed members have indeterminate
> > value after initialization.
>
> I think for 'struct' C will initialize them to zero, even if they are
> not mentioned and even if they are on the stack.
>
> It will only be indeterminate when it's not initialized at all.

Language spec: ISO/IEC 9899:1999 (aka C99) section 6.7.8 point 9
says:

9. Except where explicitly stated otherwise, for the purpose of this
subclause unnamed members of objects of structure and union type do no
participate in initialization. Unnamed members of structure objects have
indeterminate value even after initialization.

Later points (notably 21) make such an exception for aggregate objects
of static storage.

Of course, its entirely possible I read the thing wrong; its 31 points
detailing the initialization of objects.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/