summaryrefslogtreecommitdiff
path: root/include/linux/interrupt.h
AgeCommit message (Collapse)Author
2003-04-25s/#if/#ifdef/ for a few CONFIG_SMP tests in public headersJeff Garzik
Headers touched: linux/interrupt.h, linux/sched.h, linux/timer.h
2003-04-20Allow gcc to generate better code for irq handling.Linus Torvalds
Ok, now that most drivers have been converted to the new irqreturn_t, we can remove the fascist type-checks and just use a regular integer type which has a simpler calling convention.
2003-04-20Interrupt handlers should return whether the interruptLinus Torvalds
was for them or not, so that the irq subsystem can properly handle screaming shared interrupts. So change the irq handlers to return a "irqretval_t", which is either IRQ_HANDLED or IRQ_NONE.
2003-04-13[PATCH] s390: base s390 fixes.Martin Schwidefsky
s390 fixes: - Initialize timing related variables first and then enable the timer interrupt. - Normalize nano seconds to micro seconds in do_gettimeofday. - Add types for __kernel_timer_t and __kernel_clockid_t. - Fix ugly bug in switch_to: set prev to the return value of resume, otherwise prev still contains the previous process at the time resume was called and not the previous process at the time resume returned. They differ... - Add missing include to get the kernel compiled. - Get a closer match with the i386 termios.h file. - Cope with INITIAL_JIFFIES. - Define cpu_relax to do a cpu yield on VM and LPAR. - Don't reenable interrupts in program check handler. - Add pte_file definitions. - Fix PT_IEEE_IP special case in ptrace. - Use compare and swap to release the lock in _raw_spin_unlock. - Introduce invoke_softirq to switch to async. interrupt stack.
2003-03-30[SOFTIRQ]: interrupt.h needs preempt.hDavid S. Miller
2003-03-30[SOFTIRQ]: Move softirq implementation to common area, add debug check.David S. Miller
1) Every arch implemented local_bh_foo identically, move to linux/interrupt.h 2) Kill all asm/softirq.h references 3) Kill asm/softirq.h itself 4) Move local_bh_disable() out of line to kernel/softirq.c 5) Add BUG check on irqs_disabled() to local_bh_disable()
2002-11-21[PATCH] Add back in <asm/system.h> and <linux/linkage.h> to <linux/interrupt.h>Tom Rini
linux/interrupt.h needs: asm/system.h: smb_mb() linux/linkage.h: asmlinkage/FASTCALL/etc.
2002-11-16[PATCH] Run timers as softirqs, not taskletsMatthew Wilcox
The timer code is attempting to replicate the softirq characteristics at the tasklet level, which is a little pointless. This patch converts timers to be a first-class softirq citizen.
2002-11-15[PATCH] Move request_irq & free_irq to interrupt.hMatthew Wilcox
It really makes no sense to have request_irq and free_irq in sched.h Let's move them to interrupt.h instead. Note that I also remove sched.h from interrupt.h since it's not needed.
2002-09-28[PATCH] smptimers, old BH removal, tq-cleanupIngo Molnar
This is the smptimers patch plus the removal of old BHs and a rewrite of task-queue handling. Basically with the removal of TIMER_BH i think the time is right to get rid of old BHs forever, and to do a massive cleanup of all related fields. The following five basic 'execution context' abstractions are supported by the kernel: - hardirq - softirq - tasklet - keventd-driven task-queues - process contexts I've done the following cleanups/simplifications to task-queues: - removed the ability to define your own task-queue, what can be done is to schedule_task() a given task to keventd, and to flush all pending tasks. This is actually a quite easy transition, since 90% of all task-queue users in the kernel used BH_IMMEDIATE - which is very similar in functionality to keventd. I believe task-queues should not be removed from the kernel altogether. It's true that they were written as a candidate replacement for BHs originally, but they do make sense in a different way: it's perhaps the easiest interface to do deferred processing from IRQ context, in performance-uncritical code areas. They are easier to use than tasklets. code that cares about performance should convert to tasklets - as the timer code and the serial subsystem has done already. For extreme performance softirqs should be used - the net subsystem does this. and we can do this for 2.6 - there are only a couple of areas left after fixing all the BH_IMMEDIATE places. i have moved all the taskqueue handling code into kernel/context.c, and only kept the basic 'queue a task' definitions in include/linux/tqueue.h. I've converted three of the most commonly used BH_IMMEDIATE users: tty_io.c, floppy.c and random.c. [random.c might need more thought though.] i've also cleaned up kernel/timer.c over that of the stock smptimers patch: privatized the timer-vec definitions (nothing needs it, init_timer() used it mistakenly) and cleaned up the code. Plus i've moved some code around that does not belong into timer.c, and within timer.c i've organized data and functions along functionality and further separated the base timer code from the NTP bits. net_bh_lock: i have removed it, since it would synchronize to nothing. The old protocol handlers should still run on UP, and on SMP the kernel prints a warning upon use. Alexey, is this approach fine with you? scalable timers: i've further improved the patch ported to 2.5 by wli and Dipankar. There is only one pending issue i can see, the question of whether to migrate timers in mod_timer() or not. I'm quite convinced that they should be migrated, but i might be wrong. It's a 10 lines change to switch between migrating and non-migrating timers, we can do performance tests later on. The current, more complex migration code is pretty fast and has been stable under extremely high networking loads in the past 2 years, so we can immediately switch to the simpler variant if someone proves it improves performance. (I'd say if non-migrating timers improve Apache performance on one of the bigger NUMA boxes then the point is proven, no further though will be needed.)
2002-08-27[PATCH] Patch to irq compat stuff in 2.5.32Pete Zaitcev
This came up in 2.5.30, apparently someone was fooled by names which do not quite match actual functions.
2002-07-21Ingo Molnar's update to remove irqlock (documentation and fixingLinus Torvalds
a number of drivers)
2002-07-01[PATCH] softscsi patchMatthew Wilcox
Doug Gilbert and James Bottomley hassled me all through KernelSummit & OLS to explain about softirqs, tasklets and bottom halves. In the end, it was easier to write the code myself. Thanks to James for pointing out that the pointer handling in my original code was completely broken and helping me debug. I've booted this patch on a 4-way system at OSDL with two Adaptec SCSI cards. I haven't tried stressing it (not quite sure which discs I can use ;-), and I don't understand the locking in the scsi subsystem at all. The main effect of applying this patch is that scsi_softirq() [was scsi_tasklet_func, and before that scsi_bottom_half_handler()] can now be run on multiple CPUs at the same time. We _seem_ to do enough locking elsewhere in the SCSI stack that this is safe. But someone who really understands the SCSI stack should audit this. This work shows up a hole in the current softirq API -- there's no support for unregistering a softirq (close_softirq or similar). We should do this in scsi_exit -- make sure no softirqs are running while we unload. This probably isn't a problem in practice, but it'd be nice to fix it.
2002-06-19[PATCH] Convert cm206 to a taskletMatthew Wilcox
Removes CM206_BH (patch approved by maintainer). Deletes the no-longer-used BH entries from the enum. Explicit numbers added so as not to destroy binary compatibility needlessly.
2002-05-20[PATCH] Tasklet cleanupRusty Russell
This makes tasklet_vec and tasklet_hi_vec static inside softirq.c, and makes them __per_cpu_data.
2002-04-15[PATCH] #include <asm/bitops.h> -> #include <linux/bitops.h>Hirofumi Ogawa
We have to include linux/bitops.h for arch using generic_xxx(). The following patch changes <asm/bitops.h> of include/linux/* to <linux/bitops.h>.
2002-02-04v2.5.1.3 -> v2.5.1.4Linus Torvalds
- Jens Axboe: more bio updates, fix some request list bogosity under load - Al Viro: export seq_xxx functions - Manfred Spraul: include file cleanups, pc110pad compile fix - David Woodhouse: fix JFFS2 write error handling - Dave Jones: start merging up with 2.4.x patches - Manfred Spraul: coredump fixes, FS event counter cleanups - me: fix SCSI CD-ROM sectorsize BIO breakage
2002-02-04v2.4.9.5 -> v2.4.9.6Linus Torvalds
- Jens Axboe: remove trivially dead io_request_lock usage - Andrea Arcangeli: softirq cleanup and ARM fixes. Slab cleanups - Christoph Hellwig: gendisk handling helper functions/cleanups - Nikita Danilov: reiserfs dead code pruning - Anton Altaparmakov: NTFS update to 1.1.18 - firestream network driver: patch reverted on authors request - NIIBE Yutaka: SH architecture update - Paul Mackerras: PPC cleanups, PPC8xx update. - me: reverse broken bootdata allocation patch that went into pre5
2002-02-04v2.4.7.1 -> v2.4.7.2Linus Torvalds
- Kai Germaschewski: ISDN updates - David Miller: sparc and network updates - Andrea Arcangeli, Maksim Krasnyanskiy: tasklet fixes - Stelian Pop: Motion Eye camera driver update - Jens Axboe: DAC960 update
2002-02-04v2.4.6.4 -> v2.4.6.5Linus Torvalds
- remember to bump the version string - Andrea Arkangeli: softirq cleanups and fixes, and everybody is happy again (ie I changed some details to make me happy ;) - Neil Brown: raid5 stall fix, nfsd filehandle sanity check fix
2002-02-04v2.4.5.1 -> v2.4.5.2Linus Torvalds
- Takanori Kawano: brlock indexing bugfix - Ingo Molnar, Jeff Garzik: softirq updates and fixes - Al Viro: rampage of superblock cleanups. - Jean Tourrilhes: Orinoco driver update v6, IrNET update - Trond Myklebust: NFS brown-paper-bag thing - Tim Waugh: parport update - David Miller: networking and sparc updates - Jes Sorensen: m68k update. - Ben Fennema: UDF update - Geert Uytterhoeven: fbdev logo updates - Willem Riede: osst driver updates - Paul Mackerras: PPC update - Marcelo Tosatti: unlazy swap cache - Mikulas Patocka: hpfs update
2002-02-04v2.4.5 -> v2.4.5.1Linus Torvalds
- Andreas Dilger: make ext2fs react more gracefully to inode disk errors - Andrea Arkangeli: fix up alpha compile issues - Ingo Molnar: io-apic MP table parsing update and softirq latency update - Johannes Erdfelt: USB updates - Richard Henderson: alpha rawhide irq handling fixes - Marcelo, Andrea, Rik: more VM issues - Al Viro: fix various ext2 directory handling checks by biting the bullet and using the page cache.
2002-02-04v2.4.1.2 -> v2.4.1.3Linus Torvalds
- Jens: better ordering of requests when unable to merge - Neil Brown: make md work as a module again (we cannot autodetect in modules, not enough background information) - Neil Brown: raid5 SMP locking cleanups - Neil Brown: nfsd: handle Irix NFS clients named pipe behavior and dentry leak fix - maestro3 shutdown fix - fix dcache hash calculation that could cause bad hashes under certain circumstances (Dean Gaudet) - David Miller: networking and sparc updates - Jeff Garzik: include file cleanups - Andy Grover: ACPI update - Coda-fs error return fixes - rth: alpha Jensen update
2002-02-04Import changesetLinus Torvalds