[U-Boot] [PATCH v2] DLMALLOC:!X86: add av_ initialization
Nishanth Menon
nm at ti.com
Wed Oct 7 05:14:53 CEST 2009
Graeme Russ had written, on 10/06/2009 09:52 PM, the following:
> On Wed, Oct 7, 2009 at 1:13 PM, Nishanth Menon <nm at ti.com> wrote:
>> Remove the predefined static initialization
>> and generate the map dynamically to reduce
>> code size.
>>
>> This patch benefits were pointed out by Peter:
>> http://www.nabble.com/forum/Permalink.jtp?root=25518020&post=25523748&page=y
>>
>> Signed-off-by: Nishanth Menon <nm at ti.com>
>> Cc: Peter Tyser <ptyser at xes-inc.com>
>> Cc: Sandeep Paulraj <s-paulraj at ti.com>
>> Cc: Tom Rix <tom.rix at windriver.com>
>> ---
>> common/dlmalloc.c | 9 +++++++++
>> 1 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/common/dlmalloc.c b/common/dlmalloc.c
>> index 241db8c..25e5314 100644
>> --- a/common/dlmalloc.c
>> +++ b/common/dlmalloc.c
>> @@ -1474,6 +1474,7 @@ typedef struct malloc_chunk* mbinptr;
>>
>> #define IAV(i) bin_at(i), bin_at(i)
>>
>> +#ifdef CONFIG_X86
>> static mbinptr av_[NAV * 2 + 2] = {
>> 0, 0,
>> IAV(0), IAV(1), IAV(2), IAV(3), IAV(4), IAV(5), IAV(6), IAV(7),
>> @@ -1493,6 +1494,9 @@ static mbinptr av_[NAV * 2 + 2] = {
>> IAV(112), IAV(113), IAV(114), IAV(115), IAV(116), IAV(117), IAV(118), IAV(119),
>> IAV(120), IAV(121), IAV(122), IAV(123), IAV(124), IAV(125), IAV(126), IAV(127)
>> };
>> +#else
>> +static mbinptr av_[NAV * 2 + 2];
>> +#endif
>
> Is there any reason why X86 is treated differently? I know the previous
> patch to dlmalloc.c did, but in the end it really didn't need to and ended
> up breaking the x86 build anyway (my fault for not getting time to test it
> before it went mainline)
>
> Feel free to remove this #ifdef unless you are 100% sure it IS needed.
> Mainline x86 is broken anyway - if this change introduces another break, I
> will submit a consolidated fix soon
I dont have any rationale to retain the #ifdef.. it is ugly.. will kick
it out and send out a v3 of this patch in a short while.
>
>> void malloc_bin_reloc (void)
>> {
>> @@ -1527,6 +1531,11 @@ void *sbrk(ptrdiff_t increment)
>> */
>> void mem_malloc_init(ulong start, ulong size)
>> {
>> + u8 i;
>> + av_[0] = av_[1] = 0;
>> + for (i = 0; i < 128; i++)
>> + av_[2 + i * 2] = av_[2 + i * 2 + 1] = bin_at(i);
>> +
>> mem_malloc_start = start;
>> mem_malloc_end = start + size;
>> mem_malloc_brk = start;
>> --
>> 1.6.0.4
>
> Regards,
>
> Graeme
>
--
Regards,
Nishanth Menon
More information about the U-Boot
mailing list