- 29 Sep, 2002 8 commits
-
-
Ingo Molnar authored
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.)
-
Ingo Molnar authored
Avoid racing on signal delivery with thread signal blocking in thread groups. The method to do this is to eliminate the per-thread sigmask_lock, and use the per-group (per 'process') siglock for all signal related activities. This immensely simplified some of the locking interactions within signal.c, and enabled the fixing of the above category of signal delivery races. This became possible due to the former thread-signal patch, which made siglock an irq-safe thing. (it used to be a process-context-only spinlock.) And this is even a speedup for non-threaded applications: only one lock is used. I fixed all places within the kernel except the non-x86 arch sections. Even for them the transition is very straightforward, in almost every case the following is sufficient in arch/*/kernel/signal.c: :1,$s/->sigmask_lock/->sig->siglock/g
-
Ingo Molnar authored
Fix thread-group SIGSTOP handling - the SIGSTOP notification was not propagated to the parent of the thread group leader. Now Ctrl-Z-ing of thread groups works again.
-
Ingo Molnar authored
Fix thread group signal sending
-
Ingo Molnar authored
This fixes one more race left in the new futex hashing code, which triggers if a futex waiter gets a signal after it has been woken up but before it actually wakes up.
-
Ingo Molnar authored
This fixes the bug reported by David Mosberger, force_sig_info() dropped the siginfo structure, which broke things like SIGFPU or alignment-error exceptions. This bug was introduced by the threading signal changes. (The patch also fixes signal declaration whitespaces in sched.h.)
-
Jeff Garzik authored
-
Jeff Garzik authored
-
- 28 Sep, 2002 17 commits
-
-
Jeff Garzik authored
-
Jeff Garzik authored
into mandrakesoft.com:/home/jgarzik/repo/net-drivers-2.5
-
Jeff Garzik authored
8139too, epic100, fealnx, sundance and via-rhine. In the process, several of these net drivers gained MII ioctl locking fixes simply by virtue of being brought in line with standardized code.
-
Jeff Garzik authored
-
Jeff Garzik authored
and update all drivers that reference this struct member.
-
Jeff Garzik authored
* add boolean 'init_media' arg to mii_check_media * update all callers (just 8139cp, for now)
-
Jeff Garzik authored
* fix eeprom accesses * fix tx desc overflow * fix tx timeout bug * add sis963 support
-
Jeff Garzik authored
(contributed by Edward Peng @ D-Link)
-
Jeff Garzik authored
-
Jeff Garzik authored
(contributed by Edward Peng @ D-Link)
-
Jeff Garzik authored
(contributed by Edward Peng @ D-Link, cleaned up by me)
-
Edward Peng authored
conditionally include crc32.h, ethtool.h, mii.h, and compat.h if built outside the stock 2.4.x kernel.
-
Javier Achirica authored
Conditionally enabled when out-of-tree, but open source, crypto lib is present.
-
Jeff Garzik authored
into mandrakesoft.com:/home/jgarzik/repo/net-drivers-2.5
-
Andrew Morton authored
-
http://gkernel.bkbits.net/net-drivers-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Linus Torvalds authored
a directory pattern. Clean directories _first_, then files.
-
- 27 Sep, 2002 15 commits
-
-
Linus Torvalds authored
-
Jeff Garzik authored
into mandrakesoft.com:/home/jgarzik/repo/net-drivers-2.5
-
Linus Torvalds authored
-
bk://linuxusb.bkbits.net/linus-2.5Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Matthew Wilcox authored
This URL evaporated long ago, and Alan claims it's not coming back.
-
Ingo Molnar authored
Implement a "mapping change" notification for virtual lookup caches, and make the futex code use that to keep the futex page pinning consistent across copy-on-write events in the VM space.
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/gregkh-2.5
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Linus Torvalds authored
the same ignore rules for "tar" as well.
-
Ben Collins authored
-
Andi Kleen authored
x86-64 has an early console implementation which runs before the normal console is initialized. To avoid duplicated output it needs to be disabled when the real console starts. This patch adds an function call for that to the appropiate part of console_init.
-
Andi Kleen authored
Add the PCI IDs of an AMD 8151 AGP bridge.
-
Andi Kleen authored
Add an AGP driver for the AGP aperture in the northbridge of the AMD Hammer. The AGP driver works for both 32bit and 64bit kernels. It also adds some hooks to the AGP driver to allow the x86-64 GART based IOMMU code to share the aperture with AGP. The hooks are intentionally kept minimalistic. In addition it needs some Config.in hackery, because AGP cannot be modular in this case, because the IOMMU needs to control its startup and it runs early when PCI is initialized. The original AGP driver was done by Dave Jones, I added the IOMMU support.
-