DB4SIL2 - Kernel assurance data for SIL2LinuxMP
OpenTech Andreas Platschek <andreas.platschek@opentech.at> May 11, 2016
c Andreas Platschek (OpenTech) December 1, 2016 1 / 30
DB4SIL2 - Kernel assurance data for SIL2LinuxMP OpenTech Andreas - - PowerPoint PPT Presentation
DB4SIL2 - Kernel assurance data for SIL2LinuxMP OpenTech Andreas Platschek < andreas.platschek@opentech.at > May 11, 2016 Andreas Platschek (OpenTech) c December 1, 2016 1 / 30 Independence of Layers of LOPA Protection
c Andreas Platschek (OpenTech) December 1, 2016 1 / 30
Data Aquisition .cfg List of test- executables trace data timing data meta data NCC callgraph data Path Comparision Path Coverage Consecutive Path Analysis Independence
calls Inherent Diversity Analysis Inherent Diversity Data Other analysis tools used to extract di
✁ernt kind of datawill be added here over time. ftrace con
✂gtracing data testexec 1 testexec 2 testexec 3 testexec N ...... Independence
Protection Analysis LOPA Independence Data
c Andreas Platschek (OpenTech) December 1, 2016 2 / 30
voluntary, preemptive, PREEMPT RT 100HZ, 1000HZ
c Andreas Platschek (OpenTech) December 1, 2016 3 / 30
test that performed this syscall trace position of asynchronous events (interrupts, page faults, etc.)
c Andreas Platschek (OpenTech) December 1, 2016 4 / 30
Kernel functions Latencies (IRQs on/off, preemption, scheduling, etc.) Events (hundreds of static event points in the kernel) ... SYSCALLS
c Andreas Platschek (OpenTech) December 1, 2016 5 / 30
c Andreas Platschek (OpenTech) December 1, 2016 6 / 30
/home/andi/project/posixtestsuite/conformance/interfaces/sigdelset/1-4.test CALLSTART:1-4.tes-18753:156:SyS_mmap() CALLEND:1-4.tes-18753:342:1f65d059d567679f76dfdb4ae297b4f9 CALLSTART:1-4.tes-18753:1085:SyS_access() CALLEND:1-4.tes-18753:1154:0e8295ee790df45d12d93c9a82e038c3 CALLSTART:1-4.tes-18753:1155:SyS_open() ASYNCSTART:1407, smp_reschedule_interrupt() ASYNCEND:1409 CALLEND:1-4.tes-18753:1560:3bce71a2da4d26eac1d41a2448a83750 CALLSTART:1-4.tes-18753:1561:SyS_read() CALLEND:1-4.tes-18753:1600:474a8b4ed6cff638a4a47d7c93581991 CALLSTART:1-4.tes-18753:1652:SyS_mmap() CALLEND:1-4.tes-18753:1726:e4e8a3af87cd057615669ed8247de76d CALLSTART:1-4.tes-18753:1840:SyS_mmap() CALLEND:1-4.tes-18753:2044:e5140607342f88b02bd32e4fb4945992 CALLSTART:1-4.tes-18753:2212:SyS_mmap() CALLEND:1-4.tes-18753:2365:2c9b2d82941ad9df6ada92fe56572215 CALLSTART:1-4.tes-18753:3330:SyS_mmap() CALLEND:1-4.tes-18753:3387:26087860ce47d7beb5d05cdbfaece99a CALLSTART:1-4.tes-18753:3511:SyS_mmap() CALLEND:1-4.tes-18753:3568:26087860ce47d7beb5d05cdbfaece99a CALLSTART:1-4.tes-18753:3691:SyS_mmap()
c Andreas Platschek (OpenTech) December 1, 2016 7 / 30
SyS_lseek() __fdget_pos() __fget_light() btrfs_file_llseek [btrfs]() _mutex_lock() rt_mutex_lock() generic_file_llseek() generic_file_llseek_size() migrate_disable() preempt_count_add() pin_current_cpu() preempt_count_sub() rt_spin_lock() rt_spin_unlock() migrate_enable() preempt_count_add() unpin_current_cpu() preempt_count_sub() _mutex_unlock() rt_mutex_unlock()
c Andreas Platschek (OpenTech) December 1, 2016 8 / 30
/home/andi/project/posixtestsuite/conformance/interfaces/shm_open/26-2.test ASYNCSTART:587, __do_page_fault() ASYNCEND:664
c Andreas Platschek (OpenTech) December 1, 2016 9 / 30
DB4SIL2 List of functions called by every function during tests. Static Code Analysis List of functions that may be called by every function. Comparison T est coverage based on calls between functions. c Andreas Platschek (OpenTech) December 1, 2016 10 / 30
c Andreas Platschek (OpenTech) December 1, 2016 12 / 30
c Andreas Platschek (OpenTech) December 1, 2016 13 / 30
c Andreas Platschek (OpenTech) December 1, 2016 14 / 30
c Andreas Platschek (OpenTech) December 1, 2016 15 / 30
c Andreas Platschek (OpenTech) December 1, 2016 16 / 30
CPU 0
RAMbank 0..n
CPU 1
RAMbank n+1..m
CPU 2
RAMbank m+1..i
CPU 3
RAMbank i+1..j
glibc busybox
Monitoring
glibc 32bit seccomp
Safety app. 32bit FP
glibc 64bit seccomp
Safety app. 64bit INT
SIL 0 Debian Container
SIL 2 SIL 2 SIL2LinuxMP base system
c Andreas Platschek (OpenTech) December 1, 2016 17 / 30
c Andreas Platschek (OpenTech) December 1, 2016 18 / 30
c Andreas Platschek (OpenTech) December 1, 2016 18 / 30
c Andreas Platschek (OpenTech) December 1, 2016 19 / 30
Basecon
✁g (BASE)Basecon
✁g+Seccomp (SEC)c Andreas Platschek (OpenTech) December 1, 2016 20 / 30
Basecon
✁g (BASE)Basecon
✁g+Seccomp (SEC)Basecon
✁g+CGROUPS (CGR)(SEC ✂ CGR) \ BASE = ∅
c Andreas Platschek (OpenTech) December 1, 2016 21 / 30
Basecon
✁gc Andreas Platschek (OpenTech) December 1, 2016 22 / 30
f3 RCU atomic new_funcs_base_both funcs_base_both
c Andreas Platschek (OpenTech) December 1, 2016 23 / 30
c Andreas Platschek (OpenTech) December 1, 2016 24 / 30
c Andreas Platschek (OpenTech) December 1, 2016 25 / 30
1079 Paul Menage 11 Mike Galbraith 2 Diego Calleja 505 Aristeu Rozanski 10 Hugh Dickins 2 Aneesh Kumar K.V 361 Li Zefan 10 Gao feng 2 Andrew Morton 258 Serge E. Hallyn 9 Greg Kroah-Hartman 2 Alexey Perevalov 211 Ben Blum 8 Gui Jianfeng 2 Alexey Dobriyan 203 Daniel Borkmann 7 Michael S. Tsirkin 1 stephen hemminger 178 KAMEZAWA Hiroyuki 7 Jiri Slaby 1 WANG Cong 149 Neil Horman 7 Jens Axboe 1 SeongJae Park 119 Vivek Goyal 7 Eric W. Biederman 1 Sasha Levin 116 Balbir Singh 7 Daniel Wagner 1 Paul Gortmaker 106 Matt Helsley 6 Lai Jiangshan 1 Paul E. McKenney 59 Zefan Li 6 Jianyu Zhan 1 Oleg Nesterov 54 Daniel Lezcano 5 Srivatsa Vaddagiri 1 Lucas De Marchi 38 Mandeep Singh Baines 5 Jun’ichi Nomura 1 Jiri Pirko 36 Johannes Weiner 5 Alban Crequy 1 Jesper Juhl 33 Herbert Xu 4 Thadeu Lima de Souza Cascardo 1 H Hartley Sweeten 27 Al Viro 4 Kirill A. Shutemov 1 Fabian Frederick 21 Bob Liu 4 Anjana V Kumar 1 Eric Dumazet 19 Peter Zijlstra 3 Thomas Graf 1 Bart Van Assche 19 Daisuke Nishimura 3 Frederic Weisbecker 1 Bandan Das 17 Joe Perches 3 David Howells 1 Arun Sharma 17 Divyesh Shah 3 Dan Carpenter 1 Adrian Bunk 16 Pavel Emelyanov 2 eparis@redhat 14 Namhyung Kim 2 Wanpeng Li 13 John Fastabend 2 Stephen Rothwell 13 Cliff Wickman 2 Sridhar Samudrala 12 Stephane Eranian 2 Linus Torvalds 12 Jerry Snitselaar 2 Jaswinder Singh Rajput 11 Vladimir Davydov 2 Dongsheng Yang c Andreas Platschek (OpenTech) December 1, 2016 26 / 30
c Andreas Platschek (OpenTech) December 1, 2016 27 / 30
c Andreas Platschek (OpenTech) December 1, 2016 28 / 30
c Andreas Platschek (OpenTech) December 1, 2016 29 / 30
c Andreas Platschek (OpenTech) December 1, 2016 30 / 30