Re: 2.6.22-rc3-mm1: __attribute__((weak)) considered harmful

From: Russell King
Date: Mon Jun 04 2007 - 23:59:32 EST


On Tue, Jun 05, 2007 at 01:52:38AM +0200, Martin Peschke wrote:
> Andrew Morton wrote:
> >On Sat, 2 Jun 2007 19:14:25 +0200
> >Adrian Bunk <bunk@xxxxxxxxx> wrote:
> >
> >>statistics-infrastructure-make-printk_clock-a-generic-kernel-wide-nsec-resolution.patch
> >>shows why __attribute__((weak)) is harmful because you don't see if a
> >>required non-weak implemtation is missing:
> >>
> >>In this case, the weak printk_clock() was renamed to timestamp_clock(),
> >>but the ARM and i386 implementations weren't renamed...
> >>
> >
> >printk_clock() is sched_clock() in disguise, and I'm not sure that making
> >sched_clock() more widely available in this fashion is something that we
> >want to do anyway.

Note that sched_clock() can not be used early on ARM; it might want to
access MMIO which is not accessible until later in setup_arch(). This
is why ARM's printk_clock() divorces itself from sched_clock().

> As to timestamp_clock(): its useful for statistics, but still a minor
> feature. It would be unfortuante if that was the stumbling block for my
> patches. Am I right that the fix for the issue pointed at by Adrian is to
> rename those two occurrences of printk_clock()? Do you want me to submit a
> patch?

If it's ends up being based upon sched_clock() instead of printk_clock()
on ARM then it'll break stuff horribly (== non-bootable kernels.)

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
-
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/