On 8 September 2015 at 16:10, Peter Zijlstra <pet...@infradead.org> wrote: > On Tue, Sep 08, 2015 at 03:39:37PM +0200, Vincent Guittot wrote: >> > Now, given all that, units are a complete mess here, and I'd not mind >> > something like: >> > >> > #if (SCHED_LOAD_SHIFT - SCHED_LOAD_RESOLUTION) != SCHED_CAPACITY_SHIFT >> > #error "something usefull" >> > #endif >> >> In this case why not simply doing >> #define SCHED_CAPACITY_SHIFT SCHED_LOAD_SHIFT >> or the opposite ? > > Sadly not enough; aside from the fact that we really should do !0 > LOAD_RESOLUTION on 64bit, the whole magic tables (runnable_avg_yN_*[]) > and LOAD_AVG_MAX* values rely on the unit being 1<<10.
ah yes, i forgot to take into account the LOAD_RESOLUTION. So after some more thinking, i finally don't see where in the code, we will have a issue if SCHED_CAPACITY_SHIFT is not equal to (SCHED_LOAD_SHIFT - SCHED_LOAD_RESOLUTION) or not equal to 10 with the respect of using a value that doesn't overflow the variables Regards, Vincent > > So regardless of defining one in terms of the other, we should check > both are in fact 10 and error out otherwise. > > Changing them must involve recomputing these numbers or otherwise > mucking about with shifts to ensure its back to 10 when we do this load > muck. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/