From: Hugh Dickins <hughd@google.com>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: linux-mm@kvack.org, Mel Gorman <mel@csn.ul.ie>,
Johannes Weiner <jweiner@redhat.com>,
Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH] thp: mremap support and TLB optimization
Date: Fri, 11 Mar 2011 12:25:42 -0800 [thread overview]
Message-ID: <AANLkTi=EWW=uaHZbW95_eqabVHTsMdX5N2h_axqi27nn@mail.gmail.com> (raw)
In-Reply-To: <AANLkTikZJqTtVF48cc-AQ1z9iF29Z+f35Qdn_1m_SFQi@mail.gmail.com>
Fri, Mar 11, 2011 at 11:44 AM, Hugh Dickins <hughd@google.com> wrote:
> On Thu, Mar 10, 2011 at 6:04 PM, Andrea Arcangeli <aarcange@redhat.com> wrote:
>>
>> I've been wondering why mremap is sending one IPI for each page that
>> it moves. I tried to remove that so we send an IPI for each
>> vma/syscall (not for each pte/page).
>
> (It wouldn't usually have been sending an IPI for each page, only if
> the mm were active on another cpu, but...)
>
> That looks like a good optimization to me: I can't think of a good
> reason for it to be the way it was, just it started out like that and
> none of us ever thought to change it before. Plus it's always nice to
> see the flush_tlb_range() afterwards complementing the
> flush_cache_range() beforehand, as you now have in move_page_tables().
>
> And don't forget that move_page_tables() is also used by exec's
> shift_arg_pages(): no IPI saving there, but it should be more
> efficient when exec'ing with many arguments.
Perhaps I should qualify that answer: although I still think it's the
right change to make (it matches mprotect, for example), and an
optimization in many cases, it will be a pessimization for anyone who
mremap moves unpopulated areas (I doubt that's common), and for anyone
who moves around single page areas (on x86 and probably some others).
But the exec args case has, I think, few useful tlb entries to lose
from the mm-wide tlb flush.
flush_tlb_range() ought to special case small areas, doing at most one
IPI, but up to some number of flush_tlb_one()s; but that would
certainly have to be another patch.
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-03-11 20:25 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-11 2:04 Andrea Arcangeli
2011-03-11 15:16 ` Rik van Riel
2011-03-11 19:44 ` Hugh Dickins
2011-03-11 20:25 ` Hugh Dickins [this message]
2011-03-12 4:28 ` Andrea Arcangeli
2011-03-12 4:02 ` Andrea Arcangeli
2011-03-15 9:27 ` Johannes Weiner
2011-03-15 10:01 ` Andrea Arcangeli
2011-03-15 12:07 ` Johannes Weiner
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='AANLkTi=EWW=uaHZbW95_eqabVHTsMdX5N2h_axqi27nn@mail.gmail.com' \
--to=hughd@google.com \
--cc=aarcange@redhat.com \
--cc=jweiner@redhat.com \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=riel@redhat.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