Ftrace - What s new. Since my last explanation of ftrace (from v3.18) Steven Rostedt 25/10/ VMware Inc. All rights reserved.

Size: px
Start display at page:

Download "Ftrace - What s new. Since my last explanation of ftrace (from v3.18) Steven Rostedt 25/10/ VMware Inc. All rights reserved."

Transcription

1 Ftrace - What s new Since my last explanation of ftrace (from v3.18) Steven Rostedt 25/10/ VMware Inc. All rights reserved.

2 What ftrace did (and still does) Function tracing Function graph tracing Snapshots tracing events (sched_switch, timers, interrupts, block, etc) triggers stack trace trace off / (and on) snapshot Latency tracing (interrupts, wakeup) Debugging trace_printk() ftrace_dump_on_oops

3 Function tracing Can filter on specific functions (set_ftrace_filter) Can remove function from being traced (set_ftrace_notrace) Can trace just a specific PID (set_ftrace_pid) Can trace children of those PIDS (options/function-fork) Can set triggers on a specific function stack trace snapshot trace off (and on) Enable/disable an event Can profile functions (see hit counts) Trace stack usage (biggest stack hog)

4 Function Graph Tracer Same filtering as function tracing Can graph a function (see only what a function calls) My disable tracing of interrupts (only care what the function calls) Can set a max depth Only trace the first instance (see where the kernel gets called) syscalls page faults Can see the time a function takes Singe functions Can profile on the times functions are executing

5 Snapshot Take a snapshot of the current live trace Can be done by user space (snapshot) Has instructions: cat snapshot # Snapshot commands: # echo 0 > snapshot : Clears and frees snapshot buffer # echo 1 > snapshot : Allocates snapshot buffer, if not already allocated. # Takes a snapshot of the main buffer. # echo 2 > snapshot : Clears snapshot buffer (but does not allocate or free) # (Doesn't have to be '2' works with any number that # is not a '0' or '1') Swaps the main buffer with the snapshot buffer

6 Trace Events Thousands of events exist today scheduling Interrupts Timers Hypervisors signals block paging

7 Triggers Types snapshot tracing off (and on) stacktrace enable/disable events Filtering <trigger> if <cond> condition on field, CPU, PID, comm etc if common_pid == $$

8 Latency Tracing Interrupts and/or preemption off times Gives the max time irqs and/or preemption was disabled Wake up tracer Traces max time of wakeup to scheduling in wakeup - traces the latency of all tasks (trying to get the highest priority task) wakeup_rt - only traces RT tasks (trying to get the highest priority task) wakeup_dl - only traces DEADLINE tasks Both are static tracers not much room for customization hard to look at just a single process

9 Debugging trace_printk() Like printk() but has no limits for context (NMI, irq, scheduler, etc) (well, it can t debug the tracing ring buffer) Optimized to be very fast ftrace_dump_on_oops dumps to the console on panic save the serial output make the buffers smaller, or you may be waiting for a long time

10 Added in 4.0 (What I tell people why Linux changed its main version from 3 to 4) Dynamic trampolines to ftrace function hooks Optimization Two tracers could trace two different functions and still have direct callback trampolines You can see how they are in enabled_functions # cd /sys/kernel/debug/tracing # echo schedule do_irq > set_ftrace_filter # echo function > current_tracer # cat enabled_functions schedule (1) do_irq (1) tramp: 0xffffffffc >function_trace_call+0x0/0x1b0 tramp: 0xffffffffc >function_trace_call+0x0/0x1b0 # mkdir instances/foo # echo schedule do_fork > instances/foo/set_ftrace_filter # echo function > instances/foo/current_tracer # cat enabled_functions do_fork (1) schedule (2) do_irq (1) ->ftrace_ops_list_func+0x0/0x1b0 ->ftrace_ops_list_func+0x0/0x1b0 tramp: 0xffffffffc >function_trace_call+0x0/0x1b0

11 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

12 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

13 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

14 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

15 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

16 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

17 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

18 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

19 Added in 4.0 NOT in filter logic Filters could only test for true cases Could not test for false cases Say you wanted all kmalloc events except for GFP_ZERO (0x8000) echo!(gfp_flags & 0x8000) > events/kmem/kmalloc/filter Can also handle clauses echo!(common_pid == 1234 && vector == 259) > events/irq_vectors/filter yes this is the same as (common_pid!= 1234) (vector!= 259) but still /* If not of not match is equal to not of not, then it is a match */ return!!match ==!op->not;

20 Added in 4.0 tp_printk kernel command line option USE AT YOUR OWN RISK! Used with trace_event command to enable specific events Sends all events to printk! Great if you machine locks up / crashes / reboots early in boot Should disable after boot is complete echo 0 > /proc/sys/kernel/tracepoint_printk This proc file has no effect without the kernel command line option set

21 Adding in 4.1 The new tracefs file system Now in /sys/kernel/tracing mount -t tracefs /sys/kernel/tracing tracefs automatically mounted in debugfs tracing directory (for backward compatibility) No longer requires debugfs compiled in

22 Added in 4.4 (since 4.1) mono_raw clock echo mono_raw > trace_clock Not affected by NTP Compare consistent use of CPU cycles Can be safely called from NMI Can be used at early boot up trace_clock=mono_raw on kernel command line tracing_thresh affects function profile (with function graph) echo 0 > options/sleep_time echo 100 > tracing_thresh echo 1 > function_profile_enabled

23 tracing_thresh on function_profile_enabled # echo 0 > options/sleep_time # echo 1000 > tracing_thresh # echo 1 > ftrace_tracing_enabled # cat trace_stat/function0 Function Hit Time Avg s^ schedule us us us default_idle_call us us us arch_cpu_idle us us us default_idle us us us SyS_read us us us vfs_read us us us vfs_read us us us tty_read us us us n_tty_read us us us wait_woken us us us schedule_timeout us us us SyS_select us us us core_sys_select us us us do_select us us us poll_schedule_timeout us us us schedule_hrtimeout_range us us us schedule_hrtimeout_range_clock us us us

24 Added in 4.4 (since 4.1) Tracepoint sched_waking Trace when a task gets set to running Not when it actually gets woken up logic changed such that a task can be woken up later than the waker executed the wake up CPU and COMM can be used to filter triggers # echo 'stacktrace if cpu == 1' > \ /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/trigger # echo 'stacktrace if comm == sshd' > \ /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/trigger

25 Added in 4.4 (since 4.1) Show all options in options/ directory Use to only show tracer options if tracer is active func_stack_trace very dangerous option to leave on 4.1 options # ls options/ annotate ftrace_preempt markers sleep-time userstacktrace bin function-trace overwrite stacktrace verbose block graph-time printk-msg-only sym-addr branch hex print-parent sym-offset context-info irq-info raw sym-userobj disable_on_free latency-format record-cmd trace_printk 4.4 options # ls options/ annotate funcgraph-irqs latency-format sym-offset bin funcgraph-overhead markers sym-userobj blk_classic funcgraph-overrun overwrite test_nop_accept block funcgraph-proc printk-msg-only test_nop_refuse context-info funcgraph-tail print-parent trace_printk disable_on_free func_stack_trace raw userstacktrace display-graph function-trace record-cmd verbose funcgraph-abstime graph-time sleep-time funcgraph-cpu hex stacktrace funcgraph-duration irq-info sym-addr

26 Added in 4.4 (since 4.1) Globing for module function trigger filter # echo '*alloc*:mod:*' > set_ftrace_filter # echo '!*alloc*:mod:ipv6' >> set_ftrace_filter # echo '*alloc*:mod:!ipv6' > set_ftrace_filter # echo '*alloc*:mod:!*' > set_ftrace_filter # echo '*:mod:!*' > set_ftrace_filter # echo ':mod:!*' > set_ftrace_filter or # echo '*:mod:*' > set_ftrace_filter # echo ':mod:' > set_ftrace_filter or # echo '*:mod:*snd*' > set_ftrace_filter

27 Added in 4.4 (since 4.1) set_event_pid Similar to set_ftrace_pid but for events echo a number into here, and only events with a PID of that number will be traced Use to have to add filters if common_pid==123 common_pid==234 common_pid==3432 That is very limited Add as many pids to set_event_pid as you would like

28 Added in 4.9 (since 4.4) event_fork option Allows processes in set_event_pid to add children when forking # echo $$ > set_event_pid # echo 1 > options/event-fork # cat set_event_pid # cat set_event_pid # cat set_event_pid

29 Added in 4.9 (since 4.4) Introduction of histogram trigger # echo 'hist:keys=common_pid,bytes_req:values=bytes_alloc:sort=bytes_req,common_pid' \ > events/kmem/kmalloc_node/trigger # cat events/kmem/kmalloc_node/hist # event histogram # # trigger info: hist:keys=common_pid,bytes_req:vals=hitcount,bytes_alloc:sort=bytes_req,common_pid:size=2048 [active] # { common_pid: 803, bytes_req: 8 } hitcount: 7 bytes_alloc: 56 { common_pid: 803, bytes_req: 32 } hitcount: 1 bytes_alloc: 32 { common_pid: 998, bytes_req: 32 } hitcount: 1 bytes_alloc: 32 { common_pid: 803, bytes_req: 64 } hitcount: 1 bytes_alloc: 64 { common_pid: 998, bytes_req: 64 } hitcount: 1 bytes_alloc: 64 { common_pid: 803, bytes_req: 96 } hitcount: 1 bytes_alloc: 96 { common_pid: 998, bytes_req: 96 } hitcount: 1 bytes_alloc: 96 { common_pid: 797, bytes_req: 2048 } hitcount: 6 bytes_alloc: Totals: Hits: 19 Entries: 8 Dropped: 0

30 Added in 4.14 (since 4.9) Full glob matching for filters Old way (4.9 and earlier) only allowed: Straight match: echo schedule > set_ftrace_filter Prefixed match: echo sched* > set_ftace_filter Postfix match: echo *lock > set_ftrace_filter Contains match: echo *sched* > set_ftrace_filter New way is much more flexible Allows inserted wild cards within matches Allows sets of characters with [ and ] Allows single character?

31 Added in 4.14 (since 4.9) # echo sched*group > set_ftrace_filter # cat set_ftrace_filter sched_free_group sched_change_group sched_create_group sched_online_group sched_destroy_group sched_offline_group # echo?malloc > set_ftrace_filter # cat set_ftrace_filter vmalloc kmalloc # echo [Ss]y[Ss]_* > set_ftrace_filter # cat set_ftrace_filter head SyS_arch_prctl sys_rt_sigreturn sys_ioperm SyS_iopl sys_modify_ldt SyS_mmap SyS_set_thread_area SyS_get_thread_area SyS_set_tid_address sys_fork

32 Added in 4.14 (since 4.9) trace_marker_raw Userspace can write raw data into trace_marker_raw (structs, etc) Reader must handle endianess and word size A bit faster than trace_marker boot clock like monotonic clock Keeps track of time across suspend and resume Allow comm filter to act as string # echo 'COMM ~ "systemd*"' > events/syscalls/filter

33 Added in 4.14 (since 4.9) Hardware Latency Detector Detects SMIs or other hardware related instances Runs loops under interrupt disable (looks for NMIs) # cat hwlat_detector/width # cat hwlat_detector/window # cat tracing_thresh 10 # echo hwlat > current_tracer # cat trace # tracer: hwlat # # _-----=> irqs-off # / _----=> need-resched # / _---=> hardirq/softirq # / _--=> preempt-depth # / delay # TASK-PID CPU# TIMESTAMP FUNCTION # <...>-970 [001] d : #1 inner/outer(us): 94/1015 ts: <...>-970 [002] d : #2 inner/outer(us): 486/60 ts: <...>-970 [003] d : #3 inner/outer(us): 125/737 ts: <...>-970 [000] d : #4 inner/outer(us): 121/3144 ts:

34 Added in 4.14 (since 4.9) function_fork Same as event_fork When set, tasks with PIDs in set_ftrace_pid will have children added when they fork Tracing of init functions Functions tagged with init were not traced Remember the e1000e bricking bug? Enable function tracing at boot, init functions will be traced Filter module functions before module is loaded echo :mod:kvm > set_ftrace_filter # echo ':mod:snd_hda_intel' > set_ftrace_filter # cat set_ftrace_filter :mod:snd_hda_intel # modprobe snd_hda_intel # cat set_ftrace_filter azx_intel_link_power [snd_hda_intel] azx_clear_irq_pending [snd_hda_intel] azx_via_get_position [snd_hda_intel] azx_runtime_idle [snd_hda_intel] azx_dev_disconnect [snd_hda_intel] pci_azx_writel [snd_hda_intel] pci_azx_readl [snd_hda_intel] [...]

35 What s coming More advanced histograms Full customization Pick specific fields to compare Trace only specific tasks Can do stack dumps Can display specific processes Synthetic events Can store custom fields based on other event historgrams Can also produce trace events and histograms Variables Store date by one event Read it from another event

36 What s coming irq / preempt disable events Tracing when irqs and / or preemption is disabled Tracing when irqs and / or preemption is enabled Will allow for the histograms to work at the irq / preempt level Gives all the features of trace events to these locations Module Init tracing Enabling tracing of module events before a module is loaded Already there for module init functions (v4.14) Passing in trace events to enabled when the module is loaded Seeing what trace events exist in a module via modinfo Better interleaved tracing between hosts and guests

37 Wish list Zero overhead of irq / preempt enable/disable events Zero overhead when trancing is disabled (obviously not when it s enabled) There s got to be a way to do this Use of jump_label infrastructure Requires jump_label functionality in assembly Zero overhead for lock events Currently requires lockdep Perhaps can also use jump labels Would be able to create lock histograms (longest held, etc) Have more interaction with ebpf and ftrace

38 Wish list Add tracing of function parameters Use dwarf, or some other mechanism Function graph to report return code of functions Function graph rewrite (it needs some loving) Filtering of functions via sections, files, groups Use linker magic to add mappings between functions and with what they belong to Already exists for modules, but the interface can be better Needs to not bloat the kernel (make it a loadable module option, like config.gz)

39 Wish list Converting trace.dat (from trace-cmd) to CTF May have someone to work on that soon UUENCODED ftrace_dump_on_opps to make trace.dat file from when kexec/kdump doesn t work Make perf ring buffer generic that ftrace tools can use it too ftrace ring buffer optimized for splice() not mmap trace-event and trace-cmd libraries

40 Thank You Steven Rostedt

Adding Inter-event Capabilities to the Linux Trace Event Subsystem

Adding Inter-event Capabilities to the Linux Trace Event Subsystem Adding Inter-event Capabilities to the Linux Trace Event Subsystem Tom Zanussi Intel Open Source Technology Center Safety Critical Systems ELC 2017, Feb 22 1 Trace Events Background Latency Example Design

More information

Ftrace Kernel Hooks: More than just tracing. Presenter: Steven Rostedt Red Hat

Ftrace Kernel Hooks: More than just tracing. Presenter: Steven Rostedt Red Hat Ftrace Kernel Hooks: More than just tracing Presenter: Steven Rostedt rostedt@goodmis.org Red Hat Ftrace Function Hooks Function Tracer Function Graph Tracer Function Profiler Stack Tracer Kprobes Uprobes

More information

Measuring and Summarizing Latencies Using Trace Events. Tom Zanussi, Intel Open Source Technology Center, ELC 2018

Measuring and Summarizing Latencies Using Trace Events. Tom Zanussi, Intel Open Source Technology Center, ELC 2018 Measuring and Summarizing Latencies Using Trace Events Tom Zanussi, Intel Open Source Technology Center, ELC 2018 Trace Events Background Latency Calculations and Handlers and Actions Latency Histograms

More information

Ftrace Profiling. Presenter: Steven Rostedt Red Hat

Ftrace Profiling. Presenter: Steven Rostedt Red Hat Ftrace Profiling Presenter: Steven Rostedt rostedt@goodmis.org Red Hat What do you want to profile? Application Cache misses Memory locality Page faults Finding bad algorithms O(n^2) CPU cycles I/O usage

More information

Debugging realtime application with Ftrace

Debugging realtime application with Ftrace Debugging realtime application with Ftrace Pierre Ficheux (pierre.ficheux@smile.fr) 02/2018 1 Disclaimer Poor English speaker! But good French speaker and writer :-) Loin du français je meurs (Louis-Ferdinand

More information

Efficient and Large Scale Program Flow Tracing in Linux. Alexander Shishkin, Intel

Efficient and Large Scale Program Flow Tracing in Linux. Alexander Shishkin, Intel Efficient and Large Scale Program Flow Tracing in Linux Alexander Shishkin, Intel 16.09.2013 Overview Program flow tracing - What is it? - What is it good for? Intel Processor Trace - Features / capabilities

More information

RAS Enhancement Activities for Mission-Critical Linux Systems

RAS Enhancement Activities for Mission-Critical Linux Systems RAS Enhancement Activities for MissionCritical Linux Systems Hitachi Ltd. Yoshihiro YUNOMAE 01 MissionCritical Systems We apply Linux to missioncritical systems. Banking systems/carrier backend systems/train

More information

Operating System System Call & Debugging Technique

Operating System System Call & Debugging Technique 1 Operating System System Call & Debugging Technique 진주영 jjysienna@gmail.com System Call 2 A way for user-space programs to interact with the kernel System Call enables application programs in user-mode

More information

Using and Understanding the Real-Time Cyclictest Benchmark

Using and Understanding the Real-Time Cyclictest Benchmark Using and Understanding the Real-Time Cyclictest Benchmark Cyclictest results are the most frequently cited real-time Linux metric. The core concept of Cyclictest is very simple. However the test options

More information

LinuxCon 2010 Tracing Mini-Summit

LinuxCon 2010 Tracing Mini-Summit LinuxCon 2010 Tracing Mini-Summit A new unified Lockless Ring Buffer library for efficient kernel tracing Presentation at: http://www.efficios.com/linuxcon2010-tracingsummit E-mail: mathieu.desnoyers@efficios.com

More information

System Wide Tracing User Need

System Wide Tracing User Need System Wide Tracing User Need dominique toupin ericsson com April 2010 About me Developer Tool Manager at Ericsson, helping Ericsson sites to develop better software efficiently Background

More information

e-ale-rt-apps Building Real-Time Applications for Linux Version c CC-BY SA4

e-ale-rt-apps Building Real-Time Applications for Linux Version c CC-BY SA4 e-ale-rt-apps Building Real-Time Applications for Linux Version 20181023 ii The E-ALE (Embedded Apprentice Linux Engineer) is a series of seminars held at existing conferences covering topics which are

More information

Debugging Kernel without Debugger

Debugging Kernel without Debugger Debugging Kernel without Debugger Masami Hiramatsu Software Platform Research Dept. Yokohama Research Lab. Hitachi Ltd., 1 Who am I? Masami Hiramatsu Researcher in Hitachi

More information

Hardware Latencies How to flush them out (A use case) Steven Rostedt Red Hat

Hardware Latencies How to flush them out (A use case) Steven Rostedt Red Hat Hardware Latencies How to flush them out (A use case) Steven Rostedt Red Hat Here s a story, of a lovely lady... No this isn t the Brady Bunch Nor is it about a lovely lady But it probably could have been

More information

Operating Systems 2014 Assignment 2: Process Scheduling

Operating Systems 2014 Assignment 2: Process Scheduling Operating Systems 2014 Assignment 2: Process Scheduling Deadline: April 6, 2014, at 23:59. 1 Introduction Process scheduling is an important part of the operating system and has influence on the achieved

More information

Improving Linux development with better tools

Improving Linux development with better tools Improving Linux development with better tools Andi Kleen Oct 2013 Intel Corporation ak@linux.intel.com Linux complexity growing Source lines in Linux kernel All source code 16.5 16 15.5 M-LOC 15 14.5 14

More information

Measuring the impacts of the Preempt-RT patch

Measuring the impacts of the Preempt-RT patch Measuring the impacts of the Preempt-RT patch maxime.chevallier@smile.fr October 25, 2017 RT Linux projects Simulation platform : bi-xeon, lots ot RAM 200µs wakeup latency, networking Test bench : Intel

More information

Introducing Cache Pseudo-Locking to reduce memory access latency. Reinette Chatre

Introducing Cache Pseudo-Locking to reduce memory access latency. Reinette Chatre Introducing Cache Pseudo-Locking to reduce memory access latency Reinette Chatre About me Software Engineer at Intel (~12 years) Open Source Technology Center (OTC) Currently Enabling Cache Pseudo-Locking

More information

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017 ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 The Operating System (OS) Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke)

More information

Understanding Real Time Linux. Alex Shi

Understanding Real Time Linux. Alex Shi Understanding Real Time Linux Alex Shi Agenda What s real time OS RTL project status RT testing and tracing Reasons of latency and solutions for them Resources Summary What s real time OS Real time and

More information

Improving Linux Development with better tools. Andi Kleen. Oct 2013 Intel Corporation

Improving Linux Development with better tools. Andi Kleen. Oct 2013 Intel Corporation Improving Linux Development with better tools Andi Kleen Oct 2013 Intel Corporation ak@linux.intel.com Linux complexity growing Source lines in Linux kernel All source code 16.5 16 15.5 M-LOC 15 14.5 14

More information

Tracing Lustre. New approach to debugging. ORNL is managed by UT-Battelle for the US Department of Energy

Tracing Lustre. New approach to debugging. ORNL is managed by UT-Battelle for the US Department of Energy Tracing Lustre New approach to debugging ORNL is managed by UT-Battelle for the US Department of Energy Current Lustre debugging tools Utility lctl handles profiling developed long before standard kernel

More information

CSCE Operating Systems Interrupts, Exceptions, and Signals. Qiang Zeng, Ph.D. Fall 2018

CSCE Operating Systems Interrupts, Exceptions, and Signals. Qiang Zeng, Ph.D. Fall 2018 CSCE 311 - Operating Systems Interrupts, Exceptions, and Signals Qiang Zeng, Ph.D. Fall 2018 Previous Class Process state transition Ready, blocked, running Call Stack Execution Context Process switch

More information

Adventures In Real-Time Performance Tuning, Part 2

Adventures In Real-Time Performance Tuning, Part 2 Adventures In Real-Time Performance Tuning, Part 2 The real-time for Linux patchset does not guarantee adequate real-time behavior for all target platforms. When using real-time Linux on a new platform

More information

The Ephemeral Smoking Gun

The Ephemeral Smoking Gun The Ephemeral Smoking Gun Using ftrace and kgdb to resolve a pthread deadlock LabVIEW Real-Time National Instruments The Setup Customer application crashed after a few hours The clincher: new issue from

More information

No Crash Dump? No Problem! Light-weight remote kernel crash reporting for settop boxes

No Crash Dump? No Problem! Light-weight remote kernel crash reporting for settop boxes No Crash Dump? No Problem! Light-weight remote kernel crash reporting for settop boxes David VomLehn, Technical Leader CELF 2010 Imagine It's the last five minutes of the Superbowl... The game is tied...

More information

How Linux RT_PREEMPT Works

How Linux RT_PREEMPT Works How Linux RT_PREEMPT Works A common observation about real time systems is that the cost of the increased determinism of real time is decreased throughput and increased average latency. This presentation

More information

CS 326: Operating Systems. Process Execution. Lecture 5

CS 326: Operating Systems. Process Execution. Lecture 5 CS 326: Operating Systems Process Execution Lecture 5 Today s Schedule Process Creation Threads Limited Direct Execution Basic Scheduling 2/5/18 CS 326: Operating Systems 2 Today s Schedule Process Creation

More information

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017 CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Outline o Process concept o Process creation o Process states and scheduling o Preemption and context switch o Inter-process communication

More information

(MCQZ-CS604 Operating Systems)

(MCQZ-CS604 Operating Systems) command to resume the execution of a suspended job in the foreground fg (Page 68) bg jobs kill commands in Linux is used to copy file is cp (Page 30) mv mkdir The process id returned to the child process

More information

CSC369 Lecture 2. Larry Zhang

CSC369 Lecture 2. Larry Zhang CSC369 Lecture 2 Larry Zhang 1 Announcements Lecture slides Midterm timing issue Assignment 1 will be out soon! Start early, and ask questions. We will have bonus for groups that finish early. 2 Assignment

More information

Enhancement Activities on the Current Upstream Kernel for Mission-Critical Systems

Enhancement Activities on the Current Upstream Kernel for Mission-Critical Systems Enhancement Activities on the Current Upstream Kernel for MissionCritical Systems Hitachi Ltd. Yoshihiro YUNOMAE 01 MissionCritical Systems We apply Linux to missioncritical systems. Banking systems/carrier

More information

Microkernel Construction

Microkernel Construction Real-Time Scheduling Preemptive Priority-Based Scheduling User assigns each thread a set of scheduling attributes (time quantum, priority) When the current thread s time quantum is exhausted, the kernel

More information

The State of Kernel Debugging Technology. Jason Wessel - Product Architect for WR Linux Core Runtime - Kernel.org KDB/KGDB Maintainer

The State of Kernel Debugging Technology. Jason Wessel - Product Architect for WR Linux Core Runtime - Kernel.org KDB/KGDB Maintainer The State of Kernel Debugging Technology Jason Wessel - Product Architect for WR Linux Core Runtime - Kernel.org KDB/KGDB Maintainer August 12 th, 2010 Agenda Brief history of kernel.org kernel debuggers

More information

CSC369 Lecture 2. Larry Zhang, September 21, 2015

CSC369 Lecture 2. Larry Zhang, September 21, 2015 CSC369 Lecture 2 Larry Zhang, September 21, 2015 1 Volunteer note-taker needed by accessibility service see announcement on Piazza for details 2 Change to office hour to resolve conflict with CSC373 lecture

More information

Path analysis vs. empirical determination of a system's real-time capabilities: The crucial role of latency tests

Path analysis vs. empirical determination of a system's real-time capabilities: The crucial role of latency tests Path analysis vs. empirical determination of a system's real-time capabilities: The crucial role of latency tests Carsten Emde Open Source Automation Development Lab (OSADL) eg Issues leading to system

More information

ELC The future of Tracing and Profiling for Power Management and Accelerators. Making Wireless. Jean Pihet v1.

ELC The future of Tracing and Profiling for Power Management and Accelerators. Making Wireless. Jean Pihet v1. ELC 2011 The future of Tracing and Profiling for Power Management and Accelerators Jean Pihet v1.0 Introduction Background Work on ARMv7 support for oprofile/perf/ftrace Work on OMAP PM:

More information

Announcement. Exercise #2 will be out today. Due date is next Monday

Announcement. Exercise #2 will be out today. Due date is next Monday Announcement Exercise #2 will be out today Due date is next Monday Major OS Developments 2 Evolution of Operating Systems Generations include: Serial Processing Simple Batch Systems Multiprogrammed Batch

More information

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel Alexander Züpke, Marc Bommert, Daniel Lohmann alexander.zuepke@hs-rm.de, marc.bommert@hs-rm.de, lohmann@cs.fau.de Motivation Automotive and Avionic industry

More information

Process. Heechul Yun. Disclaimer: some slides are adopted from the book authors slides with permission

Process. Heechul Yun. Disclaimer: some slides are adopted from the book authors slides with permission Process Heechul Yun Disclaimer: some slides are adopted from the book authors slides with permission 1 Recap OS services Resource (CPU, memory) allocation, filesystem, communication, protection, security,

More information

Process. Heechul Yun. Disclaimer: some slides are adopted from the book authors slides with permission 1

Process. Heechul Yun. Disclaimer: some slides are adopted from the book authors slides with permission 1 Process Heechul Yun Disclaimer: some slides are adopted from the book authors slides with permission 1 Recap OS services Resource (CPU, memory) allocation, filesystem, communication, protection, security,

More information

Introduction p. 1 Why Linux? p. 2 Embedded Linux Today p. 3 Open Source and the GPL p. 3 Free Versus Freedom p. 4 Standards and Relevant Bodies p.

Introduction p. 1 Why Linux? p. 2 Embedded Linux Today p. 3 Open Source and the GPL p. 3 Free Versus Freedom p. 4 Standards and Relevant Bodies p. Foreword p. xix Preface p. xxi Acknowledgments p. xxvii About the Author p. xxix Introduction p. 1 Why Linux? p. 2 Embedded Linux Today p. 3 Open Source and the GPL p. 3 Free Versus Freedom p. 4 Standards

More information

Templates what and why? Beware copying classes! Templates. A simple example:

Templates what and why? Beware copying classes! Templates. A simple example: Beware copying classes! Templates what and why? class A { private: int data1,data2[5]; float fdata; public: // methods etc. } A a1,a2; //some work initializes a1... a2=a1; //will copy all data of a2 into

More information

Android Debugging and Performance Analysis

Android Debugging and Performance Analysis Hands On Exercises for Android Debugging and Performance Analysis v. 2018.10 WARNING: The order of the exercises does not always follow the same order of the explanations in the slides. When carrying out

More information

Seiji Aguchi. Development Status of Troubleshooting Features, Tracing, Message Logging in Linux Kernel 5/20/2014

Seiji Aguchi. Development Status of Troubleshooting Features, Tracing, Message Logging in Linux Kernel 5/20/2014 Development Status of Troubleshooting Features, Tracing, Message Logging in Linux Kernel 5/20/2014 Seiji Aguchi Information & Telecommunication Systems Company IT Platform Division Group, IT Platform R&D

More information

Operating Systems (234123) Spring 2017 (Homework Wet 1) Homework 1 Wet

Operating Systems (234123) Spring 2017 (Homework Wet 1) Homework 1 Wet Homework 1 Wet Due Date: 30/4/2017 23:00 Teaching assistant in charge: Yehonatan Buchnik Important: the Q&A for the exercise will take place at a public forum Piazza only. Critical updates about the HW

More information

Operating Systems. II. Processes

Operating Systems. II. Processes Operating Systems II. Processes Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline Concepts Definitions and basic concepts Process

More information

Kernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline

Kernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline Course Duration: 5 days Pre-Requisites : Good C programming skills. Required knowledge Linux as a User Course Objective: To get Kernel and User Space of Linux and related programming Linux Advance Programming

More information

Evaluation of Real-time Performance in Embedded Linux. Hiraku Toyooka, Hitachi. LinuxCon Europe Hitachi, Ltd All rights reserved.

Evaluation of Real-time Performance in Embedded Linux. Hiraku Toyooka, Hitachi. LinuxCon Europe Hitachi, Ltd All rights reserved. Evaluation of Real-time Performance in Embedded Linux LinuxCon Europe 2014 Hiraku Toyooka, Hitachi 1 whoami Hiraku Toyooka Software engineer at Hitachi " Working on operating systems Linux (mainly) for

More information

Rebootless Kernel Updates

Rebootless Kernel Updates Rebootless Kernel Updates Srivatsa S. Bhat VMware srivatsa@csail.mit.edu University of Washington 3 Dec 2018 Why are reboots undesirable? Why are reboots undesirable? Remember this? J Why are reboots undesirable?

More information

ECE 471 Embedded Systems Lecture 4

ECE 471 Embedded Systems Lecture 4 ECE 471 Embedded Systems Lecture 4 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 12 September 2013 Announcements HW#1 will be posted later today For next class, at least skim

More information

MARUTHI SCHOOL OF BANKING (MSB)

MARUTHI SCHOOL OF BANKING (MSB) MARUTHI SCHOOL OF BANKING (MSB) SO IT - OPERATING SYSTEM(2017) 1. is mainly responsible for allocating the resources as per process requirement? 1.RAM 2.Compiler 3.Operating Systems 4.Software 2.Which

More information

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1 Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 Demand paging Concepts to Learn 2 Abstraction Virtual Memory (VM) 4GB linear address space for each process

More information

Process. Discussion session 3 1/30/2016

Process. Discussion session 3 1/30/2016 Process Discussion session 3 1/30/2016 A program in execution What is the process? An instance of a program running on a computer The entity can be assigned to and executed on a processor A unit of activity

More information

Maintaining Linux Long Term & Adding Specific Features in Telecom Systems. Keika Kobayashi NEC Communication Systems Sep 29, Japan2010

Maintaining Linux Long Term & Adding Specific Features in Telecom Systems. Keika Kobayashi NEC Communication Systems Sep 29, Japan2010 Maintaining Linux Long Term & Adding Specific Features in Telecom Systems Keika Kobayashi NEC Communication Systems Sep 29, 2010@LinuxCon Japan2010 OUTLINE 1. Background 2. What we did 1. Keep kernel stable.

More information

Inferring Temporal Behaviours Through Kernel Tracing

Inferring Temporal Behaviours Through Kernel Tracing Inferring Temporal Behaviours Through Kernel Tracing Paolo Rallo, Nicola Manica, Luca Abeni University of Trento Trento - Italy prallo@gmail.com, nicola.manica@disi.unitn.it, luca.abeni@unitn.it Technical

More information

Distributed traces modeling and critical path analysis

Distributed traces modeling and critical path analysis Distributed traces modeling and critical path analysis Progress Report Meeting December 6 th 2012 Francis Giraldeau francis.giraldeau@polymtl.ca Under the direction of Michel Dagenais DORSAL Lab, École

More information

SystemTap for Enterprise

SystemTap for Enterprise SystemTap for Enterprise SystemTap for Enterprise Enterprise Features in SystemTap 2010/09/28 Hitachi Systems Development Laboratory Linux Technology Center Masami Hiramatsu SystemTap Overview Tracing

More information

L41: Lab 2 - Kernel implications of IPC

L41: Lab 2 - Kernel implications of IPC L41: Lab 2 - Kernel implications of IPC Dr Robert N.M. Watson Michaelmas Term 2015 The goals of this lab are to: Continue to gain experience tracing user-kernel interactions via system calls Explore the

More information

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1 Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 Recap Paged MMU: Two main Issues Translation speed can be slow TLB Table size is big Multi-level page table

More information

March 10, Linux Live Patching. Adrien schischi Schildknecht. Why? Who? How? When? (consistency model) Conclusion

March 10, Linux Live Patching. Adrien schischi Schildknecht. Why? Who? How? When? (consistency model) Conclusion March 10, 2015 Section 1 Why Goal: apply a binary patch to kernel on-line. is done without shutdown quick response to a small but critical issue the goal is not to avoid downtime Limitations: simple changes

More information

Case Study: Challenges and Benefits in Integrating Real Time patch in PowerPc Based Media System

Case Study: Challenges and Benefits in Integrating Real Time patch in PowerPc Based Media System Case Study: Challenges and Benefits in Integrating Real Time patch in PowerPc Based Media System Manikandan Ramachandran Infosys Technologies Limited Electronic City, Hosur Road, Bengaluru 560100,India

More information

RALPH BÖHME, SERNET, SAMBA TEAM UNDERSTANDING AND IMPROVING SAMBA FILESERVER PERFORMANCE HOW I FELL IN LOVE WITH SYSTEMTAP AND PERF

RALPH BÖHME, SERNET, SAMBA TEAM UNDERSTANDING AND IMPROVING SAMBA FILESERVER PERFORMANCE HOW I FELL IN LOVE WITH SYSTEMTAP AND PERF UNDERSTANDING AND IMPROVING HOW I FELL IN LOVE WITH SYSTEMTAP AND PERF 2 AGENDA Disclaimer: focus on userspace, not kernel, mostly Linux Linux tracing history tour de force perf Systemtap Samba fileserver

More information

Dynamic Tracing and Instrumentation

Dynamic Tracing and Instrumentation Dynamic Tracing and Instrumentation Bryan Cantrill and Mike Shapiro (bmc, mws@eng.sun.com) Solaris Kernel Group Kernel Debugging Today if (no_advanced_debugging) printf(9f) ASSERT(i_am_a_debug_kernel!=

More information

Lecture Topics. Announcements. Today: Threads (Stallings, chapter , 4.6) Next: Concurrency (Stallings, chapter , 5.

Lecture Topics. Announcements. Today: Threads (Stallings, chapter , 4.6) Next: Concurrency (Stallings, chapter , 5. Lecture Topics Today: Threads (Stallings, chapter 4.1-4.3, 4.6) Next: Concurrency (Stallings, chapter 5.1-5.4, 5.7) 1 Announcements Make tutorial Self-Study Exercise #4 Project #2 (due 9/20) Project #3

More information

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed Process Management CS 537 Lecture 3: Processes Michael Swift This lecture begins a series of topics on processes, threads, and synchronization Today: processes and process management what are the OS units

More information

Mid Term from Feb-2005 to Nov 2012 CS604- Operating System

Mid Term from Feb-2005 to Nov 2012 CS604- Operating System Mid Term from Feb-2005 to Nov 2012 CS604- Operating System Latest Solved from Mid term Papers Resource Person Hina 1-The problem with priority scheduling algorithm is. Deadlock Starvation (Page# 84) Aging

More information

Design Overview of the FreeBSD Kernel CIS 657

Design Overview of the FreeBSD Kernel CIS 657 Design Overview of the FreeBSD Kernel CIS 657 Organization of the Kernel Machine-independent 86% of the kernel (80% in 4.4BSD) C code Machine-dependent 14% of kernel Only 0.6% of kernel in assembler (2%

More information

Tools for kernel development. Jonathan Corbet LWN.net

Tools for kernel development. Jonathan Corbet LWN.net Tools for kernel development Jonathan Corbet LWN.net corbet@lwn.net Tools Lots of development tools exist They will make your life easier Already seen: checkpatch.pl Lockdep Monitors all lock operations

More information

Design Overview of the FreeBSD Kernel. Organization of the Kernel. What Code is Machine Independent?

Design Overview of the FreeBSD Kernel. Organization of the Kernel. What Code is Machine Independent? Design Overview of the FreeBSD Kernel CIS 657 Organization of the Kernel Machine-independent 86% of the kernel (80% in 4.4BSD) C C code Machine-dependent 14% of kernel Only 0.6% of kernel in assembler

More information

Operating Systems 16 - CS 323 Assignment #2

Operating Systems 16 - CS 323 Assignment #2 Operating Systems 16 - CS 323 Assignment #2 Scheduler March 18, 2016 1 Objectives 1. Learn about scheduling in the Linux kernel 2. Understand the tradeoffs involved in scheduling 3. Work on the codebase

More information

CPSC/ECE 3220 Fall 2017 Exam Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts.

CPSC/ECE 3220 Fall 2017 Exam Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts. CPSC/ECE 3220 Fall 2017 Exam 1 Name: 1. Give the definition (note: not the roles) for an operating system as stated in the textbook. (2 pts.) Referee / Illusionist / Glue. Circle only one of R, I, or G.

More information

Section 1: Tools. Contents CS162. January 19, Make More details about Make Git Commands to know... 3

Section 1: Tools. Contents CS162. January 19, Make More details about Make Git Commands to know... 3 CS162 January 19, 2017 Contents 1 Make 2 1.1 More details about Make.................................... 2 2 Git 3 2.1 Commands to know....................................... 3 3 GDB: The GNU Debugger

More information

CSE 120 Principles of Operating Systems

CSE 120 Principles of Operating Systems CSE 120 Principles of Operating Systems Spring 2018 Lecture 16: Virtual Machine Monitors Geoffrey M. Voelker Virtual Machine Monitors 2 Virtual Machine Monitors Virtual Machine Monitors (VMMs) are a hot

More information

Developing Real-Time Applications

Developing Real-Time Applications Developing Real-Time Applications Real Time Operating Systems and Middleware Luca Abeni luca.abeni@unitn.it Characterised by temporal constraints deadlines Concurrent (application: set of real-time tasks)

More information

Android Debugging and Performance Analysis

Android Debugging and Performance Analysis Hands On Exercises for Android Debugging and Performance Analysis v. 2018.10 -- Day 1 WARNING: The order of the exercises does not always follow the same order of the explanations in the slides. When carrying

More information

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich XXX Tolerating Malicious Drivers in Linux Silas Boyd-Wickizer and Nickolai Zeldovich How could a device driver be malicious? Today's device drivers are highly privileged Write kernel memory, allocate memory,...

More information

ECE 498 Linux Assembly Language Lecture 1

ECE 498 Linux Assembly Language Lecture 1 ECE 498 Linux Assembly Language Lecture 1 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 13 November 2012 Assembly Language: What s it good for? Understanding at a low-level what

More information

LINUX TRACE TOOLS. Understanding the deep roots of new-age kernel instrumentation

LINUX TRACE TOOLS. Understanding the deep roots of new-age kernel instrumentation LINUX TRACE TOOLS Understanding the deep roots of new-age kernel instrumentation Submitted by Tarun Sharma Sharath Koday Under the guidance of Dr Yann Hang Lee Index I. Abstract II. Introduction III. Architecture

More information

ECE 598 Advanced Operating Systems Lecture 10

ECE 598 Advanced Operating Systems Lecture 10 ECE 598 Advanced Operating Systems Lecture 10 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 22 February 2018 Announcements Homework #5 will be posted 1 Blocking vs Nonblocking

More information

PROCESS STATES AND TRANSITIONS:

PROCESS STATES AND TRANSITIONS: The kernel contains a process table with an entry that describes the state of every active process in the system. The u area contains additional information that controls the operation of a process. The

More information

Processes & Threads. Today. Next Time. ! Process concept! Process model! Implementing processes! Multiprocessing once again. ! More of the same J

Processes & Threads. Today. Next Time. ! Process concept! Process model! Implementing processes! Multiprocessing once again. ! More of the same J Processes & Threads Today! Process concept! Process model! Implementing processes! Multiprocessing once again Next Time! More of the same J The process model! Most computers can do more than one thing

More information

www nfsd emacs lpr Process Management CS 537 Lecture 4: Processes Example OS in operation Why Processes? Simplicity + Speed

www nfsd emacs lpr Process Management CS 537 Lecture 4: Processes Example OS in operation Why Processes? Simplicity + Speed Process Management CS 537 Lecture 4: Processes Michael Swift This lecture begins a series of topics on processes, threads, and synchronization Today: processes and process management what are the OS units

More information

The CMXBug Manual. The CMXBug Manual

The CMXBug Manual. The CMXBug Manual The CMX CMXBug TM debugger provides the ability to view and modify different aspects of the CMX multitasking operating system environment, while application code is running. CMXBug runs as a task, usually

More information

An Implementation Of Multiprocessor Linux

An Implementation Of Multiprocessor Linux An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than

More information

The Kernel Abstraction. Chapter 2 OSPP Part I

The Kernel Abstraction. Chapter 2 OSPP Part I The Kernel Abstraction Chapter 2 OSPP Part I Kernel The software component that controls the hardware directly, and implements the core privileged OS functions. Modern hardware has features that allow

More information

Operating Systems and Networks Assignment 9

Operating Systems and Networks Assignment 9 Spring Term 01 Operating Systems and Networks Assignment 9 Assigned on: rd May 01 Due by: 10th May 01 1 General Operating Systems Questions a) What is the purpose of having a kernel? Answer: A kernel is

More information

Kernel Module Programming

Kernel Module Programming Kernel Module Programming Alessandro Barenghi Dipartimento di Elettronica e Informazione Politecnico di Milano barenghi - at - elet.polimi.it June 7, 2012 Recap By now, you should be familiar with... Programming

More information

UNIX rewritten using C (Dennis Ritchie) UNIX (v7) released (ancestor of most UNIXs).

UNIX rewritten using C (Dennis Ritchie) UNIX (v7) released (ancestor of most UNIXs). UNIX: HISTORY: 1. 1969 UNIX developed (Ken Thompson). 2. 1972 UNIX rewritten using C (Dennis Ritchie). 3. 1976 UNIX (v6) released for commercial use. 4. 1978 UNIX (v7) released (ancestor of most UNIXs).

More information

Project 3 Improved Process Management

Project 3 Improved Process Management Project 3 Improved Process Management Introduction This project will modernize process management in xv6. All process management will be impacted. New console control sequences will be implemented to support

More information

Decoding Those Inscrutable RCU CPU Stall Warnings

Decoding Those Inscrutable RCU CPU Stall Warnings Paul E. McKenney, IBM Distinguished Engineer, Linux Technology Center Member, IBM Academy of Technology Open Source Summit North America, September 12, 2017 Decoding Those Inscrutable RCU CPU Stall Warnings

More information

Processes (Intro) Yannis Smaragdakis, U. Athens

Processes (Intro) Yannis Smaragdakis, U. Athens Processes (Intro) Yannis Smaragdakis, U. Athens Process: CPU Virtualization Process = Program, instantiated has memory, code, current state What kind of memory do we have? registers + address space Let's

More information

2006/7/22. NTT Data Intellilink Corporation Fernando Luis Vázquez Cao. Copyright(C)2006 NTT Data Intellilink Corporation

2006/7/22. NTT Data Intellilink Corporation Fernando Luis Vázquez Cao. Copyright(C)2006 NTT Data Intellilink Corporation Evaluating Linux Kernel Crash Dumping Mechanisms 2006/7/22 NTT Data Intellilink Corporation Fernando Luis Vázquez Cao 1 Who am I? LKDTT (Linux Kernel Dump Test Tool) maintainer MKDump (Mini Kernel Dump)

More information

ECE 471 Embedded Systems Lecture 5

ECE 471 Embedded Systems Lecture 5 ECE 471 Embedded Systems Lecture 5 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 13 September 2016 HW#2 is due Thursday It is going OK? Announcements 1 Homework #1 Review Characteristics

More information

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1 Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 CPU management Roadmap Process, thread, synchronization, scheduling Memory management Virtual memory Disk

More information

Embedded Linux kernel and driver development training 5-day session

Embedded Linux kernel and driver development training 5-day session Embedded Linux kernel and driver development training 5-day session Title Embedded Linux kernel and driver development training Overview Understanding the Linux kernel Developing Linux device drivers Linux

More information

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle Operating Systems Operating System Structure Lecture 2 Michael O Boyle 1 Overview Architecture impact User operating interaction User vs kernel Syscall Operating System structure Layers Examples 2 Lower-level

More information

Embedded Linux Conference 2010

Embedded Linux Conference 2010 Embedded Linux Conference 2010 Using the LTTng Tracer for System-Wide Performance Analysis and Debugging (Hands-on Tutorial) Presentation and files at: http://www.efficios.com/elc2010 E-mail: mathieu.desnoyers@efficios.com

More information

238P: Operating Systems. Lecture 14: Process scheduling

238P: Operating Systems. Lecture 14: Process scheduling 238P: Operating Systems Lecture 14: Process scheduling This lecture is heavily based on the material developed by Don Porter Anton Burtsev November, 2017 Cooperative vs preemptive What is cooperative multitasking?

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 21

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 21 CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2018 Lecture 21 LAST TIME: UNIX PROCESS MODEL Began to explore the implementation of the UNIX process model The user API is very simple: fork() creates a

More information