Channel I/O, demystified

As promised, I will write some articles about one of the areas where s390x looks especially alien to people familiar with the usual suspects like x86: the native way of addressing I/O devices.1

Channel I/O is a rather large topic, so I will concentrate on explaining it from a Linux (guest) and from a qemu/KVM (virtualization) point of view. This also means that I will prefer terminology that will make sense to somebody familiar with Linux (on x86) rather than the one used by e.g. a z/OS system programmer.

Links to the individual articles:

Channel I/O: What’s in a channel subsystem?

Channel I/O: Talking to devices

Channel I/O: Types of devices

Channel I/O: More about channel paths

Channel Measurements: A Quick Overview

  1. There is PCI on s390x, but it is a recent addition and its idiosyncracies are better understood if you know how channel I/O works.