linux-mips
[Top] [All Lists]

Re: Freeing global memory used only by __init functions

To: Zhang Fuxin <fxzhang@ict.ac.cn>
Subject: Re: Freeing global memory used only by __init functions
From: Gerald Champagne <gerald.champagne@esstech.com>
Date: Tue, 18 Sep 2001 13:37:31 -0500
Cc: "linux-mips@oss.sgi.com" <linux-mips@oss.sgi.com>
References: <200109181808.LAA05245@mail.esstech.com>
Sender: owner-linux-mips@oss.sgi.com
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010801
Thanks for the reply.  Sorry I didn't find the __initdata
attribute.  Is this stuff worth patching?

I'd make the following changes as a start:

in arch/mips/mips-boards/generic/printf.c:
Add __init to putPromChar
Add __init to getPromChar
Add __initdata to buf  (1k buffer)

in arch/mips/mips-boards/generic/cmdline.c:
Add __initdata to arcs_cmdline

Can someone point to a set of rules for submitting patches
for linux-mips?  I'm familiar with the methods used for the
kernel.  Is this the same?  I'm using 2.4.3 from the mips site.
Can I patch against that, or do I have to start from a
certain cvs version?

Thanks!

Gerald


Zhang Fuxin wrote:
> hi,Gerald Champagne,
>       I think __initdata attribute is the answer.You just need to 
> put init data in init data section(via __initdata),there are many examples
> in kernel.
> 
> 
> 在 2001-09-18 12:58:00 you wrote:
> 
>>I noticed that several global buffers are used by a few functions marked
>>as __init functions.  I assume that the code space used by these functions
>>will be freed up when kernel initialization is completed, but can the
>>associated global memory be freed up as well?
>>
>>An example can be found in arch/mips/mips-boards/generic/cmdline.c:
>>
>>char arcs_cmdline[COMMAND_LINE_SIZE];
>>char * __init prom_getcmdline(void);
>>void  __init prom_init_cmdline(void);
>>
>>arcs_cmdline is only used by these two functions and one other function
>>marked as __init.
>>
>>This buffer is small, but it can apply to larger buffers as well.  For
>>example, in arch/mips/mips-boards/generic/printf.c, I think the functions
>>putPromChar and getPromChar should be marked as __init functions, and the
>>1k buffer "buf" is never used after initialization.  Can this 1k be recovered?
>>
>>I know kmalloc could normally be used in kernel code, but that won't work on
>>initialization code used before kmalloc is initialized.
>>
>>Thanks.
>>
>>Gerald
>>
> 
> Regards
>             Zhang Fuxin
>             fxzhang@ict.ac.cn
> 
> 
> 
> 




<Prev in Thread] Current Thread [Next in Thread>