Re: [PATCH v3 1/2] kernel: time: Add udelay_test module to validate udelay

From: John Stultz
Date: Fri Jun 13 2014 - 12:06:17 EST


On Thu, Jun 12, 2014 at 1:13 PM, David Riley <davidriley@xxxxxxxxxxxx> wrote:
> Create a module that allows udelay() to be executed to ensure that
> it is delaying at least as long as requested (with a little bit of
> error allowed).
>
> There are some configurations which don't have reliably udelay
> due to using a loop delay with cpufreq changes which should use
> a counter time based delay instead. This test aims to identify
> those configurations where timing is unreliable.
>
> Signed-off-by: David Riley <davidriley@xxxxxxxxxxxx>
> ---
> kernel/time/Kconfig | 7 ++
> kernel/time/Makefile | 1 +
> kernel/time/udelay_test.c | 170 ++++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 178 insertions(+)
> create mode 100644 kernel/time/udelay_test.c
>
> diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig
> index f448513..c6af048 100644
> --- a/kernel/time/Kconfig
> +++ b/kernel/time/Kconfig
> @@ -202,3 +202,10 @@ config HIGH_RES_TIMERS
>
> endmenu
> endif
> +
> +config UDELAY_TEST
> + tristate "udelay test driver"
> + default n
> + help
> + This builds the "udelay_test" module that helps to make sure
> + that udelay() is working properly.


Thanks for resubmitting! So I've queued this for my testing.

My only thoughts playing with it now, is that the Kconfig entry is
just in an awkward spot. There isn't really a udelay, or really
general timekeeping specific area in the menus, so it just shows up in
"General Setup" between the "Timer Subsystem" and "Cpu/task time.."
submenus.

I suspect this would be better added in lib/Kconfig.debug near
TEST_MODULE. Any objections to me changing that?

Also I'd probably rename the config option to TEST_UDELAY, as well as
tweak the option string to be more consistent with those similar test
driver options.

thanks
-john
--
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/