From: Jack Steiner <steiner@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: Re: Inefficient TLB flushing
Date: Thu, 13 Nov 2003 03:18:01 +0000 [thread overview]
Message-ID: <marc-linux-ia64-106869353720690@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-106866775025427@msgid-missing>
On Wed, Nov 12, 2003 at 01:22:53PM -0800, Andrew Morton wrote:
> David Mosberger <davidm@napali.hpl.hp.com> wrote:
> >
> > Jack> Here is the patch that I am currently testing:
> >
> > Jack> --- /usr/tmp/TmpDir.19957-0/linux/mm/memory.c_1.79 Wed Nov 12 13:56:25 2003
> > Jack> +++ linux/mm/memory.c Wed Nov 12 12:57:25 2003
> > Jack> @@ -574,9 +574,10 @@
> > Jack> if ((long)zap_bytes > 0)
> > Jack> continue;
> > Jack> if (need_resched()) {
> > Jack> + int fullmm = (*tlbp)->fullmm;
> > Jack> tlb_finish_mmu(*tlbp, tlb_start, start);
> > Jack> cond_resched_lock(&mm->page_table_lock);
> > Jack> - *tlbp = tlb_gather_mmu(mm, 0);
> > Jack> + *tlbp = tlb_gather_mmu(mm, fullmm);
> > Jack> tlb_start_valid = 0;
> > Jack> }
> > Jack> zap_bytes = ZAP_BLOCK_SIZE;
> >
> > I think the patch will work fine, but it's not very clean, because it
> > bypasses the TLB-flush API and directly accesses
> > implementation-specific internals. Perhaps it would be better to pass
> > a "fullmm" flag to unmap_vmas(). Andrew?
>
> Either that, or add a new interface function
>
> int mmu_gather_is_full_mm(mmu_gather *tlb);
>
> and use it...
>
How implementation independent should it be? Currently, there is only one
field in the mmu_gather structure that must be preserved. However, if we
want to make the interface truly implementation independent, it seems
like we should define something like:
if (need_resched()) {
struct mmu_gather_state state;
tlb_mmu_gather_save_state(*tlbp, &state);
tlb_finish_mmu(*tlbp, tlb_start, start);
...
*tlbp = tlb_mmu_gather_restore_state(&state);
}
Is this overkill?
Should we use the patch given above for 2.6.0 & replace it with an implementation
independent interface for 2.6.1?
--
Thanks
Jack Steiner (steiner@sgi.com) 651-683-5302
Principal Engineer SGI - Silicon Graphics, Inc.
next prev parent reply other threads:[~2003-11-13 3:18 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-12 20:01 Inefficient TLB flushing Jack Steiner
2003-11-12 20:49 ` David Mosberger
2003-11-12 21:22 ` Andrew Morton
2003-11-13 3:18 ` Jack Steiner [this message]
2003-11-13 3:31 ` Andrew Morton
2003-11-13 3:56 ` David S. Miller
-- strict thread matches above, loose matches on Subject: below --
2003-11-12 20:01 Jack Steiner
2003-11-12 20:49 ` David Mosberger
2003-11-12 21:22 ` Andrew Morton
2003-11-13 3:18 ` Jack Steiner
2003-11-13 3:31 ` Andrew Morton
2003-11-13 3:56 ` David S. Miller
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=marc-linux-ia64-106869353720690@msgid-missing \
--to=steiner@sgi.com \
--cc=linux-ia64@vger.kernel.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.