From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v5 2/7] arm: relocation: clear .bss section with arch memset if defined
Date: Tue, 24 Feb 2015 15:32:34 +0100 [thread overview]
Message-ID: <20150224153234.59ed08ec@amdc2363> (raw)
In-Reply-To: <1424774311-23726-3-git-send-email-p.marczak@samsung.com>
Hi Przemyslaw,
> For ARM architecture, enable the CONFIG_USE_ARCH_MEMSET/MEMCPY,
> will highly increase the memset/memcpy performance. This is able
> thanks to the ARM multiple register instructions.
>
> Unfortunatelly the relocation is done without the cache enabled,
> so it takes some time, but zeroing the BSS memory takes much more
> longer, especially for the configs with big static buffers.
>
> A quick test confirms, that the boot time improvement after using
> the arch memcpy for relocation has no significant meaning.
> The same test confirms that enable the memset for zeroing BSS,
> reduces the boot time.
>
> So this patch enables the arch memset for zeroing the BSS after
> the relocation process. For ARM boards, this can be enabled
> in board configs by defining: 'CONFIG_USE_ARCH_MEMSET'.
>
> This was tested on Trats2.
> A quick test with trace. Boot time from start to main_loop() entry:
> - ~1384ms - before this change
> - ~888ms - after this change
>
> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Cc: Albert Aribaud <albert.u.boot@aribaud.net>
> Cc: Tom Rini <trini@ti.com>
> ---
> Changes V3, V4, V5
> - none
> ---
> arch/arm/lib/crt0.S | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S
> index 22df3e5..fab3d2c 100644
> --- a/arch/arm/lib/crt0.S
> +++ b/arch/arm/lib/crt0.S
> @@ -115,14 +115,22 @@ here:
> bl c_runtime_cpu_setup /* we still call old
> routine here */
> ldr r0, =__bss_start /* this is
> auto-relocated! */
> - ldr r1, =__bss_end /* this is
> auto-relocated! */
> +#ifdef CONFIG_USE_ARCH_MEMSET
> + ldr r3, =__bss_end /* this is
> auto-relocated! */
> + mov r1, #0x00000000 /* prepare zero to
> clear BSS */ +
> + subs r2, r3, r0 /* r2 = memset len */
> + bl memset
> +#else
> + ldr r1, =__bss_end /* this is
> auto-relocated! */ mov r2, #0x00000000 /*
> prepare zero to clear BSS */
> clbss_l:cmp r0, r1 /* while not at end
> of BSS */ strlo r2, [r0] /* clear 32-bit BSS
> word */ addlo r0, r0, #4 /* move to next */
> blo clbss_l
> +#endif
>
> bl coloured_LED_init
> bl red_led_on
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
next prev parent reply other threads:[~2015-02-24 14:32 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-16 15:13 [U-Boot] [PATCH v2 0/8] arm: a few steps to reduce the boot time Przemyslaw Marczak
2015-02-16 15:13 ` [U-Boot] [PATCH v2 1/8] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-02-18 4:23 ` Simon Glass
2015-02-18 12:21 ` Przemyslaw Marczak
2015-02-16 15:13 ` [U-Boot] [PATCH v2 2/8] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-02-16 15:21 ` Przemyslaw Marczak
2015-02-18 4:32 ` Simon Glass
2015-02-18 12:31 ` Przemyslaw Marczak
2015-02-19 18:59 ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 3/8] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-02-18 4:32 ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 4/8] dlmalloc: add option for skip memset in malloc init Przemyslaw Marczak
2015-02-18 4:32 ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 5/8] README: add info about skip memset at " Przemyslaw Marczak
2015-02-18 4:32 ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 6/8] kconfig: malloc: add option for " Przemyslaw Marczak
2015-02-18 4:32 ` Simon Glass
2015-02-18 12:40 ` Przemyslaw Marczak
2015-02-19 18:59 ` Simon Glass
2015-02-20 7:32 ` Masahiro Yamada
2015-02-20 9:46 ` Przemyslaw Marczak
2015-02-16 15:13 ` [U-Boot] [PATCH v2 7/8] trats2: defconfig: enable expert and " Przemyslaw Marczak
2015-02-18 4:32 ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 8/8] odroid: defconfig: enable expert and skip malloc memset Przemyslaw Marczak
2015-02-18 4:32 ` Simon Glass
2015-02-18 12:42 ` Przemyslaw Marczak
2015-02-17 21:43 ` [U-Boot] [PATCH v2 0/8] arm: a few steps to reduce the boot time Stephen Warren
2015-02-17 22:39 ` Stephen Warren
2015-02-18 12:58 ` Przemyslaw Marczak
2015-02-20 11:06 ` [U-Boot] [PATCH v3 0/6] arm: a few steps to improve " Przemyslaw Marczak
2015-02-20 11:06 ` [U-Boot] [PATCH v3 1/6] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-02-20 11:06 ` [U-Boot] [PATCH v3 2/6] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-02-20 11:06 ` [U-Boot] [PATCH v3 3/6] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-02-20 11:06 ` [U-Boot] [PATCH v3 4/6] dlmalloc: add option for skip memset in malloc init Przemyslaw Marczak
2015-02-20 12:52 ` Masahiro Yamada
2015-02-20 17:08 ` Przemyslaw Marczak
2015-02-20 11:06 ` [U-Boot] [PATCH v3 5/6] trats2: defconfig: enable expert and skip memset at " Przemyslaw Marczak
2015-02-20 11:06 ` [U-Boot] [PATCH v3 6/6] odroid: " Przemyslaw Marczak
2015-02-23 17:16 ` [U-Boot] [PATCH v4 0/6] arm: a few steps to improve boot time Przemyslaw Marczak
2015-02-23 17:16 ` [U-Boot] [PATCH v4 1/6] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-02-23 17:16 ` [U-Boot] [PATCH v4 2/6] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-02-23 17:16 ` [U-Boot] [PATCH v4 3/6] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-02-23 17:16 ` [U-Boot] [PATCH v4 4/6] dlmalloc: do memset in malloc init as new default config Przemyslaw Marczak
2015-02-23 17:38 ` Simon Glass
2015-02-24 10:59 ` Przemyslaw Marczak
2015-02-23 17:16 ` [U-Boot] [PATCH v4 5/6] trats2: defconfig: disable memset at malloc init Przemyslaw Marczak
2015-02-23 17:16 ` [U-Boot] [PATCH v4 6/6] odroid: " Przemyslaw Marczak
2015-02-24 10:38 ` [U-Boot] [PATCH v5 0/7] arm: a few steps to improve boot time Przemyslaw Marczak
2015-02-24 10:38 ` [U-Boot] [PATCH v5 1/7] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-02-24 14:30 ` Lukasz Majewski
2015-02-24 10:38 ` [U-Boot] [PATCH v5 2/7] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-02-24 14:32 ` Lukasz Majewski [this message]
2015-02-24 10:38 ` [U-Boot] [PATCH v5 3/7] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-02-24 14:35 ` Lukasz Majewski
2015-02-24 10:38 ` [U-Boot] [PATCH v5 4/7] dlmalloc: do memset in malloc init as new default config Przemyslaw Marczak
2015-02-24 14:38 ` Lukasz Majewski
2015-02-24 10:38 ` [U-Boot] [PATCH v5 5/7] trats2: defconfig: disable memset at malloc init Przemyslaw Marczak
2015-02-24 14:39 ` Lukasz Majewski
2015-02-24 10:38 ` [U-Boot] [PATCH v5 6/7] odroid: " Przemyslaw Marczak
2015-02-24 14:39 ` Lukasz Majewski
2015-02-24 10:38 ` [U-Boot] [PATCH v5 7/7] odroid-xu3: " Przemyslaw Marczak
2015-02-24 14:40 ` Lukasz Majewski
2015-02-24 14:47 ` [U-Boot] [PATCH v5 0/7] arm: a few steps to improve boot time Przemyslaw Marczak
2015-03-04 13:01 ` [U-Boot] [PATCH v6 00/10] " Przemyslaw Marczak
2015-03-04 13:01 ` [U-Boot] [PATCH v6 01/10] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 02/10] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 03/10] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 04/10] dlmalloc: do memset in malloc init as new default config Przemyslaw Marczak
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 05/10] trats2: defconfig: disable memset at malloc init Przemyslaw Marczak
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 06/10] odroid: " Przemyslaw Marczak
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 07/10] odroid-xu3: " Przemyslaw Marczak
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 08/10] zynq-common: increase malloc pool len by dfu mmc file buffer size Przemyslaw Marczak
2015-03-04 13:57 ` Michal Simek
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 09/10] ti-armv7-common: " Przemyslaw Marczak
2015-03-09 16:46 ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01 ` [U-Boot] [PATCH v6 10/10] tegra-common: " Przemyslaw Marczak
2015-03-09 16:47 ` [U-Boot] [U-Boot, v6, " Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150224153234.59ed08ec@amdc2363 \
--to=l.majewski@samsung.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.