2021.03.13 - Chemnitzer Linux Tage 2021: An Introduction to the Linux Kernel Block I/O Stack

I got the chance again this year to hold a talk at the Chemnitzer Linux Tage (Chemnitzer Linux Days). Out of personal curiosity, and because I thought this topic would be interesting for other folks as well, I submitted a talk about the Linux Kernel Block I/O Stack.

A video recording of the session is also available: CLT 2021: Lecture 165

During my day job at IBM I am still maintainer of the zfcp device driver, which provides hardware support for IBM’s FICON Express, and FCP Express HBAs. To make a long explanation short, in Linux terms this is a SCSI Host. It provides the lowest part of the Linux Block I/O Stack for this particular hardware, which is responsible to program the hardware/firmware in a way, so it can serve whatever I/O requests have been generated above in the stack.

Because of how it is structured, and especially also thanks to the SCSI device stack, we don’t have to deal all that much with the higher layers of the stack. In my daily work that helps somewhat to focus on one area, and we don’t have to deal with all that much fallout from things that go wrong from time to time above us. In that way the abstraction helps us.

But it also separates us somewhat from the development that happens in the common Block I/O stack. And if you don’t actively spend time to understand what is happening there, and what development is going on, it is very easy to loose track.

I used the preparation for this talk as a opportunity to refresh my knowledge, and get back up-to-date. As as useful “side effect” it also generated a nice presentation, and hopefully a good talk. I really think the presentation turned out really well, and I hope it is useful to some more people than just myself ☺.

Presentation at the CLT2021

The presentation is gonna happen here: CLT Talk.

There is also gonna be a recording, which should be linked/hosted at the same location once its ready.

Slides Preview

../../_images/01.png

Slide 01

../../_images/02.png

Slide 02

../../_images/03.png

Slide 03

../../_images/04.png

Slide 04

../../_images/05.png

Slide 05

../../_images/06.png

Slide 06

../../_images/07.png

Slide 07

../../_images/08.png

Slide 08

../../_images/09.png

Slide 09

../../_images/10.png

Slide 10

../../_images/11.png

Slide 11

../../_images/12.png

Slide 12

../../_images/13.png

Slide 13

../../_images/14.png

Slide 14

../../_images/15.png

Slide 15

../../_images/16.png

Slide 16

../../_images/17.png

Slide 17

../../_images/18.png

Slide 18

../../_images/19.png

Slide 19

../../_images/20.png

Slide 20

../../_images/21.png

Slide 21

../../_images/22.png

Slide 22

../../_images/23.png

Slide 23

../../_images/24.png

Slide 24

../../_images/25.png

Slide 25

../../_images/26.png

Slide 26

../../_images/27.png

Slide 27

../../_images/28.png

Slide 28

../../_images/29.png

Slide 29

../../_images/30.png

Slide 30

../../_images/31.png

Slide 31

../../_images/32.png

Slide 32

../../_images/33.png

Slide 33

../../_images/34.png

Slide 34

../../_images/35.png

Slide 35

../../_images/36.png

Slide 36

../../_images/37.png

Slide 37

../../_images/38.png

Slide 38

../../_images/39.png

Slide 39

../../_images/40.png

Slide 40

../../_images/41.png

Slide 41

../../_images/42.png

Slide 42