I found an interesting topic, threaded interrupt handler, on https://lwn.net/Articles/302043/. It is not a brand new idea and it intended to replace tasklet. But when I studied its functionality, I found there is no difference between threaded interrupt handler and tasklet. Both of them defer the work and finish the hardware-related issue ASAP in the hard irq and defer the time-consuming part. Could anyone shed me some light on it?
What is the difference between threaded interrupt handler and tasklet?
1.5k Views Asked by codexplorer At
1
There are 1 best solutions below
Related Questions in LINUX-KERNEL
- Android kernel error: undefined reference to `get_hw_version_platform'
- Is there a need for BPF Linux namespace?
- Facing fatal errors while running "yum update" command on CentOS 7/Cloudlinux 7
- crash utility itself crashes while decoding kdump generated from null pointer dereference in kernel module
- How to compile the Linux kernel with -O0 for more detailed debug?
- Linux support for parallel Pixel data Image sensor
- Can't upgrade to newest version of linux-image-6.5.0-26-generic
- How to protect a page so that it cannot be write in mips arch?
- How to extract the .img file into normal kernel source file in the linux?
- Storage size of struct hash_desc desc; isn't known
- How can I intercept failed file openning calls?
- struct nameidata-Linux Kernel Module
- How to modify a 'struct msghdr' in Linux Kernel Module?
- How to allocate 500MB+ physically contiguous memory in a Linux kernel module and copy data to that memory from a userspace process?
- Hyper Threading: nosmt in grub configuration
Related Questions in ISR
- getting "undefined reference to ledc_cb_register" error
- ISR INT0 causes Reset on AVR Atmega32
- NEXTjs 13 SSR doesnt work with Link component reentering once visited path
- Is there any problem with computing the whole program in an ISR?
- ESP32 UART interrupt every character
- Implementing ISR in C++ for AVR Mega
- STM32- RTOS -Task Notify From ISR
- Next JS prerendering is not working due to firebase permissions
- speed up the AVR ISR
- Compilation error when creating ISR(vect) interruption : multiple definition of `TIMER0_COMPA_vect'
- ESP32 hardware ISR sometimes not triggered when wifi is transmitting
- What are the various ways to disable and re-enable interrupts in STM32 microcontrollers in order to implement atomic access guards?
- How a context switch works in a RTOS, need clarity
- KEIL4 where the lpc2148 ADC Interrupts or IRQs wont execute
- Should I use volatile for ISRs in C++? (not C)
Related Questions in TASKLET
- Scheduling multiple tasklets in linux
- What is the difference between threaded interrupt handler and tasklet?
- Batch Tasklet to read from database with select query
- FlatFileItemWriter not generating the file when using Tasklet approach
- Operate with i2c-device from tasklet
- Spring Batch: is this a tasklet or chunk?
- Spring batch parallel processing create steps based on the step1 result
- When save states while dealing with tasklets?
- No need to declare an extra TaskScheduler
- Why execute() method of tasklet never called
- Spring Batch: How to create a Composite Item Writer?
- Killing a tasklet while holdiing spin_lock_irqsave
- How to make a Spring Batch step depends on previous step?
- Difficulty getting ndb.tasklets to work in Google App Engine
- Osgi DOTS error with HTTP task
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The main difference between softirq's/tasklets and threaded irq's is the context in which they run, and what they can do.
The downside of the softirq approach is that it can cause potentially unbounded latency, as the softirq processing runs at essentially "infinite" priority. Though there is a mechanism where the kernel detects if it spends too much time processing softirq's, then it stops and instead wakes a "ksoftirqd" thread to handle them, and that thread is then subject to scheduling just like any other thread in the system.
For an example, if you use your computer for some audio applications. You want your audio application to not cause stutter, so you run it at realtime priority level. Now, as it happens on your PC you also run a webserver serving the latest cat pictures to the internet. For some reason the latest picture becomes very popular, and your PC becomes overloaded with requests. And it can happen that the system spends so much time handling network I/O that your audio application misses its deadline and you hear an annoying pop or stutter when it runs out of buffer. If, instead, network I/O were to be handled by a threaded irq, the scheduler could decide that as important serving cat pictures is, that audio application has even higher priority and it gets to run.
The downside of threaded irq is that needing a separate thread for it means more context switch overhead.
A recent article explaining some issues with softirq's: https://lwn.net/Articles/925540/