Messages in this thread | | | Date | Wed, 6 Feb 2002 14:13:04 -0500 | From | Pete Zaitcev <> | Subject | The IBM order relaxation patch |
| |
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/
| |