The IBM order relaxation patch

From: Pete Zaitcev (zaitcev@redhat.com)
Date: Wed Feb 06 2002 - 14:13:04 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:00:52 EST