lkml.org 
[lkml]   [2007]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: "double" hpet clocksource && hard freeze [bisected]
    From
    Date
    On Fri, 2007-08-24 at 08:46 -0400, Bob Picco wrote:
    > john stultz wrote: [Thu Aug 23 2007, 05:41:45PM EDT]
    > > On Thu, 2007-08-23 at 14:05 -0700, john stultz wrote:
    > > > On Thu, 2007-08-23 at 13:41 -0700, Luck, Tony wrote:
    > > > > > I have a double "hpet" entry in "available_clocksource":
    > > > > > $ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
    > > > > > tsc hpet hpet acpi_pm jiffies
    > > > >
    > > > > Oops. If seems that both drivers/char/hpet.c and arch/x86_64/kernel/hpet.c
    > > > > both register a clocksource named "hpet". Probably a result of bringing
    > > > > back to life a long lost patch, and having someone else (John Stultz, according
    > > > > to git blame) make a similar change to a different file in the intervening
    > > > > time.
    > > > >
    > > > > Presumably the thing to do would be merge the x86_64 specific version
    > > > > into the drivers/char/hpet.c version?
    > > >
    > > > Ugh. Yea. i386 has an hpet clocksource as well. We should kill the
    > > > duplication, but at the moment I'm not comfortable that the
    > > > driver/char/hpet.c is ok to be used for i386/x86_64 (Bob: Do you know
    > > > why the shift value is only 10?).
    > > >
    > > >
    > > > I'm a little surprised by this, as the clocksource code use to prevent
    > > > duplicate named clocksources from being registered, so I'm not sure how
    > > > that check got dropped. Also I'm not quite sure I see where the hard
    > > > freeze is coming from.
    > > >
    > > > My initial reaction would be to either ifdef ia64 implementation in
    > > > drivers/char/hpet.c or move the code under the ia64 arch dir until it is
    > > > really usable by all arches.
    > >
    > > Here is a possible quick fix. I'm open to other approaches, but I also
    > > want to avoid too much churn before 2.6.23 goes out.
    > >
    > > Paolo, could you verify this fixes the issue for you?
    > >
    > > thanks
    > > -john
    > >
    > [snip]
    >
    > I saw what was missed by me in my brief examination of this last night.
    > The platform registers the hpet clocksource too.
    >
    > Instead of adding the config flag to hpet driver, how about the patch
    > below? Since you already check for duplication by address then adding
    > a check for by name too seems okay to me.
    >
    > bob
    >
    >
    > Prevent duplicate names being registered with clocksource. This also
    > eliminates the duplication of hpet clock registration when the arch
    > uses the hpet timer and the hpet driver does too. The patch was
    > compile and link tested.

    Yea. While I'm still not completely comfortable leaving this up to boot
    order alone (the ia64 hpet clocksource is clearly causing issues on
    x86_64), I think this patch is something we need as well.

    >
    > Signed-off-by: Bob Picco <bob.picco@hp.com>

    Acked-by: John Stultz <johnstul@us.ibm.com>

    > kernel/time/clocksource.c | 2 +-
    > 1 file changed, 1 insertion(+), 1 deletion(-)
    >
    > Index: linux-2.6.23-rc3/kernel/time/clocksource.c
    > ===================================================================
    > --- linux-2.6.23-rc3.orig/kernel/time/clocksource.c 2007-08-23 16:44:03.000000000 -0400
    > +++ linux-2.6.23-rc3/kernel/time/clocksource.c 2007-08-24 08:36:41.000000000 -0400
    > @@ -281,7 +281,7 @@ static int clocksource_enqueue(struct cl
    > struct clocksource *cs;
    >
    > cs = list_entry(tmp, struct clocksource, list);
    > - if (cs == c)
    > + if (cs == c || !strcmp(cs->name, c->name))
    > return -EBUSY;
    > /* Keep track of the place, where to insert */
    > if (cs->rating >= c->rating)

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-24 20:21    [W:0.038 / U:0.252 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site