Lessons Learned When Updating Userspace ABIs
summary
SMBus block limit changes from 32 to 255 bytes and exposes a userspace ABI problem where a fixed union and ioctl numbers are UAPI stable so old userland vs new kernel can truncate or fail. Work includes writing an emulated target test unit, auditing ~200 kernel uses, and tracing libi2c behavior. Proposal is new ioctl opt-in plus kernel-wide larger internal buffers (suggest 256 to catch buggy devices). Measured benefit includes a surprising 1.6 W saved in one laptop case but full upstream work is ongoing.
AI-written summary · about
chapters (8)
- 0:00Start
- 2:18Same for reading
- 11:50Another agreement between Kernel and userspace
- 13:00Handling the limit in bus drivers
- 18:49Proposal by Daniel Stodden, part 2
- 29:23Path forward
- 31:13Conclusion 3
- 33:20The End
related talks
22mAwesome API Design
23mBackward Compatibility by Default: Keeping API Consumer Trust Intact
47mAPI Design Principles
37mProtobuf and buf: glamour, misery, and import substitution
32mHow to successfully shift from app development to SDK development
19mVersioning strategy for a complex internal API
39mResilient REST APIs: The case for Parallel Change
26mKeeping up a Competitive Ceph/RadosGW S3 API
