[U-Boot] [PATCH 0/3] arm: reduce .bss section clear time

Przemyslaw Marczak
2015-01-28T14:10:39Z

Hello Stefan,

On 01/28/2015 02:12 PM, Stefan Roese wrote:
> Hi Przemyslaw,
>
> On 28.01.2015 13:55, Przemyslaw Marczak wrote:
>> This patchset reduces the boot time for ARM architecture,
>> Exynos boards, and boards with DFU enabled(ARM).
>>
>> For tested Trats2 device, this was done in three steps.
>>
>> First was enable the arch memcpy and memset.
>> The second step was enable memset for .bss clear.
>> The third step for reduce this operation is to keep .bss section
>> small as possible.
>>
>> The .bss section will grow if we have a lot of static variables.
>> This section is cleared before jump to the relocated U-Boot,
>> and it's done word by word. To reduce the time for this step,
>> we can enable arch memset, which uses multiple ARM registers.
>>
>> For configs with DFU enabled, we can find the dfu buffer in this section,
>> which has at least 8MB (32MB for trats2). This is a lot of useless data,
>> which is not required for standard boot. So this buffer should be dynamic
>> allocated.
>>
>> Przemyslaw Marczak (3):
>> exynos: config: enable arch memcpy and arch memset
>> arm: relocation: clear .bss section with arch memset if defined
>> dfu: mmc: file buffer: remove static allocation
>>
>> arch/arm/lib/crt0.S | 10 +++++++++-
>> drivers/dfu/dfu_mmc.c | 25 ++++++++++++++++++++++---
>> include/configs/exynos-common.h | 3 +++
>> 3 files changed, 34 insertions(+), 4 deletions(-)
>
> Looking at the commit messages of this patchset I can conclude that your
> overall boot time reduction is:
>
> from ~1527ms
> to ~464ms
>
> This is amazing! Congrats. :)
>

Thank you. I was also amazed.

The time results are taken with from the clock cycle counter, I think
it's reliable. Some day I would like to check it using the oscilloscope.

> We really should in general make more use of the optimized functions and
> take care that the buffers (e.g. the DFU buffer in this case) are used
> in a sane way.
>
> Thanks,
> Stefan
>
>

Yes you're right, I thought that Exynos config has enabled arch
memcpy/set lib, before I checked this...

Best regards,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com