linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: Chanwoo Choi <cw00.choi@samsung.com>,
	Stephen Boyd <sboyd@codeaurora.org>
Cc: tomasz.figa@gmail.com, mturquette@baylibre.com, kgene@kernel.org,
	k.kozlowski@samsung.com, chanwoo@kernel.org,
	linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] clk: samsung: exynos5260: Move struct samsung_cmu_info to init section
Date: Tue, 23 Aug 2016 12:07:30 +0200	[thread overview]
Message-ID: <84e40b9b-1e08-24e0-f1ef-60b38b760ae6@samsung.com> (raw)
In-Reply-To: <57BBB66E.2060807@samsung.com>

On 08/23/2016 04:35 AM, Chanwoo Choi wrote:
>>>  
>>> +static const struct samsung_cmu_info aud_cmu __initconst = {
>>> +	.mux_clks	= aud_mux_clks,
>>> +	.nr_mux_clks	= ARRAY_SIZE(aud_mux_clks),
>>> +	.div_clks	= aud_div_clks,
>>> +	.nr_div_clks	= ARRAY_SIZE(aud_div_clks),
>>> +	.gate_clks	= aud_gate_clks,
>>> +	.nr_gate_clks	= ARRAY_SIZE(aud_gate_clks),
>>> +	.nr_clk_ids	= AUD_NR_CLK,
>>> +	.clk_regs	= aud_clk_regs,
>>> +	.nr_clk_regs	= ARRAY_SIZE(aud_clk_regs),
>>> +};
>>> +
>>>  static void __init exynos5260_clk_aud_init(struct device_node *np)
>>>  {
>>> -	struct samsung_cmu_info cmu = { NULL };
>>> -
>>
>> I presume this was done this way to save some initdata space by
>> only allocating the array that's needed at runtime? I would
>> expect to see some more kernel image bloat from this change but
>> runtime memory usage would stay the same. Is there any real
>> benefit from this patch though?
>>
> 
> After this patch, 'struct samsung_cmu_info' size should be added
> to kernel image and then the size of deleted code should be removed
> from kernel image. I think that it is not bloating.
> (struct samsung_cmu_info includes the pointer and integer value.)
> 
> This patch make the code more simple and improve the readability.
> And, the samsung_cmu_register_on() requires the 'const' type
> argument for 'struct samsung_cmu_info'.

I checked stripped object files and it seems with the patch there
is some saving of the kernel image size. Exactly 784 bytes, which
makes zImage smaller by 480 bytes.

The patch increases .init.rodata section size by 780 bytes but 
decreases .init.text section size by 1564 bytes.  Looks like 
a static initializer is cheaper.

$ ls -l  drivers/clk/samsung/clk-exynos5260.o

< -rw-rw-r-- 1 snawrocki snawrocki 29100 Aug 23 11:35 drivers/clk/samsung/clk-exynos5260.o
---
> -rw-rw-r-- 1 snawrocki snawrocki 28316 Aug 23 11:32 drivers/clk/samsung/clk-exynos5260.o


The section size differences are as below:
15c15
<   3 .init.text    000006b8  00000000  00000000  00000034  2**2
---
>   3 .init.text    0000009c  00000000  00000000  00000034  2**2
25c25
<   8 .init.rodata  00003f6c  00000000  00000000  00002f20  2**2
---
>   8 .init.rodata  00004278  00000000  00000000  00002904  2**2

So the saving is rather insignificant but the patch doesn't make
things worse and I'd say it might be worth applying.

--
Thanks, 
Sylwester

  reply	other threads:[~2016-08-23 10:08 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-22  2:49 [PATCH 0/2] clk: samsung: Move struct samsung_cmu_info to init section Chanwoo Choi
2016-08-22  2:49 ` [PATCH 1/2] clk: samsung: exynos5260: " Chanwoo Choi
2016-08-23  0:55   ` Stephen Boyd
2016-08-23  2:35     ` Chanwoo Choi
2016-08-23 10:07       ` Sylwester Nawrocki [this message]
2016-08-24  4:43         ` Stephen Boyd
2016-08-24  8:38           ` Chanwoo Choi
2016-08-25  0:11             ` Stephen Boyd
2016-08-25  7:28               ` Chanwoo Choi
2016-08-25 14:43                 ` Tomasz Figa
2016-09-01 17:06   ` Sylwester Nawrocki
2016-08-22  2:49 ` [PATCH 2/2] clk: samsung: exynos5410: Use samsung_cmu_register_one() to simplify code Chanwoo Choi
2016-09-01 17:07   ` Sylwester Nawrocki

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=84e40b9b-1e08-24e0-f1ef-60b38b760ae6@samsung.com \
    --to=s.nawrocki@samsung.com \
    --cc=chanwoo@kernel.org \
    --cc=cw00.choi@samsung.com \
    --cc=k.kozlowski@samsung.com \
    --cc=kgene@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@codeaurora.org \
    --cc=tomasz.figa@gmail.com \
    /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;
as well as URLs for NNTP newsgroup(s).