Big and Little Endian inside / out
|Project:||not specific to a project|
Endian bugs are a common source of problems, mostly on big endian architectures such as PowerPC, sparc or s390. Getting endian'ness right isn't always trivial and some programming tricks will work on one endianness and not another.
I will first show endian issues related to programs trying to access in memory data using the wrong size types. Then I will talk about the the problem of data "on the wire" (networking, storage, file
formats) along with tools such as sparse that can help getting it right, and will then dive into IO busses and peripheral such as PCI and graphics.
I will attempt to shed some light on the latter by describing what happens under the hood, the representation of data on typical processor bus and how it interconnects to a typical IO bus, where does swapping happens and when it needs to be handled in software.
Ben has been part of the powerpc Linux kernel team for many years and is currently the maintainer of arch/powerpc. He works for IBM ADL/Ozlabs.