Skip to main content



Kernel 2.4 based: August 2001 stream

developerWorks
Recommended   |   Experimental   |   Technical details   |   Restrictions   |   Documentation

Known bugs   Initial ramdisk   Common I/O layer
gdb   Tape driver   CTC/ESCON
IUCV   PORTNAME problem   z90crypt
DASD   Partition types   Partitioning DASD
LCS   PFAULT on 64-bit: VM-fix needed
Channel Device Configuration   Broadcast-ping problem
OSA Express driver, QDIO base support, HiperSockets   Large MTU sizes may fail due to "order-N allocation failed" problem



Known bugs

There are known bugs in kernel 2.4.7 and 2.4.17 which can also show up on S/390 and zSeries hardware.


Back to top


Initial ramdisk

The new devfs name /dev/rd/0 of the ramdisk cannot be used on the root= kernel parameter. The old style name /dev/ram0 has to be used instead.


Back to top


Common I/O layer

If you explicitly specify cio_proc_devinfo=yes, not all devices will show up in /proc/deviceinfo/ if there are more than ca. 500 devices attached.


Back to top


gdb

Debugging multi-threaded applications with gdb-5.1.1 does not work properly on s390 and s390x.


Back to top


Tape driver

  • The tape driver implements assign on open. This means as long as the tape device is open it will be protected against other guests/LPARs. However, as soon as the tape device is closed it gets released and can be used by any guest/LPAR, again.
  • The 3480/90 tape driver is unable to detect manual operations on the tape device, in particular manual tape unloads, and these operations will lead to errors in reading and writing. The driver provides ioctl functions to control the device and these must be used, either through the API or by using the Linux mt utility.


Back to top


CTC/ESCON

The sequence of the parameters as well as the separator used in the module- and kernel parameter line has changed. Please refer to the "Device Drivers and Installation Commands" manual in the documentation section.


Back to top


PORTNAME problem

You may have seen this before, but then again you may not...

Starting with microcode level 0146, OSA-Express QDIO requires a portname to be set in the device driver. This portname is specified using
add_parms,0x10,portname:FOOBAR
(more details in the chandev man page).

Put another way: If you fail to bring up your OSD card and dmesg shows an error message like
received IDX_TERMINATE with cause code 0x22 -- try another portname
you have to specify a portname.
To do so, append to your parmfile
chandev=add_parms,<lo_devno>,<high_devno>,portname:BLA
(where BLA is your portname and <lo_devno> and <high_devno> pertain to the device numbers of your card).



Back to top


IUCV

This device driver is only available to Linux systems running as guests under VM/ESA or z/VM.


Back to top


DASD

  • Detachment in VM of a device still open or mounted in Linux may trigger a limitation in the Linux kernel 2.4 common code and cause the system to hang or crash.
  • After detaching the DASD device, you must disable the device using:
    echo -n "set <devno> off" >> /proc/dasd/devices
    before attaching the device again, to avoid crashing the device driver.
  • zIPL does not work with diag access to VM minidisks.
  • fdasd expects more than one entry in the config file of the -c option.
  • Note that running DASDFMT occupies 1 channel path which may affect your IO performance.
  • Note that the dasdfmt utility can only format volumes containing a standard record zero on all tracks. If your disk does not fulfill this requirement (for example if you re-use an old volume, or access a brand new disk or one having an unknown history), you should additionally use a device support facility such as ICKDSF (in z/OS, OS/390, VM/ESA, VSE/ESA or stand-alone) before doing the dasdfmt for the low-level format.
  • The DASD device driver does not support Parallel Access Volumes (PAV), neither static nor dynamic.
  • The size of any swap device or file may not exceed 2GB. Similarly, the limit for the main memory that can be defined is slightly less than 2GB.


Back to top


Partition types (only for kernel 2.4.7)

On kernel configuration in the submenu "Filesystems", for "Partition Types" only select "IBM disk label and partition support". Other partition types may break your kernel.


Back to top


Partitioning DASD

There are some limitations to the current implementation and some precautions you should take in using it. These are:

  • You can only partition ECKD disks formatted with the new disk layout (dasdfmt option -d cdl ).
  • No more than three partitions can be created on any one physical volume. This restriction is a result of the scheme of allocating Linux major and minor numbers to the partitions. (Increasing the number of partitions per DASD would drastically reduce the number of DASD that could be mounted in a system).
  • You are advised to use fdasd to create or alter partitions as it checks for errors. If you use another partition editor it is your responsibility to ensure that partitions do not overlap. If they do, data corruption will occur.
  • To avoid wasting disk space you should leave no gaps between adjacent partitions. Gaps are not reported as errors, but a gap can only be reclaimed by deleting and recreating one or other of the surrounding partitions and rebuilding the file system on it.
  • A disk need not be partitioned completely. You may begin by creating only one or two partitions at the start of your disk and convert the remaining space to a partition later (perhaps when performance measurements have given you a better value for the blocksize).
  • There is no facility for moving, enlarging or reducing partitions as fdasd has no control over the file system on the partition. You only can delete and recreate them. If you change your partition table you will lose the data in all altered partitions. It is up to you to preserve the data by copying it to another medium.


Back to top


LCS

Emulated 3172-001 lcs devices on MP3000 do not autodetect correctly, it is advised that you force these devices using
lcs0,<read_devno>,<write_devno>,0,<port_no>
using the channel device layer.

Real 3172-001's may need a delay between detection and starting up the device. Otherwise, the device will not start up properly owing to a possible microcode problem.

Best workaround:
Load the lcs module a few seconds before the interface will be configured up, for example: remove the entry for the lcs module in /etc/modules.conf
append "insmod lcs" to the end of /etc/rc.sysinit

Alternate workaround:
Perform an ifconfig tr0 down and ifconfig tr0 up a few seconds after the lcs module was loaded.

Note: To use OSA devices when running Linux for zSeries on a basic mode machine (no LPARs) you may need to specify an ipldelay=xyz boot parameter. We recommend a value between 2m and 5m for xyz for the OSA card to initialize fully after IPL.

Back to top


Channel Device Configuration

The kernel can be configured both with and without the channel device layer. However, the qeth module only works in kernels built with the channel device layer switched on. CTC and LCS also work in kernels built without the channel device layer. For details on the configuration, please see the "Device Drivers and Installation" manual in the documentation section.


Back to top


Broadcast-ping problem (not relevant for z990)

If you do Broadcast-pings over HiperSockets, you may run into problems with the HiperSockets interface and see errors like

qdio : received check condition on activate queues on irq 0x152 (cs=x20, ds=x0)
in /var/log/messages.

This problem can be avoided with by installing MCL007:

Hardware Microcode Driver D3CG
IQDIO Microcode EC Number - E26949
MCL007


Back to top


OSA Express driver, QDIO base support, HiperSockets

  • Multicasting has to be switched on in the kernel.
  • The OSA Express Driver needs QDIO base support.
  • Starting with microcode level 0146, OSA-Express QDIO require a portname to be set in the device driver. This portname is specified using "add_parms,0x10,portname:FOOBAR" (more details in the chandev man page).
  • HiperSockets do not provide broadcast functionality.
    Not all levels of OSA-Express microcode support broadcast functionality; broadcast is available starting with level 3.0A. OSA-2 does support broadcasts.
  • For further information see documentation.
  • The MTU range is 576 - 61440. However, depending on the medium and networking hardware settings, it may be restricted to 1492, 1500, 8992 or 9000. For HiperSockets the MTU range extends to 57344. This may be restricted by the framesize announced by the microcode.
  • The maximum MTU size is limited by the value of the memory_usage_in_k parameter, which, together with the maximum frame (buffer) size, determines the number of buffers. The frame size for OSA-Express is fixed at 64 KB. For HiperSockets, the maximum frame size is defined during HiperSockets CHPID definition in the IOCDS. If the hardware configuration specifies the maximum frame size as 40 KB, the MTU can be configured up to 32 KB (frame size minus 8 KB) using ifconfig. Possible frame sizes are 16, 24, 40, and 64 KB. The total memory usage is
    (number of buffers) * (Linux memory usage per buffer)
    
    The Linux memory usage per buffer is 16 KB for frame size 16 KB, 32 KB for frame size 24 KB, and 64 KB for frame sizes 40 and 64 KB. Linux will calculate the number of buffers from the total memory usage given in the chandev statement (where the number of buffers is <=128 and >=16. If a parameter is too high, Linux will allocate 128 buffers of 64 KB each.
  • There is a restriction in Linux that the packet size of a multicast packet cannot be greater than the MTU size of the interface used.
  • There may be circumstances that prevent ifconfig(or other commands) from setting an IP address on an OSA-Express network feature. The most common one is that another system in the network has set that IP address already. As a result, the IP address will be indicated by ifconfig as being set on the interface, but the address is not actually set on the feature. Since the design of the network stack in Linux does not allow feedback about IP address changes, there is no means of notifying the user of the problem other than to log a message. This message (usually containing text such as "could not set IP address" or "duplicate IP address") will appear in the kernel messages (displayable using "dmesg"). For most distribution settings, this will also trigger a message in /var/log/messages. If you are not sure whether the IP address was set properly or experience a networking problem, you should always check these logs to see if an error was encountered when setting the address.
    This requirement applies to both IPv4 and IPv6 addresses, and to IP takeover, VIPA, HiperSockets, and Proxy ARP.
  • MAC addresses of VM Guest LAN devices will not be displayed correctly, until PTF UM30652 (only applies to z/VM 4.3.0) and the qeth module as of 2002-12-19 is installed.

Note: If you are using the linux-2.4.7-s390-n-timer.diff and have the CONFIG_NO_HZ_TIMER option switched on, you will have to use the qeth-2.4.7-s390-m-timer.o module instead of qeth-2.4.7-s390-m.o (same for qdio).
If you are using the linux-2.4.17-s390-n-timer.diff and have the CONFIG_NO_HZ_TIMER option switched on, you will have to use the qeth-2.4.17-s390-m-timer.o module instead of qeth-2.4.17-s390-m.o (same for qdio).


Back to top


Large MTU sizes may fail due to "order-N allocation failed" problem

When using MTU sizes >8K on a network interface, the Linux TCP/IP stack may run into problems on heavily loaded systems because allocating memory for packets may fail due to memory fragmentation. As a symptom of this problem you will see messages of the form "order-N allocation failed" in the system log; in addition, network connections will drop packets, in extreme cases to the extent that the network is no longer usable.

As a workaround, use MTU sizes at most of 8K (minus header size), even if the network hardware allows larger sizes (e.g. HiperSockets, gigabit ethernet).


Back to top


z90crypt

On systems with an installed PCIXCC card, z90crypt from the "August 2001 stream" or the "May 2002 stream" treats this card as a PCICC card: Using the card will produce wrong results and should be avoided.
You therefore must not define any PCIXCC card to a Linux system with such z90crypt.


Back to top


PFAULT on 64-bit: VM-fix needed

Note that z/VM has a bug that prevents the use of PFAULT for 64-bit, which is fixed with APAR:

  • UM30216 for z/VM 3.1
  • UM30219 for z/VM 4.1
  • UM30220 for z/VM 4.2
If you do not have the z/VM PTF applied, switch off pfault with the "nopfault" parameter.


Back to top


[an error occurred while processing this directive]
Document options

Document options requiring JavaScript are not displayed


Contact the IBM team
If you want to contact the Linux on zSeries IBM team refer to the Contact the Linux on zSeries IBM team page