Re: [PATCH 2.6.27-rc5 resubmit] Fix itimer/many thread hang.

From: Ingo Molnar
Date: Tue Sep 16 2008 - 04:40:35 EST



* Frank Mayhar <fmayhar@xxxxxxxxxx> wrote:

> On Mon, 2008-09-15 at 08:41 +0200, Ingo Molnar wrote:
> > * Roland McGrath <roland@xxxxxxxxxx> wrote:
> >
> > > > please uninline these functions.
> > >
> > > They are short and have only one caller.
> >
> > then they should be defined in the .c file which uses them.
>
> Well, they are actually used in sched.h, in the inline routines
> account_group_user_time() and friends, which are in turn used by
> routines in sched.c. The point here is that the
> thread_group_cputime_account_xxx() routines are defined differently
> depending upon whether we're building for UP or SMP and the
> account_group_xxx() routines use the appropriate version accordingly.
>
> > really, sched.h is large enough already and has lots of unnecessary
> > stuff in it.
>
> Agreed, but Roland and I were trying to make life easier for folks who
> have to maintain SMP and UP versions of this stuff, keeping it all in
> one place rather than scattering it about.
>
> If you insist, I'll un-inline the routines but this will mean moving
> all of this (thread_group_cputime_account_xxx() and
> account_group_xxx() routines) to sched.c. Maybe that makes sense.
> It's your call; I'll hold off on the changes (and resubmitting the
> patch) while I wait for you to let me know what you prefer. Thanks.

it's already in tip/sched/posix-cpu-timers, so please send a delta patch
against tip/master:

http://people.redhat.com/mingo/tip.git/README

i'd suggest to move all the scheduler-internal accounting functions into
kernel/sched_stats.h. AFAICS there's no scheduler-external user of these
APIs. The most widely used external APIs is thread_group_cputime_smp(),
and that is out of line already. (except on UP where it's trivial)

Ingo
--
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/