Submit Search
Upload
Kernel Timing Management
•
0 likes
•
3,244 views
S
SysPlay eLearning Academy for You
Follow
Linux Kernel Timing Architecture
Read less
Read more
Technology
Report
Share
Report
Share
1 of 29
Recommended
Linux DMA Engine
Linux DMA Engine
SysPlay eLearning Academy for You
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
Block Drivers
Block Drivers
Anil Kumar Pugalia
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Interrupts
Interrupts
Anil Kumar Pugalia
Signals
Signals
Anil Kumar Pugalia
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Recommended
Linux DMA Engine
Linux DMA Engine
SysPlay eLearning Academy for You
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
Block Drivers
Block Drivers
Anil Kumar Pugalia
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Interrupts
Interrupts
Anil Kumar Pugalia
Signals
Signals
Anil Kumar Pugalia
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Embedded C
Embedded C
Anil Kumar Pugalia
Kernel Programming
Kernel Programming
Anil Kumar Pugalia
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
POSIX Threads
POSIX Threads
SysPlay eLearning Academy for You
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Shell Scripting
Shell Scripting
Anil Kumar Pugalia
Network Drivers
Network Drivers
Anil Kumar Pugalia
Video Drivers
Video Drivers
Anil Kumar Pugalia
Architecture Porting
Architecture Porting
Anil Kumar Pugalia
BeagleBoard-xM Booting Process
BeagleBoard-xM Booting Process
SysPlay eLearning Academy for You
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Bootloaders
Bootloaders
Anil Kumar Pugalia
Low-level Accesses
Low-level Accesses
Anil Kumar Pugalia
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
Audio Drivers
Audio Drivers
Anil Kumar Pugalia
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
Embedded Software Design
Embedded Software Design
Anil Kumar Pugalia
101 1.3 runlevels , shutdown, and reboot
101 1.3 runlevels , shutdown, and reboot
Acácio Oliveira
More Related Content
What's hot
Embedded C
Embedded C
Anil Kumar Pugalia
Kernel Programming
Kernel Programming
Anil Kumar Pugalia
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
POSIX Threads
POSIX Threads
SysPlay eLearning Academy for You
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Shell Scripting
Shell Scripting
Anil Kumar Pugalia
Network Drivers
Network Drivers
Anil Kumar Pugalia
Video Drivers
Video Drivers
Anil Kumar Pugalia
Architecture Porting
Architecture Porting
Anil Kumar Pugalia
BeagleBoard-xM Booting Process
BeagleBoard-xM Booting Process
SysPlay eLearning Academy for You
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Bootloaders
Bootloaders
Anil Kumar Pugalia
Low-level Accesses
Low-level Accesses
Anil Kumar Pugalia
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
Audio Drivers
Audio Drivers
Anil Kumar Pugalia
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
What's hot
(20)
Embedded C
Embedded C
Kernel Programming
Kernel Programming
Kernel Debugging & Profiling
Kernel Debugging & Profiling
POSIX Threads
POSIX Threads
Platform Drivers
Platform Drivers
Shell Scripting
Shell Scripting
Network Drivers
Network Drivers
Video Drivers
Video Drivers
Architecture Porting
Architecture Porting
BeagleBoard-xM Booting Process
BeagleBoard-xM Booting Process
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Bootloaders
Bootloaders
Low-level Accesses
Low-level Accesses
Introduction to Linux
Introduction to Linux
Processes
Processes
Processes
Processes
Audio Drivers
Audio Drivers
PCI Drivers
PCI Drivers
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
I2C Drivers
I2C Drivers
Similar to Kernel Timing Management
Embedded Software Design
Embedded Software Design
Anil Kumar Pugalia
101 1.3 runlevels , shutdown, and reboot
101 1.3 runlevels , shutdown, and reboot
Acácio Oliveira
101 1.3 runlevels, shutdown, and reboot v2
101 1.3 runlevels, shutdown, and reboot v2
Acácio Oliveira
리눅스 드라이버 #2
리눅스 드라이버 #2
Sangho Park
Process scheduling
Process scheduling
Hao-Ran Liu
1.3 runlevels, shutdown, and reboot v3
1.3 runlevels, shutdown, and reboot v3
Acácio Oliveira
OUGLS 2016: How profiling works in MySQL
OUGLS 2016: How profiling works in MySQL
Georgi Kodinov
Character Drivers
Character Drivers
Anil Kumar Pugalia
Timers in Unix/Linux
Timers in Unix/Linux
geeksrik
Vx works RTOS
Vx works RTOS
Sai Malleswar
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Anne Nicolas
SCHEDULING.ppt
SCHEDULING.ppt
AkashJ55
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
vtunotesbysree
Adaptive Replication for Elastic Data Stream Processing
Adaptive Replication for Elastic Data Stream Processing
Zbigniew Jerzak
13-scheduling.ppt
13-scheduling.ppt
PankajRawat390153
ch5_EN_CPUSched_2022.pdf
ch5_EN_CPUSched_2022.pdf
CuracaoJTR
Tips Tricks and Little known features in SAP ASE
Tips Tricks and Little known features in SAP ASE
SAP Technology
Module 3-cpu-scheduling
Module 3-cpu-scheduling
Hesham Elmasry
Real-Time Query for Data Guard
Real-Time Query for Data Guard
Uwe Hesse
Lecture18-19 (1).ppt
Lecture18-19 (1).ppt
ssuserf67e3a
Similar to Kernel Timing Management
(20)
Embedded Software Design
Embedded Software Design
101 1.3 runlevels , shutdown, and reboot
101 1.3 runlevels , shutdown, and reboot
101 1.3 runlevels, shutdown, and reboot v2
101 1.3 runlevels, shutdown, and reboot v2
리눅스 드라이버 #2
리눅스 드라이버 #2
Process scheduling
Process scheduling
1.3 runlevels, shutdown, and reboot v3
1.3 runlevels, shutdown, and reboot v3
OUGLS 2016: How profiling works in MySQL
OUGLS 2016: How profiling works in MySQL
Character Drivers
Character Drivers
Timers in Unix/Linux
Timers in Unix/Linux
Vx works RTOS
Vx works RTOS
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
SCHEDULING.ppt
SCHEDULING.ppt
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
Adaptive Replication for Elastic Data Stream Processing
Adaptive Replication for Elastic Data Stream Processing
13-scheduling.ppt
13-scheduling.ppt
ch5_EN_CPUSched_2022.pdf
ch5_EN_CPUSched_2022.pdf
Tips Tricks and Little known features in SAP ASE
Tips Tricks and Little known features in SAP ASE
Module 3-cpu-scheduling
Module 3-cpu-scheduling
Real-Time Query for Data Guard
Real-Time Query for Data Guard
Lecture18-19 (1).ppt
Lecture18-19 (1).ppt
More from SysPlay eLearning Academy for You
Linux Internals Part - 3
Linux Internals Part - 3
SysPlay eLearning Academy for You
Linux Internals Part - 2
Linux Internals Part - 2
SysPlay eLearning Academy for You
Linux Internals Part - 1
Linux Internals Part - 1
SysPlay eLearning Academy for You
Understanding the BBB
Understanding the BBB
SysPlay eLearning Academy for You
Cache Management
Cache Management
SysPlay eLearning Academy for You
Introduction to BeagleBone Black
Introduction to BeagleBone Black
SysPlay eLearning Academy for You
Introduction to BeagleBoard-xM
Introduction to BeagleBoard-xM
SysPlay eLearning Academy for You
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
BeagleBone Black Booting Process
BeagleBone Black Booting Process
SysPlay eLearning Academy for You
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
Linux System
Linux System
SysPlay eLearning Academy for You
More from SysPlay eLearning Academy for You
(11)
Linux Internals Part - 3
Linux Internals Part - 3
Linux Internals Part - 2
Linux Internals Part - 2
Linux Internals Part - 1
Linux Internals Part - 1
Understanding the BBB
Understanding the BBB
Cache Management
Cache Management
Introduction to BeagleBone Black
Introduction to BeagleBone Black
Introduction to BeagleBoard-xM
Introduction to BeagleBoard-xM
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
BeagleBone Black Booting Process
BeagleBone Black Booting Process
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
Linux System
Linux System
Recently uploaded
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Paola De la Torre
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
V3cube
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
Recently uploaded
(20)
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Kernel Timing Management
1.
© 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Kernel Timing Management
2.
2 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? Timing Architecture Ticking in jiffies Delaying the process Kernel Timers Tasklets Work Queues
3.
3 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Timing Architecture
4.
4 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. W's of Time Keeping User space deals with the absolute time 4 'O clock for back up 12 'O clock shutdown Kernel space deals with relative timing Data transfer should finish in 5 msecs Operations mostly in msecs, worst case seconds
5.
5 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Unit of Time in Kernel HZ – ticks per second Varies from 50 to 1000 Typically 1000 for desktops & 100 for embedded Systems Defined in <linux/params.h> 1 tick = 1ms (desktop), 10ms (embedded systems) Jiffy Internal kernel counter Increments with each timer tick jiffies & jiffies_64
6.
6 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. API's #include <linux/jiffies.h> get_jiffies_64() For accessing the 64 bit jiffies Direct access not recommended Comparison of time values int time_before(a, b) int time_after(a, b) int time_before_eq(a, b) int time_after_eq(a,b)
7.
7 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Dealing with User space #include <linux/time.h> unsigned long timespec_to_jiffies(struct timespec *) void jiffies_to_timespec(jiffies, struct timespec *) unsigned long timeval_to_jiffies(struct timeval *) void jiffies_to_timespec(jiffies, struct timeval *)
8.
8 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Resolution lesser than jiffies Platform specific “Time Stamp Counter” On x86 Header: <asm/msr.h> API: rdtsc(ul low_tsc_ticks, ul high_tsc_ticks); Getting it generically Header: <linux/timex.h> API: read_current_timer(unsigned long *timer_val);
9.
9 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Absolute Time Header: <linux/time.h> APIs mktime(y, m, d, h, m, s) – Seconds since Epoch void do_gettimeofday(struct timeval *tv); struct timespec current_kernel_time(void);
10.
10 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Delays
11.
11 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Long Delays Busy wait: cpu_relax while (time_before(jiffies, j1)) cpu_relax(); Yielding: schedule/schedule_timeout while (time_before(jiffies, j1)) schedule();
12.
12 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Hands On Timing/busy_wait.c Modify example above to use schedule().
13.
13 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Waiting for an event or timeout #include <linux/wait.h> wait_queue_head_t wq_head; init_waitqueue_head(&wq_head); wait_interruptible_timeout(wq, condition, timeout) 0 if process if timeout expires Remaining delay, if event occured schedule_timeout(delay_in_jiffies) No condition to wait for Returns 0, if timeout has expired
14.
14 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Hands On Modify Timing/busy_wait to use wait queues & sched_timeout
15.
15 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Short Delays but Busy Waiting Header: <linux/delay.h> Arch. specific Header: <asm/delay.h> APIs void ndelay(unsigned long ndelays); void udelay(unsigned long udelays); void mdelay(unsigned long mdelays);
16.
16 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Long Delays: Back to Yielding Header: <linux/delay.h> APIs void msleep(unsigned int millisecs); unsigned long msleep_interruptible(unsigned int millisecs); void ssleep(unsigned int secs);
17.
17 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Timers
18.
18 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. W's of Kernel Timers Allows to schedule a task, sometime in future Executes a user defined function at user defined time Example usage Elimination of bouncing in a key press Finishing some lengthy shutdowns Execute asynchronously & in interrupt context. So, scheduling out is not allowed
19.
19 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Kernel Timer Data structures Back end of the various delays Header: <linux/timer.h> Type: struct timer_list APIs void init_timer(struct timer_list *); /* Nullifies */ struct timer_list TIMER_INITIALIZER(f, t, p); void add_timer(struct timer_list *); void del_timer(struct timer_list *); int mod_timer(struct timer_list *, unsigned long); int del_timer_sync(struct timer_list *);
20.
20 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Hands On Timing/timers.c Create a thread which will wake up & blink the led every 1 sec Modify select.c to wake up the user space application periodically
21.
21 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Tasklets Tasklets mean baby tasks Tasks to be executed later with no specific time requirement Normally, scheduled by interrupt handler to finish the rest of the task such as data processing Executes in interrupt context
22.
22 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Data Structures Header: <linux/interrupt.h> Type: struct tasklet_struct APIs void tasklet_init(struct tasklet_struct *t, void (*func)(unsigned long), unsigned long data); DECLARE_TASKLET(name, func, data); DECLARE_TASKLET_DISABLED(name, func, data); tasklet_enable(t); tasklet_disable(t); tasklet_disable_nosync(t); tasklet_[hi_]schedule(t); tasklet_kill(t);
23.
23 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Tasklet Features Runs on the same CPU that schedules it Kernel maintains a disable count for tasklet & re-enables the tasklet only when enable is called as many times as disables Can be executed at higher priority Execute latest by next timer tick Tasklets is serialized with respect to itself Runs in atomic context, so blocking is not allowed
24.
24 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Hands On BottomHalves/tasklet.c Schedule the tasklet normal & high from the timer handler Reschedule the tasklet from itself
25.
25 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Work Queues Similar to tasklets, allow the task to be carried out later Work queues run in a context of special kernel process Its legitimate to sleep in work queues Run on the processor from which they were scheduled, by default
26.
26 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Data Structures Header: <linux/workqueue.h> Types: struct workqueue_struct, struct work_struct Work Queue APIs q = create_workqueue(name); q = create_singlethread_workqueue(name); flush_workqueue(q); destroy_workqueue(q); Work APIs DECLARE_WORK(w, void (*function)(struct work_struct *)); INIT_WORK(w, void (*function)(struct work_struct *)); Combined APIs int queue_work(q, &w); int queue_delayed_work(q, &w, d); int cancel_delayed_work(&w);
27.
27 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Hands On BottomHalves/work_queue.c Modify the above example to create a delayed work Try with cancel_delayed_work & flush_workqueue Use the shared work queue
28.
28 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What have we learnt? Timing Architecture Ticking in jiffies Delaying the process Kernel Timers Tasklets Work Queues
29.
29 © 2014-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?