Kernel Trace with Intel Processor Trace
Linux kernel is an open source, monolithic operating system widely used everywhere from smartwatches to supercomputers. Linux kernel dominates every segment of computing. Since it’s conception from 1991 from personal use to all purpose operating system, it has grown huge consisting of around 30 million lines of source code. Such a massive code naturally attracts bugs, vulnerabilities and maintenance. Trimming such huge softwares for specific application target has become important and interesting problem to solve recently. Linux is an open source operating system and is bloated with addition of features and drivers along with other large softwares. Only a few of these features and drivers are required when purpose is known apriori. If kernel can be trimmed with only required features, it can provide multiple advantages such as reduced risk due to reduced attack surface, efficient booting time, lower memory requirements which will be especially useful in embedded systems. In this paper, we are trying to address the critical part of trimming which is tracing the kernel code and finding the coverage. Various ways to get dynamic trace of the kernel have been tried and it turned out it is still possible to provide improved and concise coverage with Intel Processor trace which is Intel CPU hardware feature added to Intel CPUs in 2013. We perform kernel level tracing with Intel Processor Trace and evaluate on several applications to analyze the efficiency and coverage of the trace.
Major Advisor: Rakesh Bobba
Committee: Yeongjin Jang
Committee: Jesse Walker
Friday, March 15, 2019 at 12:00pm to 2:00pm
Kelley Engineering Center, 1005
110 SW Park Terrace, Corvallis, OR 97331