All of lore.kernel.org
 help / color / mirror / Atom feed
From: Huang Shijie <shijie8@gmail.com>
To: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org
Subject: Re: [PATCH] mmap : save some cycles for the shared anonymous mapping
Date: Mon, 14 Sep 2009 10:21:25 +0800	[thread overview]
Message-ID: <4AADA8A5.6040603@gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0909131932440.27988@sister.anvils>

Hugh Dickins write:
> On Fri, 11 Sep 2009, Andrew Morton wrote:
>   
>> On Fri, 11 Sep 2009 09:52:46 +0800
>> Huang Shijie <shijie8@gmail.com> wrote:
>>
>>     
>>> The shmem_zere_setup() does not change vm_start, pgoff or vm_flags,
>>> only some drivers change them (such as /driver/video/bfin-t350mcqb-fb.c).
>>>
>>> Moving these codes to a more proper place to save cycles for shared
>>> anonymous mapping.
>>>       
>
> (Actually it's saving them for any !file mapping.
>  Though I doubt it's a significant saving myself.)
>
>   
yes.
>>> Signed-off-by: Huang Shijie <shijie8@gmail.com>
>>>       
>
> Acked-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>
>
>   
>>> ---
>>>  mm/mmap.c |   18 +++++++++---------
>>>  1 files changed, 9 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/mm/mmap.c b/mm/mmap.c
>>> index 8101de4..840e91e 100644
>>> --- a/mm/mmap.c
>>> +++ b/mm/mmap.c
>>> @@ -1195,21 +1195,21 @@ munmap_back:
>>>  			goto unmap_and_free_vma;
>>>  		if (vm_flags & VM_EXECUTABLE)
>>>  			added_exe_file_vma(mm);
>>> +
>>> +		/* Can addr have changed??
>>> +		 *
>>> +		 * Answer: Yes, several device drivers can do it in their
>>> +		 *         f_op->mmap method. -DaveM
>>> +		 */
>>> +		addr = vma->vm_start;
>>> +		pgoff = vma->vm_pgoff;
>>> +		vm_flags = vma->vm_flags;
>>>  	} else if (vm_flags & VM_SHARED) {
>>>  		error = shmem_zero_setup(vma);
>>>  		if (error)
>>>  			goto free_vma;
>>>  	}
>>>  
>>> -	/* Can addr have changed??
>>> -	 *
>>> -	 * Answer: Yes, several device drivers can do it in their
>>> -	 *         f_op->mmap method. -DaveM
>>> -	 */
>>> -	addr = vma->vm_start;
>>> -	pgoff = vma->vm_pgoff;
>>> -	vm_flags = vma->vm_flags;
>>> -
>>>  	if (vma_wants_writenotify(vma))
>>>  		vma->vm_page_prot = vm_get_page_prot(vm_flags & ~VM_SHARED);
>>>  
>>>       
>> hm, maybe we should nuke those locals and just use vma->foo everywhere.
>>
>> Local variable pgoff never gets used again anyway.
>>     
>
> I think it was me who Nak'ed an earlier patch to remove the update
> of pgoff, out of fear that we might add a later reference sometime
> in future, and not notice for a long time that it then needed that
> update again.
>
>   
my patch.
> addr and pgoff start off as args to do_mmap_pgoff(), so we'd better
> not nuke them!  And if we changed all the lines below that point to
> refer to vma->vm_start and vma->vm_flags, I think there's still a
> danger we'd unthinkingly add a reference to addr or vm_flags later.
>
>   
If we nuke them, there is potential problem to notice :
    Some drivers change the vm->vm_end, so (vm->vm_end - vm->vm_start) 
changes against the length of MMAP.

> If any change is to be made here, I think I prefer Shijie's:
> shmem_zero_setup isn't likely to change to modify any of those,
> and that patch has the great virtue of retaining DaveM's comment,
> which draws attention to the issue.
>
> Hugh
>
>   

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

      reply	other threads:[~2009-09-14  2:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-11  1:52 [PATCH] mmap : save some cycles for the shared anonymous mapping Huang Shijie
2009-09-11  5:16 ` Minchan Kim
2009-09-11 22:46 ` Andrew Morton
2009-09-13 18:48   ` Hugh Dickins
2009-09-14  2:21     ` Huang Shijie [this message]

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=4AADA8A5.6040603@gmail.com \
    --to=shijie8@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=hugh.dickins@tiscali.co.uk \
    --cc=linux-mm@kvack.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.