linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Wei Yang <richard.weiyang@gmail.com>
To: Michal Hocko <mhocko@suse.com>
Cc: Wei Yang <richard.weiyang@gmail.com>,
	linux-mm@kvack.org, akpm@linux-foundation.org
Subject: Re: [PATCH] mm, page_alloc: cleanup usemap_size() when SPARSEMEM is not set
Date: Thu, 24 Jan 2019 14:13:41 +0000	[thread overview]
Message-ID: <20190124141341.au6a7jpwccez5vc7@master> (raw)
In-Reply-To: <20190123095503.GR4087@dhcp22.suse.cz>

On Wed, Jan 23, 2019 at 10:55:03AM +0100, Michal Hocko wrote:
>On Tue 22-01-19 15:56:28, Wei Yang wrote:
>> 
>> I think the answer is yes.
>> 
>>   * it reduce the code from 6 lines to 3 lines, 50% off
>>   * by reducing calculation back and forth, it would be easier for
>>     audience to catch what it tries to do
>
>To be honest, I really do not see this sufficient to justify touching
>the code unless the resulting _generated_ code is better/more efficient.

Tried objdump to compare two version.

               Base       Patched      Reduced
Code Size(B)   48         39           18.7%
Instructions   12         10           16.6%

Here is the raw output.

00000000000001be <usemap_size_ywtest1>:
{
 1be:	e8 00 00 00 00       	callq  1c3 <usemap_size_ywtest1+0x5>
	zonesize += zone_start_pfn & (pageblock_nr_pages-1);
 1c3:	81 e7 ff 01 00 00    	and    $0x1ff,%edi
{
 1c9:	55                   	push   %rbp
	return usemapsize / 8;
 1ca:	48 ba f8 ff ff ff ff 	movabs $0x1ffffffffffffff8,%rdx
 1d1:	ff ff 1f 
	usemapsize = roundup(zonesize, pageblock_nr_pages);
 1d4:	48 8d 84 3e ff 01 00 	lea    0x1ff(%rsi,%rdi,1),%rax
 1db:	00 
	usemapsize *= NR_PAGEBLOCK_BITS;
 1dc:	48 c1 e8 09          	shr    $0x9,%rax
	usemapsize = roundup(usemapsize, 8 * sizeof(unsigned long));
 1e0:	48 8d 04 85 3f 00 00 	lea    0x3f(,%rax,4),%rax
 1e7:	00 
{
 1e8:	48 89 e5             	mov    %rsp,%rbp
}
 1eb:	5d                   	pop    %rbp
	return usemapsize / 8;
 1ec:	48 c1 e8 03          	shr    $0x3,%rax
 1f0:	48 21 d0             	and    %rdx,%rax
}
 1f3:	c3                   	retq   

00000000000001f4 <usemap_size_ywtest2>:
{
 1f4:	e8 00 00 00 00       	callq  1f9 <usemap_size_ywtest2+0x5>
	zonesize += zone_start_pfn & (pageblock_nr_pages-1);
 1f9:	81 e7 ff 01 00 00    	and    $0x1ff,%edi
{
 1ff:	55                   	push   %rbp
	usemapsize = DIV_ROUND_UP(zonesize, pageblock_nr_pages);
 200:	48 8d 84 3e ff 01 00 	lea    0x1ff(%rsi,%rdi,1),%rax
 207:	00 
 208:	48 c1 e8 09          	shr    $0x9,%rax
	return BITS_TO_LONGS(usemapsize) * sizeof(unsigned long);
 20c:	48 8d 04 85 3f 00 00 	lea    0x3f(,%rax,4),%rax
 213:	00 
{
 214:	48 89 e5             	mov    %rsp,%rbp
}
 217:	5d                   	pop    %rbp
	return BITS_TO_LONGS(usemapsize) * sizeof(unsigned long);
 218:	48 c1 e8 06          	shr    $0x6,%rax
 21c:	48 c1 e0 03          	shl    $0x3,%rax
}
 220:	c3                   	retq   


-- 
Wei Yang
Help you, Help me


>-- 
>Michal Hocko
>SUSE Labs

-- 
Wei Yang
Help you, Help me

  reply	other threads:[~2019-01-24 14:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-18 23:49 Wei Yang
2019-01-22  8:55 ` Michal Hocko
2019-01-22 15:07   ` Wei Yang
2019-01-22 15:16     ` Michal Hocko
2019-01-22 15:56       ` Wei Yang
2019-01-23  9:55         ` Michal Hocko
2019-01-24 14:13           ` Wei Yang [this message]
2019-01-24 14:30             ` Michal Hocko
2019-01-25  1:12               ` Wei Yang

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=20190124141341.au6a7jpwccez5vc7@master \
    --to=richard.weiyang@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.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