Re: [RFC PATCH 2/3] bootstage: Insert bootstage_mark to record timingfor bootup.

From: Bjorn Helgaas
Date: Sun Sep 25 2011 - 08:59:53 EST


On Fri, Sep 23, 2011 at 5:03 PM, Simon Glass <sjg@xxxxxxxxxxxx> wrote:
> From: Da Zheng <zhengda@xxxxxxxxxxxx>
>
> From: Da Zheng <zhengda@xxxxxxxxxxxx>
>
> This inserts calls to bootstage_mark() to timestamp the kernel moving
> between the different initcall levels.
>
> Signed-off-by: Da Zheng <zhengda@xxxxxxxxxxxx>
> ---
>  init/bootstage.c |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
>  init/main.c      |    7 +++++++
>  2 files changed, 56 insertions(+), 0 deletions(-)
>
> diff --git a/init/bootstage.c b/init/bootstage.c
> index 79e9761..6f4668f 100644
> --- a/init/bootstage.c
> +++ b/init/bootstage.c
> @@ -226,3 +226,52 @@ static int __init bootstage_init(void)
>  }
>
>  postcore_initcall(bootstage_init);
> +
> +static int __init post_core_initcall(void)
> +{
> +       bootstage_mark("core_initcall");
> +       return 0;
> +}
> +core_initcall_sync(post_core_initcall);

I'm sure you considered just instrumenting do_one_initcall() rather
than adding these individual initcall marks? That would get you a lot
more timestamps (maybe too many), and would help identify individual
drivers, which I suspect will be common offenders.

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