From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] arm: mx6: Reduce SPL malloc pool size
Date: Wed, 25 Nov 2015 14:32:24 +0100 [thread overview]
Message-ID: <201511251432.25058.marex@denx.de> (raw)
In-Reply-To: <5655B461.1000801@samsung.com>
On Wednesday, November 25, 2015 at 02:15:13 PM, Przemyslaw Marczak wrote:
> On 11/25/2015 01:16 PM, Marek Vasut wrote:
> > On Wednesday, November 25, 2015 at 01:00:41 PM, Przemyslaw Marczak wrote:
> >> Hello Marek,
> >>
> >> On 11/25/2015 11:56 AM, Marek Vasut wrote:
> >>> On Wednesday, November 25, 2015 at 11:40:36 AM, Przemyslaw Marczak wrote:
> >>>> Hello Tim, Marek
> >>>>
> >>>> On 11/20/2015 10:40 PM, Tim Harvey wrote:
> >>>>> On Fri, Nov 20, 2015 at 12:43 PM, Marek Vasut <marex@denx.de> wrote:
> >>>>>> Using 50 MiB malloc pool in SPL is nonsense. Since the caches are
> >>>>>> not enabled in SPL, it takes 2 seconds to init the pool and has no
> >>>>>> obvious benefit. Reduce the size to 1 MiB.
> >>>>>>
> >>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>>>>> Cc: Stefano Babic <sbabic@denx.de>
> >>>>>> Cc: Tim Harvey <tharvey@gateworks.com>
> >>>>>> ---
> >>>>>>
> >>>>>> include/configs/imx6_spl.h | 6 +++---
> >>>>>> 1 file changed, 3 insertions(+), 3 deletions(-)
> >>>>>>
> >>>>>> diff --git a/include/configs/imx6_spl.h b/include/configs/imx6_spl.h
> >>>>>> index 1744f2c..43ce7fe 100644
> >>>>>> --- a/include/configs/imx6_spl.h
> >>>>>> +++ b/include/configs/imx6_spl.h
> >>>>>> @@ -63,15 +63,15 @@
> >>>>>>
> >>>>>> #if defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL) ||
> >>>>>> defined(CONFIG_MX6SL) #define CONFIG_SPL_BSS_START_ADDR
> >>>>>> 0x88200000
> >>>>>>
> >>>>>> -#define CONFIG_SPL_BSS_MAX_SIZE 0x100000 /* 1 MB */
> >>>>>> +#define CONFIG_SPL_BSS_MAX_SIZE 0x100000 /* 1
> >>>>>> MB */
> >>>>>>
> >>>>>> #define CONFIG_SYS_SPL_MALLOC_START 0x88300000
> >>>>>>
> >>>>>> -#define CONFIG_SYS_SPL_MALLOC_SIZE 0x3200000 /* 50 MB */
> >>>>>> +#define CONFIG_SYS_SPL_MALLOC_SIZE 0x100000 /* 1
> >>>>>> MB */
> >>>>>>
> >>>>>> #define CONFIG_SYS_TEXT_BASE 0x87800000
> >>>>>> #else
> >>>>>> #define CONFIG_SPL_BSS_START_ADDR 0x18200000
> >>>>>> #define CONFIG_SPL_BSS_MAX_SIZE 0x100000
> >>>>>> /* 1 MB */ #define CONFIG_SYS_SPL_MALLOC_START 0x18300000
> >>>>>>
> >>>>>> -#define CONFIG_SYS_SPL_MALLOC_SIZE 0x3200000 /* 50 MB */
> >>>>>> +#define CONFIG_SYS_SPL_MALLOC_SIZE 0x100000 /* 1 MB */
> >>>>>>
> >>>>>> #define CONFIG_SYS_TEXT_BASE 0x17800000
> >>>>>> #endif
> >>>>>> #endif
> >>>>>>
> >>>>>> --
> >>>>>> 2.1.4
> >>>>>
> >>>>> Acked-by: Tim Harvey <tharvey@gateworks.com>
> >>>>>
> >>>>> thanks for dropping 2 secs off our time to boot!
> >>>>>
> >>>>> Tim
> >>>>
> >>>> The boot time for SPL and U-Boot can be reduced more if
> >>>> CONFIG_SYS_MALLOC_CLEAR_ON_INIT is unset (default is set).
> >>>
> >>> This might confuse DM, so I don't want this. DM checks if it's
> >>> structures were already inited and if we don't clear the malloc area,
> >>> they would be.
> >>
> >> DM is safe - it uses calloc() for it's structures and also driver's
> >> static structures are zeroed. Only some private data which is not
> >> allocated by DM can be risky to use.
> >>
> >> To be precise - we don't use malloc() to get pointer for zeroed memory,
> >> this is the job for the calloc().
> >>
> >> So any code with bad use of malloc() should be fixed ASAP.
> >>
> >> If you assume that clear the malloc pool at boot is safe to use, then
> >> I'm asking you, what about the sequence malloc/free/malloc for
> >> potentially the same area? You can't be sure that the second returned
> >> pointer after calling free() - points to the initially zeroed pool.
> >>
> >> We don't clean the malloc pool for configs that we maintain and we
> >> didn't noticed any issues related to this. And the boot time is reduced
> >> significantly.
> >
> > Do you use DM in SPL ?
>
> No, we don't use the SPL - for the boards which we maintain.
OK
> > I just checked and I see it's probably only the GD which needs to be
> > cleared out, so we should indeed be safe. In which case, patch is
> > welcome to enable CONFIG_SYS_MALLOC_CLEAR_ON_INIT .
>
> Yes I can see also for the Exynos SPL, that GD is manually cleared.
>
> But disabling the default CONFIG_SYS_MALLOC_CLEAR_ON_INIT, will help you
> in reducing the U-Boot init time.
> Just try and if you can easy measure the real difference for
> enable/disable this config - share the results - it can give us an
> interesting conclusions.
Sure, thanks for the hint, but I still don't see any reason for having 50 MiB
malloc area in SPL ;-)
next prev parent reply other threads:[~2015-11-25 13:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-20 20:43 [U-Boot] [PATCH] arm: mx6: Reduce SPL malloc pool size Marek Vasut
2015-11-20 21:24 ` Stefano Babic
2015-11-20 21:40 ` Tim Harvey
2015-11-25 10:40 ` Przemyslaw Marczak
2015-11-25 10:56 ` Marek Vasut
2015-11-25 12:00 ` Przemyslaw Marczak
2015-11-25 12:16 ` Marek Vasut
2015-11-25 13:15 ` Przemyslaw Marczak
2015-11-25 13:32 ` Marek Vasut [this message]
2015-11-30 18:56 ` Tim Harvey
2015-11-30 23:31 ` Marek Vasut
2015-12-01 14:13 ` Tim Harvey
2015-12-01 14:16 ` Marek Vasut
2015-12-01 14:18 ` Stefano Babic
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=201511251432.25058.marex@denx.de \
--to=marex@denx.de \
--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