All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@zip.com.au>
To: Pete Zaitcev <zaitcev@redhat.com>
Cc: Robert Love <rml@tech9.net>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] low-latency zap_page_range
Date: Sun, 21 Jul 2002 22:20:12 -0700	[thread overview]
Message-ID: <3D3B960C.C56D4FE2@zip.com.au> (raw)
In-Reply-To: 200207210247.g6L2lXE13782@devserv.devel.redhat.com

Pete Zaitcev wrote:
> 
> > The lock hold time in zap_page_range is horrid.  This patch breaks the
> > work up into chunks and relinquishes the lock after each iteration.
> > This drastically lowers latency by creating a preemption point, as well
> > as lowering lock contention.
> 
> >  void zap_page_range(struct vm_area_struct *vma, unsigned long address, unsigned long size)
> 
> Arjan sent me something similar, done by AKPM, only he did this a
> little differently. He added an argument to zap_page_range
> which allowed to work it in the old way, if set. Then, he set it so
> all places would use low latency EXCEPT a reading from /dev/zero.
> I assume it was some locking somewhere in devices/char/mem.c,
> though I was unable to figure which in particular.
> 

There are actually quite a few places in the ll patch which don't
pass ZPR_COND_RESCHED into zap_page_range.  Places which are
themselves called under locks, places where not enough pages
are being zapped to make it necessary, etc. vmtruncate_list,
some mremap code, others.

Plus some historical notes: there used to be a couple more
flags which could be passed into zap_page_range() to tell
it whether to run flush_cache_range and flush_tlb_range.  That
was an irrelevant cleanup.  But those calls were later unconditionally
sucked into zap_page_range() anyway.

-

  reply	other threads:[~2002-07-22  5:09 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.1027196701.28591.linux-kernel2news@redhat.com>
2002-07-21  2:47 ` [PATCH] low-latency zap_page_range Pete Zaitcev
2002-07-22  5:20   ` Andrew Morton [this message]
2002-07-22 17:19     ` Robert Love
2002-07-20 20:20 Robert Love
2002-07-20 20:20 ` Robert Love
2002-07-22  5:14 ` Andrew Morton
2002-07-22  5:14   ` Andrew Morton
2002-07-22 17:58   ` Robert Love
2002-07-22 17:58     ` Robert Love
2002-07-22 18:05     ` Linus Torvalds
2002-07-22 18:05       ` Linus Torvalds
2002-07-22 18:22       ` Robert Love
2002-07-22 18:22         ` Robert Love
2002-07-22 18:28       ` Robert Love
2002-07-22 18:28         ` Robert Love
2002-07-22 18:40     ` Andrew Morton
2002-07-22 18:40       ` Andrew Morton
2002-07-22 18:50       ` Robert Love
2002-07-22 18:50         ` Robert Love

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=3D3B960C.C56D4FE2@zip.com.au \
    --to=akpm@zip.com.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rml@tech9.net \
    --cc=zaitcev@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 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.