Kernel 2.4.16 based: Experimental

 

This page will be used to accomodate code drops that are EXPERIMENTAL. Experimental code drops only have limited testing and may not install or function in all environments. These patches need not be compatible with other patches on developerworks for Linux for S/390 either.

Linux kernel version 2.4.16 experimental downloads

The purpose of experimental code drops is early publication of on-going efforts at IBM to allow for

This page may also be used to "submit" code into the development streams of open source projects.

Warning You may not use experimental patches on a production system or on any system that may get authority over a production system or access to data of a production system. Disregarding this rule may result in severe data loss.

Experimental patches eventually disappear as they will be included in a following release unless proven wrong or replaced by better code.

If you download any software from this web site please be aware of the Warranty Disclaimer and Limitation of Liabilities.

Linux kernel version 2.4.16 experimental downloads
Date Component Downloadable
2001-12-12 Dec12 2001 patches



Experimental OCO modules 31-bit

Experimental OCO modules 64-bit
linux-2.4.16-s390
linux-2.4.16-timer
linux-2.4.16-order2

lcs, qdio, and qeth for standard and "on-demand" timer.
lcs, qdio, and qeth for standard and "on-demand" timer.

2001-12-12 patches

The 2001-12-12 set of Linux Kernel version 2.4.16 experimental patches for Linux for S/390 and Linux for zSeries provides currency work: The current recommended kernel 2.4.7 code base (up to 2001-12-12) has been adapted to kernel 2.4.16. This code has only been tested very rudimentarily and is provided for interested power users as part of our currency work.

Please note that the "on-demand-timer" and "order 2 allocation relief" patches also required adaptions (see below).

Furthermore the 31-bit and 64-bit OCO-modules lcs, qdio, qeth are provided on the same code-level as the recommended 2001-12-12 OCO-modules.

It should be possible to build experimental drivers using:

and the experimental 31-bit and 64-bit OCO-modules lcs, qdio, qeth.

As we are not aware of any Kernel 2.4.16-specific restrictions, the kernel 2.4.7 Restrictions also apply.

Please see the kernel 2.4 Documentation page for the 31-bit and 64-bit manuals, which may be helpful.

Release notes:

This patch contains the current recommended kernel 2.4.7 code base (up to 2001-12-12), adapted to kernel 2.4.16.

To create the complete linux kernel sources, the following patches need to be applied in sequence:

linux-2.4.16.tar.gz (GNU)
+ linux-2.4.16-s390.diff (IBM)

Release notes:

On demand timer patch:
Category operating system. Contains a patch for the linux kernel 2.4.16 that changes the timing method from the regular 100 hz interrupts to on demand timer interrupts. This saves some cpu cycles in an idle linux image. The drawback is that a busy linux image will do a small amount of additional work every time the switch between user mode and kernel mode is done. In short if you are running many images under VM the on demand timers are useful but you probably don't want to use it running under LPAR or native. The patch introduces a configuration option CONFIG_NO_HZ_TIMER that lets you choose between the old and the new behavior. Note that you'll need different lcs, qdio, and qeth modules if you use the no hz timer option.

To create the complete linux kernel sources, the following patches need to be applied in sequence:
linux-2.4.16.tar.gz (GNU)
+ linux-2.4.16-s390.diff (IBM)
+ linux-2.4.16-timer.diff (IBM)

Patch for "order 2 allocation relief" (2001-12-12)

This patch is an adaption of the 2001-12-12 kernel 2.4.7 "order 2 allocation relief" patch to kernel 2.4.16.

Description:
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 segment tables as defined by the zSeries architecture. A full region or segment table in 64 bit mode takes 16 KB of contiguous 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.

Important notices:

To create the complete linux kernel sources, the following patches need to be applied in sequence:
linux-2.4.16.tar.gz (GNU)
+ linux-2.4.16-s390.diff (IBM)
+ linux-2.4.16-order2.diff (IBM)

Experimental OCO modules 31-bit

The experimental lcs, qdio, qeth 31-bit kernel 2.4.16 OCO-modules of 2001-12-12 are functionally equivalent to the 2001-12-12 recommended kernel 2.4.7 OCO-modules.
On-demand timer 31-bit kernels need: lcs-2.4.16-s390-timer.tar.gz, qdio-2.4.16-s390-timer.tar.gz, and qeth-2.4.16-s390-timer.tar.gz.
Standard 100 Hertz timer 31-bit kernels need: lcs-2.4.16-s390.tar.gz, qdio-2.4.16-s390.tar.gz, and qeth-2.4.16-s390.tar.gz.

Experimental OCO modules 64-bit

The experimental lcs, qdio, qeth 64-bit kernel 2.4.16 OCO-modules of 2001-12-12 are functionally equivalent to the 2001-12-12 recommended kernel 2.4.7 OCO-modules.
On-demand timer 64-bit kernels need: lcs-2.4.16-s390x-timer.tar.gz, qdio-2.4.16-s390x-timer.tar.gz, and qeth-2.4.16-s390x-timer.tar.gz.
Standard 100 Hertz timer 64-bit kernels need: lcs-2.4.16-s390x.tar.gz, qdio-2.4.16-s390x.tar.gz, and qeth-2.4.16-s390x.tar.gz.

Contact the IBM team

If you want to contact the Linux on System z IBM team refer to the Contact the Linux on System z IBM team page.