There are a few flavors of real-time Linux out in the world. One of the most popular is the PREEMPT_RT kernel, which is slowly making its way into mainline Linux. In the past, I have given presentations describing what PREEMPT_RT does to Linux to make it real-time. But using PREEMPT_RT, you need to know a lot more than just the kernel. A real-time OS requires understanding everything from the hardware you use, the kernel, as well as the applications that sit on top. This talk will be a crash course into how to set up your environment using PREEMPT_RT Linux, explaining things like priorities for interrupts, how softirq's are done, using the priority inheritance mutexes, and other techniques required to avoid the gotcha's that real-time can get you with.
Support for page migration in IOMMU subsystem is presented. This is essential for usage of memory from Contiguous Memory Allocator by IOMMU enhanced hardware. Adding a support for migration requires extensions to DMA framework and fault handling to IOMMU domain API. Migration can be realized by using utilizing code for anonymous pages by introducing a fake mm_struct. Use migrate callback delivered by a new file system dedicated. Other method is introducing a new page type (besides file, anon, and kms). All kinds of mechanism are discussed in detail. Moreover, methods for handling from simultaneous faults from both IOMMU and CPU during migration are described.