From mboxrd@z Thu Jan 1 00:00:00 1970 From: Przemyslaw Marczak Date: Wed, 28 Jan 2015 15:30:35 +0100 Subject: [U-Boot] [PATCH 0/3] arm: reduce .bss section clear time In-Reply-To: References: <1422449743-10119-1-git-send-email-p.marczak@samsung.com> <54C8E024.8070504@denx.de> <54C8EDDF.4090909@samsung.com> Message-ID: <54C8F28B.307@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello, On 01/28/2015 03:18 PM, Pantelis Antoniou wrote: > Hi Przemyslaw, > >> On Jan 28, 2015, at 16:10 , Przemyslaw Marczak wrote: >> >> 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? >> > > Those numbers are indeed incredible; I suppose the caches are disabled? > > The caches are enabled after the relocation, in one of board_init_r calls. >> Best regards, >> -- >> Przemyslaw Marczak >> Samsung R&D Institute Poland >> Samsung Electronics >> p.marczak at samsung.com > > Regards > > ? Pantelis > > Best regards, -- Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak at samsung.com