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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox