All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pete Zaitcev <zaitcev@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: zaitcev@redhat.com
Subject: The IBM order relaxation patch
Date: Wed, 6 Feb 2002 14:13:04 -0500	[thread overview]
Message-ID: <20020206141304.A9349@devserv.devel.redhat.com> (raw)

Hi,

I had a look at an IBM patch, which is described thus:

  - Order 2 allocation relief

  Symptom:  Under stress and after long uptimes of a 64 bit system
            the error message "__alloc_pages: 2-order allocation failed."
            appears and either the fork of a new process fails or an
            active process dies.

  Problem:  The order 2 allocation problem is based in the size of the
            region and segement tables as defined by the zSeries
            architecture. A full region or segment table in 64 bit mode
            takes 16 KB of contigous real memory. The page allocation
            routines do not guarantee that a higher order allocation
            will succeed due to memory fragmentation.

  Solution: The order 2 allocation fix is supposed to reduce the number
            of order 2 allocations for the region and segment tables to
            a minimum. To do so it uses a feature of the architecture
            that allows to create incomplete region and segment tables.
            In almost all cases a process does not need full region or
            segment tables. If a full region or segment table is needed
            it is reallocated to the full size.

  This patch is very s/390 specific and breaks all other architectures.
  <<they meant "zSeries specific", surely --zaitcev>>

It's a stupid question, but: why can we not simply
wait until a desired unfragmented memory area is available,
with a GPF flag? What they describe does not happen in an
interrupt context, so we can sleep.

And another one: why not to increase a kernel-visible or "soft"
page size to 16KB for zSeries? It's a 64 bits platform. There
will be some increase in fragmentation, but nobody measured it.
Perhaps it's not going to be severe. It may even improve paging
efficiency.

-- Pete

P.S. The patch itself is at:
 http://www10.software.ibm.com/developerworks/opensource/linux390/alpha_src/linux-2.4.7-order2-3.tar.gz

             reply	other threads:[~2002-02-06 19:13 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-06 19:13 Pete Zaitcev [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-02-06 21:50 The IBM order relaxation patch Ulrich Weigand
2002-02-07  0:18 ` Alan Cox
2002-02-07  4:01   ` David S. Miller
2002-02-07 12:16     ` Rik van Riel
2002-02-07 12:29       ` David S. Miller
2002-02-07 12:42         ` Rik van Riel
2002-02-07 12:58         ` Hugh Dickins
2002-02-07 14:12 ` Daniel Phillips
2002-02-07 14:55   ` Rik van Riel
2002-02-07 15:07     ` Daniel Phillips
2002-02-07 15:10       ` David S. Miller
2002-02-09 20:21   ` Alex Bligh - linux-kernel
2002-02-07 15:05 Ulrich Weigand
2002-02-07 15:13 ` Rik van Riel
2002-02-07 17:57 ` Daniel Phillips

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=20020206141304.A9349@devserv.devel.redhat.com \
    --to=zaitcev@redhat.com \
    --cc=linux-kernel@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.