linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-mm@kvack.org
Subject: Re: Use ZVC counters to establish exact size of dirtyable pages
Date: Wed, 14 Feb 2007 15:19:31 -0800	[thread overview]
Message-ID: <20070214151931.852766f9.akpm@linux-foundation.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0702141433190.3228@schroedinger.engr.sgi.com>

On Wed, 14 Feb 2007 14:41:57 -0800 (PST)
Christoph Lameter <clameter@sgi.com> wrote:

> On Wed, 14 Feb 2007, Andrew Morton wrote:
> 
> > Suppose a zone has ten dirty pages.  All the remaining pages in the zone
> > are off being used for soundcard buffers and networking skbs.
> 
> Thats a pretty artificial situation.

We hit weird situations in the VM all the time.  There have been
unbelieveably improbable things which someone manages to hit regularly.

> There is a min_free_kbytes that 
> should give us some safety there. Only GFP_ATOMIC could get us there.

network rx happens.  A nice pingflood will chew the page reserves.  e1000
has insanely huge queues.

> > This function will return zero.  Which I think we'll happen to handle OK.
> 
> One would expect the function to return 10. The 10 pages are on the LRU.
> If we really have zero dirtyable pages then we will get a division by 
> zero problem.

The vm scanner does temporarily take these pages off the lru and will
temporarily adjust NR_INACTIVE or NR_ACTIVE to account for this.

> > But this function can, I think, also return negative (ie: very large)
> > numbers.  I don't think we handle that right.
> 
> How would that occur? The only way that I could think this would happen is 
> if for some strange reason the highmem counts are bigger than the total 
> counts.

Dunno, maybe it can't happen.  But those counters are approximate and
perhaps there are edge cases which occur when differences between them are
calculated and most of the pages are not free and not on the LRU.

It all needs careful thought.

--
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>

  parent reply	other threads:[~2007-02-14 23:19 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-12 18:16 Use ZVC counters to establish exact size of dirtyable pages Christoph Lameter
2007-02-13  8:04 ` Andrew Morton
2007-02-13 17:43   ` Christoph Lameter
2007-02-13 18:03     ` Andrew Morton
2007-02-14 22:24     ` Andrew Morton
2007-02-14 22:41       ` Christoph Lameter
2007-02-14 22:49         ` Christoph Lameter
2007-02-14 23:19         ` Andrew Morton [this message]
2007-02-14 23:35           ` Christoph Lameter
2007-02-14 23:44             ` Andrew Morton
2007-02-15  0:00               ` Christoph Lameter

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=20070214151931.852766f9.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).