Speaker
Description
This talk will introduce task local data, an abstract storage type built on top of task local storage map for sharing thread-specific data between user space and BPF programs. A motivational use case is allowing user space programs to pass hints to sched_ext scheduler for better scheduling decisions.
Task local storage map supports a special field, UPTR, to allow sharing user memory with BPF programs efficiently. However, using this feature directly present challenges, especially when multiple user space and BPF programs are involved. For example, how to manage the layout of the storage without tightly coupling these components? How to manage the lifecycle of the memory? Task local data was developed to address these challenges. In this talk, I will discuss its design and share some use cases demonstrating the benefits.