- 23 Aug, 2004 5 commits
-
-
Akiyama Nobuyuki authored
I made a patch for debugging with the help of NMI trigger switch. When kernel hangs severely, keyboard operation(e.g.Ctrl-Alt-Del) doesn't work properly. This patch enables debugging information to be displayed on console in this case. I think this feature is necessary as standard functionality. Please feel free to use this patch and let me know if you have any comments. Background: When a trouble occurs in kernel, we usually begin to investigate with following information: - panic >> panic message. - oops >> CPU registers and stack trace. - hang >> **NONE** no standard method established. How it works: Most IA32 servers have a NMI switch that fires NMI interrupt up. The NMI interrupt can interrupt even if kernel is serious state, for example deadlock under the interrupt disabled. When the NMI switch is pressed after this feature is activated, CPU registers and stack trace are displayed on console and then panic occurs. This feature is activated or deactivated with sysctl. On IA32 architecture, only the following are defined as reason of NMI interrupt: - memory parity error - I/O check error The reason code of NMI switch is not defined, so this patch assumes that all undefined NMI interrupts are fired by MNI switch. However, oprofile and NMI watchdog also use undefined NMI interrupt. Therefore this feature cannot be used at the same time with oprofile and NMI watchdog. This feature hands NMI interrupt over to oprofile and NMI watchdog. So, when they have been activated, this feature doesn't work even if it is activated. Supported architecture: IA32 Setup: Set up the system control parameter as follows: # sysctl -w kernel.unknown_nmi_panic=1 kernel.unknown_nmi_panic = 1 If the NMI switch is pressed, CPU registers and stack trace will be displayed on console and then panic occurs. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Arnd Bergmann authored
Reading the contents of a module_param_string through sysfs currently oopses because the param_get_charp() function cannot operate on a kparam_string struct. This introduces the required param_get_string. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Mike Kravetz authored
Races have been observed between excec-time overwriting of task->comm and /proc accesses to the same data. This causes environment string information to appear in /proc. Fix that up by taking task_lock() around updates to and accesses to task->comm. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Randy Dunlap authored
add_pin_to_irq() should not be __init; it is used after init code. Signed-off-by: Randy Dunlap <rddunlap@osdl.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Ingo Molnar authored
while debugging/improving scheduling latencies i got the following strange latency report from Lee Revell: http://krustophenia.net/testresults.php?dataset=2.6.8.1-P6#/var/www/2.6.8.1-P6 this trace shows a 120 usec latency caused by XFree86, on a 600 MHz x86 system. Looking closer reveals: 00000002 0.006ms (+0.003ms): __switch_to (schedule) 00000002 0.088ms (+0.082ms): finish_task_switch (schedule) it took more than 80 usecs for XFree86 to do a context-switch! it turns out that the reason for this (massive) context-switching overhead is the following change in 2.6.8: [PATCH] larger IO bitmaps To demonstrate the effect of this change i've written ioperm-latency.c (attached), which gives the following on vanilla 2.6.8.1: # ./ioperm-latency default no ioperm: scheduling latency: 2528 cycles turning on port 80 ioperm: scheduling latency: 10563 cycles turning on port 65535 ioperm: scheduling latency: 10517 cycles the ChangeSet says: Now, with the lazy bitmap allocation and per-CPU TSS, this will really not drain any resources I think. this is plain wrong. An increase in the IO bitmap size introduces per-context-switch overhead as well: we now have to copy an 8K bitmap every time XFree86 context-switches - even though XFree86 never uses ports higher than 1024! I've straced XFree86 on a number of x86 systems and in every instance ioperm() was used - so i'd say the majority of x86 Linux systems running 2.6.8.1 are affected by this problem. This not only causes lots of overhead, it also trashes ~16K out of the L1 and L2 caches, on every context-switch. It's as if XFree86 did a L1 cache flush on every context-switch ... the simple solution would be to revert IO_BITMAP_BITS back to 1024 and release 2.6.8.2? I've implemented another solution as well, which tracks the highest-enabled port # for every task and does the copying of the bitmap intelligently. (patch attached) The patched kernel gives: # ./ioperm-latency default no ioperm: scheduling latency: 2423 cycles turning on port 80 ioperm: scheduling latency: 2503 cycles turning on port 65535 ioperm: scheduling latency: 10607 cycles this is much more acceptable - the full overhead only occurs in the very unlikely event of a task using the high ioport range. X doesnt suffer any significant overhead. (tracking the maximum allowed port # also allows a simplification of io_bitmap handling: e.g. we dont do the invalid-offset trick anymore - the IO bitmap in the TSS is always valid and secure.) I tested the patch on x86 SMP and UP, it works fine for me. I tested boundary conditions as well, it all seems secure. Ingo #include <errno.h> #include <stdio.h> #include <sched.h> #include <signal.h> #include <sys/io.h> #include <stdlib.h> #include <unistd.h> #include <linux/unistd.h> #define CYCLES(x) asm volatile ("rdtsc" :"=a" (x)::"edx") #define __NR_sched_set_affinity 241 _syscall3 (int, sched_set_affinity, pid_t, pid, unsigned int, mask_len, unsigned long *, mask) /* * Use a pair of RT processes bound to the same CPU to measure * context-switch overhead: */ static void measure(void) { unsigned long i, min = ~0UL, pid, mask = 1, t1, t2; sched_set_affinity(0, sizeof(mask), &mask); pid = fork(); if (!pid) for (;;) { asm volatile ("sti; nop; cli"); sched_yield(); } sched_yield(); for (i = 0; i < 100; i++) { asm volatile ("sti; nop; cli"); CYCLES(t1); sched_yield(); CYCLES(t2); if (i > 10) { if (t2 - t1 < min) min = t2 - t1; } } asm volatile ("sti"); kill(pid, 9); printf("scheduling latency: %ld cycles\n", min); sched_yield(); } int main(void) { struct sched_param p = { sched_priority: 2 }; unsigned long mask = 1; if (iopl(3)) { printf("need to run as root!\n"); exit(-1); } sched_setscheduler(0, SCHED_FIFO, &p); sched_set_affinity(0, sizeof(mask), &mask); printf("default no ioperm: "); measure(); printf("turning on port 80 ioperm: "); ioperm(0x80,1,1); measure(); printf("turning on port 65535 ioperm: "); if (ioperm(0xffff,1,1)) printf("FAILED - older kernel.\n"); else measure(); return 0; } Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
- 22 Aug, 2004 20 commits
-
-
Linus Torvalds authored
Signed single-bit bitfields really are a pretty strange thing to have. They work, but it wasn't really intentional.
-
http://linux-watchdog.bkbits.net/linux-2.6-watchdogLinus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
http://xfs.org:8090/xfs-linux-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Cal Peake authored
net/ipv4/proc.c was updated to use a new mechanism for outputting /proc/net/snmp and /proc/net/netstat. However, a superfluous '\n' snuck in, breaking `netstat -s`
-
bk://linux-dj.bkbits.net/cpufreqLinus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Linus Torvalds authored
This one from Dave Jones, who read the Intel docs even more.
-
bk://bk.arm.linux.org.uk/linux-2.6-fbLinus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Benjamin Herrenschmidt authored
It seems that on some OldWolrd macs, we don't get the OF stdout device, thus the new set_preferred_console() dies at boot trying to dereference a NULL pointer. Trivial fix.
-
bk://gkernel.bkbits.net/netdev-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Andy Fleming authored
-
Jeff Garzik authored
into pobox.com:/spare/repo/netdev-2.6/ALL
-
Andries E. Brouwer authored
In 2.5.18 some minix-specific stuff was moved to the minix subdirectory where it belonged. However, a typo crept in, causing inode disk usage to be incorrectly reported. A few people have complained, but so far not sufficiently loudly. Signed-off-by: Andries Brouwer <Andries.Brouwer@cwi.nl> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Alan Cox authored
There are a couple of cache descriptors in the current Intel manuals missing from our tables at least one of which appears in an actual processor in the real world.
-
John Levon authored
A silly bug prevented certain events from being used.
-
bk://linux-acpi.bkbits.net/linux-acpi-release-2.6.8Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Alan Cox authored
This got accidentally reverted in merging HPT372N support. The following patch restores 50Mhz on the HPT374 using the 370a clocking tables.
-
bk://bk.arm.linux.org.uk/linux-2.6-rmkLinus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Matthew Wilcox authored
Fix some Kconfig dependencies on PA-RISC (Grant Grundler, Martin Schulze, Helge Deller, Matthew Wilcox)
-
Jesse Barnes authored
Define acpi_noirq on ia64 since it's used now in pci_link.c. All ia64 machines use ACPI, so we can just define it to 0 like we do for acpi_disabled and acpi_pci_disabled. Signed-off-by: Jesse Barnes <jbarnes@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Matthew Wilcox authored
PA-RISC sound updates: - Do a DAC/ADC reset for sampling rate changes in ad1889 (Randolph Chung) - Set the ad1889 interrupt configuration properly (Randolph Chung) - Fix dependency for the OSS Harmony driver (Thibaut Varene) - Forward port Stuart Brady's 2.4 Harmony driver patches (Thibaut Varene) - Fix sample skipping (Stuart Brady) - Prevent harmony_silence being called wrongly (Stuart Brady) - Fix crash caused by buf_to_fill becoming -1 (Stuart Brady) - Improve naming of mixer channels (Stuart Brady) - Implement SNDCTL_DSP_CHANNELS ioctl (Stuart Brady) - Improve toggling the recording source (Stuart Brady) - Sanity check MIXER_WRITE volume levels (Stuart Brady) - Fix MIXER_READ right_level return (Stuart Brady) - Reject AFMT_S16_LE format (Stuart Brady) - Fail OSS Harmony initialisation if no irq (Helge Deller) - Fix typos in ALSA Harmony (Andy Walker, Grant Grundler, Stuart Brady)
-
- 20 Aug, 2004 8 commits
-
-
Dave Jones authored
From: Jeremy Fitzhardinge <jeremy@goop.org> Signed-off-by: Dave Jones <davej@redhat.com>
-
Wim Van Sebroeck authored
The watchdog drivers use a VFS implementation and thus should not be lseek'able, so we put a '.llseek = no_llseek' in the file_operations structure.
-
Wim Van Sebroeck authored
cpu5wdt also contains a VFS and thus should be "nonseekable_open"
-
Friedrich Lobenstock authored
Fix example program in pcwd-watchdog.txt document.
-
Arnd Bergmann authored
The watchdog ioctl interface is defined correctly for 32 bit emulation, although WIOC_GETSUPPORT was not marked as such, for an unclear reason. WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT were added in may 2002 to the code but never to the ioctl list. This adds all three definitions. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
-
Timothy Shimmin authored
newer bit features than the kernel. SGI Modid: xfs-linux:xfs-kern:177392a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
Christoph Hellwig authored
SGI Modid: xfs-linux:xfs-kern:177165a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
Nathan Scott authored
SGI Modid: xfs-linux:xfs-kern:177164a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
- 19 Aug, 2004 7 commits
-
-
Nathan Scott authored
files can be automatically created as realtime files. SGI Modid: xfs-linux:xfs-kern:177129a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
Nathan Scott authored
SGI Modid: xfs-linux:xfs-kern:177030a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
Nathan Scott authored
SGI Modid: xfs-linux:xfs-kern:177029a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
Herry Wiputra authored
has no extents allocated. SGI Modid: xfs-linux:xfs-kern:18776a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
Dean Roehrich authored
SGI Modid: xfs-linux:xfs-kern:176905a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
Nathan Scott authored
with a shared page. SGI Modid: xfs-linux:xfs-kern:176412a Signed-off-by: Nathan Scott <nathans@sgi.com>
-
Nathan Scott authored
SGI Modid: xfs-linux:xfs-kern:176195a Signed-off-by: Nathan Scott <nathans@sgi.com>
-