All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] one of $BIGNUM devfs races
       [not found] ` <no.id>
@ 2001-08-06 23:59 Alan Cox
  2001-08-09  4:09 ` How/when to send patches - (was Re: [PATCH] one of $BIGNUM devfs races) Neil Brown
       [not found] ` <no.id>
  267 siblings, 2 replies; 989+ messages in thread
From: Alan Cox @ 2001-08-06 23:59 UTC (permalink / raw)
  To: Richard Gooch; +Cc: Alan Cox, Alexander Viro, Linus Torvalds, linux-kernel

> OK, fair enough. When is your next merge with Linus scheduled? I'd
> prefer to get a few races fixed before shipping a patch, but I can try
> to plan for an earlier release if necessary.

I send stuff Linus regularly and sometimes it goes in and sometimes it
doesn't. Stuff with active maintainers I don't send on to Linus unless asked
too - hence joystick. input and much of USB are so far behind in Linus tree

^ permalink raw reply	[flat|nested] 989+ messages in thread
* kernel gdb for intel
@ 2001-08-02  7:01 Brent Baccala
  2001-08-02 11:34 ` Amit S. Kale
  0 siblings, 1 reply; 989+ messages in thread
From: Brent Baccala @ 2001-08-02  7:01 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2841 bytes --]

Hi -

I've been trying to track down a problem I've had with a USB CD-Burner
locking up.  In the course of my investigations I ported the i386 remote
gdb stuff to the Linux kernel, because I'm used to using gdb on the
kernel (it works on SPARC and PPC) instead of trying to read oopses.

For those not familiar with the remote debug feature, you use two
computers, connected together with a null modem serial line.  One
computer has a complete Linux kernel tree on it, compiled with debugging
information (-g); the other computer is the one running the kernel under
test.  You can breakpoint and halt the kernel, which puts it in a tight
little loop reading packets (gdb, not IP) from the serial port and
responding to the debugger.  You get almost all the features you're used
to with gdb - stack backtraces, single stepping, source-based variable
names, intelligent structure decodes, etc.

Anyway, I'm attaching the patch (against 2.4.6).  After installing, a
menu option appears under "Kernel hacking" for remote debugging. 
Recompile the whole kernel (make clean) so that it compiles with
debugging info.  Then supply the "kgdb" switch to the kernel command
line, make sure the debugging computer is attached on COM1 (or whatever
you want to call it), and run "target remote /dev/whatever" on the
debugging computer.  See arch/i386/kernel/stub-i386.c for more info.

Known problems:

- only runs on COM1.  Shouldn't be hard to fix this

- doesn't switch stacks, so you can't use gdb's "call" feature, which
scribbles on the stack.  Other than that, no problem.

- doesn't support SMP, since I don't have an Intel SMP box.  I'd guess
what you'd want it to do is an smp_call_function that would halt all the
processors and put them into some tight little loop while gdb fiddles
things.  ideas?

- doesn't support any concept of multiple tasks/threads, though GDB can
do this with it's remote protocol, and I've discovered that it'd be
really nice to switch to another task within the kernel.  Lacking this,
you have to do stack backtraces by hand for other tasks.

- we have to compile Linux with -O2 to get inline functions, and this
can confuse GDB sometimes.  When in doubt, study the assembly.

And it still sometimes does some strange things, so might need some
tweaks here and there, but works 95% of the time.  Please try it out and
let me know what you think.


-- 
                                        -bwb

                                        Brent Baccala
                                        baccala@freesoft.org

==============================================================================
       For news from freesoft.org, subscribe to announce@freesoft.org:
   
mailto:announce-request@freesoft.org?subject=subscribe&body=subscribe
==============================================================================

[-- Attachment #2: linux-kgdb-diff --]
[-- Type: text/plain, Size: 39966 bytes --]

diff -Nru linux-2.4.6-dist/Makefile linux-2.4.6-kgdb/Makefile
--- linux-2.4.6-dist/Makefile	Wed Jul 25 13:53:08 2001
+++ linux-2.4.6-kgdb/Makefile	Wed Jul 25 15:14:17 2001
@@ -87,8 +87,13 @@
 
 CPPFLAGS := -D__KERNEL__ -I$(HPATH)
 
+ifdef CONFIG_REMOTE_DEBUG
+CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -g
+else
 CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
           -fomit-frame-pointer -fno-strict-aliasing
+endif
+
 AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
 
 #
diff -Nru linux-2.4.6-dist/arch/i386/config.in linux-2.4.6-kgdb/arch/i386/config.in
--- linux-2.4.6-dist/arch/i386/config.in	Wed Jul 25 13:53:08 2001
+++ linux-2.4.6-kgdb/arch/i386/config.in	Wed Jul 25 14:00:34 2001
@@ -388,4 +388,5 @@
 
 #bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
 bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Remote kernel debugger (gdb)' CONFIG_REMOTE_DEBUG
 endmenu
diff -Nru linux-2.4.6-dist/arch/i386/kernel/Makefile linux-2.4.6-kgdb/arch/i386/kernel/Makefile
--- linux-2.4.6-dist/arch/i386/kernel/Makefile	Fri Dec 29 17:35:47 2000
+++ linux-2.4.6-kgdb/arch/i386/kernel/Makefile	Wed Jul 25 14:00:34 2001
@@ -40,5 +40,6 @@
 obj-$(CONFIG_X86_LOCAL_APIC)	+= apic.o
 obj-$(CONFIG_X86_IO_APIC)	+= io_apic.o mpparse.o
 obj-$(CONFIG_X86_VISWS_APIC)	+= visws_apic.o
+obj-$(CONFIG_REMOTE_DEBUG)	+= i386-stub.o
 
 include $(TOPDIR)/Rules.make
diff -Nru linux-2.4.6-dist/arch/i386/kernel/entry.S linux-2.4.6-kgdb/arch/i386/kernel/entry.S
--- linux-2.4.6-dist/arch/i386/kernel/entry.S	Wed Jul 25 13:53:08 2001
+++ linux-2.4.6-kgdb/arch/i386/kernel/entry.S	Wed Aug  1 18:43:36 2001
@@ -64,6 +64,7 @@
 OLDSS		= 0x38
 
 CF_MASK		= 0x00000001
+TF_MASK		= 0x00000100
 IF_MASK		= 0x00000200
 NT_MASK		= 0x00004000
 VM_MASK		= 0x00020000
@@ -317,25 +318,128 @@
 	addl $4,%esp
 	jmp ret_from_exception
 
+ENTRY(nmi)
+	pushl %eax
+	SAVE_ALL
+	movl %esp,%edx
+	pushl $0
+	pushl %edx
+	call SYMBOL_NAME(do_nmi)
+	addl $8,%esp
+	RESTORE_ALL
+
+#ifdef CONFIG_REMOTE_DEBUG
+
+#define DEBUGGER_SAVE_REGISTERS				\
+	movl %eax, SYMBOL_NAME(kgdb_registers)		\
+	movl %ecx, SYMBOL_NAME(kgdb_registers)+4	\
+	movl %edx, SYMBOL_NAME(kgdb_registers)+8	\
+	movl %ebx, SYMBOL_NAME(kgdb_registers)+12	\
+	movl %ebp, SYMBOL_NAME(kgdb_registers)+20	\
+	movl %esi, SYMBOL_NAME(kgdb_registers)+24	\
+	movl %edi, SYMBOL_NAME(kgdb_registers)+28	\
+	movw $0, %ax					\
+	movw %ds, SYMBOL_NAME(kgdb_registers)+48	\
+	movw %ax, SYMBOL_NAME(kgdb_registers)+50	\
+	movw %es, SYMBOL_NAME(kgdb_registers)+52	\
+	movw %ax, SYMBOL_NAME(kgdb_registers)+54	\
+	movw %fs, SYMBOL_NAME(kgdb_registers)+56	\
+	movw %ax, SYMBOL_NAME(kgdb_registers)+58	\
+	movw %gs, SYMBOL_NAME(kgdb_registers)+60	\
+	movw %ax, SYMBOL_NAME(kgdb_registers)+62
+
+
+
+/* If we get an breakpoint interrupt in kernel space, we want to be as
+ * lean as possible.  On the other hand, a breakpoint in user space
+ * requires error_code and all its friends, since we might have to
+ * stop the process, signal the debugger, and reschedule.  So we check
+ * the low 2 bits of the saved CS register here to figure out if we're
+ * in kernel space.  If they're zero, call the kernel debugger;
+ * otherwise do a normal int 3.
+ */
+
+ENTRY(int3)
+	pushl $0
+	pushl %eax
+	movl 12(%esp),%eax
+	andl $3,%eax
+	popl %eax
+	jnz user_int3
+	cmpl $0, kgdb_initialized
+	jz user_int3
+	SAVE_ALL
+	movl %esp,%edx
+	pushl %edx
+	pushl $5				/* 5 = SIGTRAP */
+	call SYMBOL_NAME(handle_exception)
+	addl $8,%esp
+	RESTORE_ALL
+	
+user_int3:
+	pushl $ SYMBOL_NAME(do_int3)
+	jmp error_code
+
+/* Same rational for interrupt 1; the debug (single step) fault.
+ * If kgdb_stepping isn't set, then it's a spurious trap, so
+ * ignore it, i.e, if we single stepped through a save_flags(),
+ * then we'll get a trap later on after restore_flags()
+ */
+
+
 ENTRY(debug)
+	pushl %eax
+	movl 8(%esp),%eax
+	andl $3,%eax
+	popl %eax
+	jnz user_debug
+	cmpl $0, kgdb_stepping
+	jz spurious_debug
+	pushl $0
+	SAVE_ALL
+	movl %esp,%edx
+	pushl %edx
+	pushl $5				/* 5 = SIGTRAP */
+	call SYMBOL_NAME(handle_exception)
+	addl $8,%esp
+	RESTORE_ALL
+
+spurious_debug:
+	andl $~TF_MASK, 8(%esp)			/* Clear trace flag */
+	iret
+	
+user_debug:
 	pushl $0
 	pushl $ SYMBOL_NAME(do_debug)
 	jmp error_code
 
-ENTRY(nmi)
-	pushl %eax
+/* When the kernel debugger is active, it installs this routine as the
+ * page fault handler, to trap illegal memory accesses.  Since it's
+ * never used except while the kernel is halted and the debugger is
+ * active, it's very simple - just hand off to the C routine.
+ */
+
+ENTRY(debugger_fault)
 	SAVE_ALL
 	movl %esp,%edx
 	pushl $0
 	pushl %edx
-	call SYMBOL_NAME(do_nmi)
+	call SYMBOL_NAME(do_debugger_fault)
 	addl $8,%esp
 	RESTORE_ALL
+#else
 
 ENTRY(int3)
 	pushl $0
 	pushl $ SYMBOL_NAME(do_int3)
 	jmp error_code
+
+ENTRY(debug)
+	pushl $0
+	pushl $ SYMBOL_NAME(do_debug)
+	jmp error_code
+
+#endif
 
 ENTRY(overflow)
 	pushl $0
diff -Nru linux-2.4.6-dist/arch/i386/kernel/i386-stub.c linux-2.4.6-kgdb/arch/i386/kernel/i386-stub.c
--- linux-2.4.6-dist/arch/i386/kernel/i386-stub.c	Wed Dec 31 19:00:00 1969
+++ linux-2.4.6-kgdb/arch/i386/kernel/i386-stub.c	Wed Aug  1 20:30:12 2001
@@ -0,0 +1,622 @@
+/****************************************************************************
+
+		THIS SOFTWARE IS NOT COPYRIGHTED
+
+   HP offers the following for use in the public domain.  HP makes no
+   warranty with regard to the software or it's performance and the
+   user accepts the software "AS IS" with all faults.
+
+   HP DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD
+   TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+****************************************************************************/
+
+/****************************************************************************
+ *  Header: remcom.c,v 1.34 91/03/09 12:29:49 glenne Exp $
+ *
+ *  Module name: remcom.c $
+ *  Revision: 1.34 $
+ *  Date: 91/03/09 12:29:49 $
+ *  Contributor:     Lake Stevens Instrument Division$
+ *
+ *  Description:     low level support for gdb debugger. $
+ *
+ *  Considerations:  only works on target hardware $
+ *
+ *  Written by:      Glenn Engel $
+ *  ModuleState:     Experimental $
+ *
+ *  NOTES:           See Below $
+ *
+ *  Modified for 386 by Jim Kingdon, Cygnus Support.
+ *
+ *  Modified for Linux i386 kernel by Brent Baccala <baccala@freesoft.org>
+ *
+ *  The basic idea is to attach two machines together via a null modem
+ *  cable between their serial ports.  The debugging machine should have
+ *  the linux kernel source tree and vmlinux object file.  The machine
+ *  under test should boot the same version of the kernel (possibily
+ *  by copying bzImage to it from the debugging machine).  The debugging
+ *  machine runs gdb (unmodified) on the linux kernel and controls the
+ *  machine under test via the serial connection, the gdb remote protocol,
+ *  and this code (in the kernel of the machine under test).
+ *
+ *  To enable debugger support, two things need to happen.  One, any
+ *  breakpoints or error conditions need to be properly intercepted
+ *  and reported to gdb via handle_exception(), which is called from
+ *  int1/int3 handlers (in entry.S), do_page_fault (in fault.c), and
+ *  do_trap() (in traps.c) on any kernel fault if remote debugging has
+ *  been enabled.  Two, a breakpoint needs to be generated to begin
+ *  communication.  This is most easily accomplished by a call to
+ *  breakpoint().  Breakpoint() simulates a breakpoint by executing an
+ *  INT3.
+ *
+ *  The INT 3 (breakpoint) and INT 1 (debug) handlers should install
+ *  as interrupt gates so that interrupts are masked while the handler
+ *  runs.
+ *
+ *  Because gdb will sometimes write to the stack area to execute function
+ *  calls, this program cannot rely on using the supervisor stack.
+ *
+ *  CAVEAT:  This is currently broken; we use the supervisor stack,
+ *  so the gdb "call" command will trash the kernel.  Don't use it.
+ *
+ *  CAVEAT:  No smp support at this time
+ *
+ *  CAVEAT:  Hardware watchpoints could be done, but presently aren't
+ *  supported by either this code or the gdb i386 remote backend.
+ *
+ *************
+ *  TEST PROCEDURE FOR THIS CODE
+ *
+ *  1.  boot kernel, specifying "kgdb" as a kernel argument
+ *  2.  kernel should halt almost immediately after loading, and send
+ *      an "$S05#84" out the serial port at 9600N8.  Should be visible
+ *      with a standard serial program.  Tests kernel INT3 handler.
+ *  3.  run "gdb vmlinux" on remote machine from the linux source dir
+ *  4.  "target remote /dev/cua0" (or whatever the serial device is)
+ *  5.  debugger should show a breakpoint in function breakpoint()
+ *      Tests basic debugger/kernel serial interface
+ *  6.  "info reg" - tests debuggers ability to read processor registers
+ *  7.  "where" - shows stack trace and tests memory fault handler
+ *      (the "Cannot access memory" message is normal)
+ *  8.  "break blk_get_queue"
+ *  9.  "cont" - tests debugger's ability to set a breakpoint, restart
+ *      kernel, and get control back a few seconds later
+ *  10. "next" - tests kernel single step trap, and single steps past a
+ *      save_flags() in blk_get_queue, thus pushing the flags register
+ *      with the TF bit set
+ *  11. "dis 1" - disable the breakpoint
+ *  12. "cont" - tests spurious single step trap handling, since the
+ *      saved flags registers will generate a spurious trap when it
+ *      is popped and restored.  Kernel should _not_ halt; there should
+ *      be no visible indication of the spurious trap
+ *  13. wait for kernel to finish booting
+ *  14. hit CNTL-C on debugger
+ *  15. kernel should halt and give control to debugger.  Tests ability
+ *      to grab control via a serial interrupt.  "continue"
+ *  16. on the machine under test, run ordinary gdb on some ordinary program
+ *  17. "break main" and "run" (ordinary gdb)
+ *  18. should breakpoint normally, without a breakpoint on the kernel
+ *      debugger.  Tests user space INT 3 handling
+ *  19. "next" (ordinary gdb)
+ *  20. should step normally, without affecting the kernel debugger.
+ *      Tests user space single step trap handling
+ *
+ *************
+ *
+ *    The following gdb commands are supported:
+ *
+ * command          function                               Return value
+ *
+ *    g             return the value of the CPU registers  hex data or ENN
+ *    G             set the value of the CPU registers     OK or ENN
+ *
+ *    mAA..AA,LLLL  Read LLLL bytes at address AA..AA      hex data or ENN
+ *    MAA..AA,LLLL: Write LLLL bytes at address AA.AA      OK or ENN
+ *
+ *    c             Resume at current address              SNN   ( signal NN)
+ *    cAA..AA       Continue at address AA..AA             SNN
+ *
+ *    s             Step one instruction                   SNN
+ *    sAA..AA       Step one instruction from AA..AA       SNN
+ *
+ *    k             kill
+ *
+ *    ?             What was the last sigval ?             SNN   (signal NN)
+ *
+ * All commands and responses are sent with a packet which includes a
+ * checksum.  A packet consists of
+ *
+ * $<packet info>#<checksum>.
+ *
+ * where
+ * <packet info> :: <characters representing the command or response>
+ * <checksum>    :: < two hex digits computed as modulo 256 sum of <packetinfo>>
+ *
+ * When a packet is received, it is first acknowledged with either '+' or '-'.
+ * '+' indicates a successful transfer.  '-' indicates a failed transfer.
+ *
+ * Example:
+ *
+ * Host:                  Reply:
+ * $m0,10#2a               +$00010203040506070809101112131415#42
+ *
+ ****************************************************************************/
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/smp.h>
+#include <linux/smp_lock.h>
+
+#include <asm/ptrace.h>
+#include <asm/desc.h>
+
+/************************************************************************
+ *
+ * external low-level support routines
+ */
+
+extern void putDebugChar(char);	/* write a single character      */
+extern char getDebugChar(void);	/* read and return a single char */
+extern void kgdb_interruptible(int); /* true if recv data triggers breakpt */
+
+/************************************************************************/
+/* BUFMAX defines the maximum number of characters in inbound/outbound buffers*/
+/* at least NUMREGBYTES*2 are needed for register packets */
+#define BUFMAX 400
+
+char kgdb_initialized = 0;	/* TRUE = we've been initialized */
+int kgdb_active = 0;		/* TRUE = we're in the exception handler */
+int kgdb_stepping = 0;		/* TRUE = we're single-stepping the kernel*/
+
+static const char hexchars[]="0123456789abcdef";
+
+/* Number of registers.  */
+#define NUMREGS	16
+
+/* Number of bytes of registers.  */
+#define NUMREGBYTES (NUMREGS * 4)
+
+/* This is the register order that GDB uses - it is _not_ the order
+ * that Linux uses (struct pt_regs), so we need to be careful
+ */
+
+enum regnames {GDB_EAX, GDB_ECX, GDB_EDX, GDB_EBX,
+	       GDB_ESP, GDB_EBP, GDB_ESI, GDB_EDI,
+	       GDB_PC /* also known as eip */,
+	       GDB_PS /* also known as eflags */,
+	       GDB_CS, GDB_SS, GDB_DS, GDB_ES, GDB_FS, GDB_GS};
+
+static int registers[NUMREGS];
+
+int hex(char ch)
+{
+  if ((ch >= 'a') && (ch <= 'f')) return (ch-'a'+10);
+  if ((ch >= '0') && (ch <= '9')) return (ch-'0');
+  if ((ch >= 'A') && (ch <= 'F')) return (ch-'A'+10);
+  return (-1);
+}
+
+static char remcomInBuffer[BUFMAX];
+static char remcomOutBuffer[BUFMAX];
+
+/* scan for the sequence $<data>#<checksum>     */
+
+unsigned char *
+getpacket (void)
+{
+  unsigned char *buffer = &remcomInBuffer[0];
+  unsigned char checksum;
+  unsigned char xmitcsum;
+  int count;
+  char ch;
+
+  while (1)
+    {
+      /* wait around for the start character, ignore all other characters */
+      while ((ch = getDebugChar ()) != '$')
+	;
+
+retry:
+      checksum = 0;
+      xmitcsum = -1;
+      count = 0;
+
+      /* now, read until a # or end of buffer is found */
+      while (count < BUFMAX)
+	{
+	  ch = getDebugChar ();
+          if (ch == '$')
+	    goto retry;
+	  if (ch == '#')
+	    break;
+	  checksum = checksum + ch;
+	  buffer[count] = ch;
+	  count = count + 1;
+	}
+      buffer[count] = 0;
+
+      if (ch == '#')
+	{
+	  ch = getDebugChar ();
+	  xmitcsum = hex (ch) << 4;
+	  ch = getDebugChar ();
+	  xmitcsum += hex (ch);
+
+	  if (checksum != xmitcsum)
+	    {
+	      putDebugChar ('-');	/* failed checksum */
+	    }
+	  else
+	    {
+	      putDebugChar ('+');	/* successful transfer */
+
+	      /* if a sequence char is present, reply the sequence ID */
+	      if (buffer[2] == ':')
+		{
+		  putDebugChar (buffer[0]);
+		  putDebugChar (buffer[1]);
+
+		  return &buffer[3];
+		}
+
+	      return &buffer[0];
+	    }
+	}
+    }
+}
+
+/* send the packet in buffer.  */
+
+void putpacket(char *buffer)
+{
+  unsigned char checksum;
+  int  count;
+  char ch;
+
+  /*  $<packet info>#<checksum>. */
+  do {
+  putDebugChar('$');
+  checksum = 0;
+  count    = 0;
+
+  while ((ch=buffer[count])) {
+    putDebugChar(ch);
+    checksum += ch;
+    count += 1;
+  }
+
+  putDebugChar('#');
+  putDebugChar(hexchars[checksum >> 4]);
+  putDebugChar(hexchars[checksum % 16]);
+
+  } while (getDebugChar() != '+');
+
+}
+
+/* Get/set a byte in memory, with error indication on page faults
+ *
+ * I originally tried using the exception table mechanism for this
+ * code, but the standard page fault handler is too heavy weight - it
+ * grabs semaphores, spinlocks, and such.  Since the kernel is halted
+ * when this code runs, the only page faults we should get are our
+ * own, so I just install my own custom page fault handler, and
+ * restore the system handler when the kernel restarts.  The assembler
+ * statements are hard coded so I know exactly what the critical
+ * instructions are.  Each is a two-byte move that I just step past in
+ * the fault handler.
+ *
+ * debugger_fault and page_fault are defined in arch/i386/kernel/entry.S
+ * They are the fault handlers registered in the processor's IDT.  They
+ * save the registers onto the stack and set up a C call frame before
+ * calling do_page_fault (the normal fault routine) or do_debugger_fault.
+ */
+
+static volatile int mem_err = 0;
+
+unsigned char get_char (unsigned char *addr)
+{
+	int val = 0;
+
+	__asm__("movb (%1), %%al"
+                : "=a" (val) : "r" (addr));
+
+	return val;
+}
+
+void set_char (unsigned char *addr, unsigned char val)
+{
+	__asm__("movb %%al, (%1)"
+                : : "a" (val), "r" (addr));
+}
+
+asmlinkage void debugger_fault(void);
+asmlinkage void page_fault(void);
+
+asmlinkage void do_debugger_fault(struct pt_regs *regs, long error_code)
+{
+	mem_err = 1;
+	regs->eip += 2;
+}
+
+/* convert the memory pointed to by mem into hex, placing result in buf */
+/* return a pointer to the last char put in buf (null) */
+/* If MAY_FAULT is non-zero, then we should set mem_err in response to
+   a fault; if zero treat a fault like any other fault in the stub.  */
+char* mem2hex(char *mem, char *buf, int count, int may_fault)
+{
+      int i;
+      unsigned char ch;
+
+      for (i=0;i<count;i++) {
+          ch = get_char (mem++);
+	  if (may_fault && mem_err)
+	    return (buf);
+          *buf++ = hexchars[ch >> 4];
+          *buf++ = hexchars[ch % 16];
+      }
+      *buf = 0;
+      return(buf);
+}
+
+/* convert the hex array pointed to by buf into binary to be placed in mem */
+/* return a pointer to the character AFTER the last byte written */
+char* hex2mem(char *buf, char *mem, int count, int may_fault)
+{
+      int i;
+      unsigned char ch;
+
+      for (i=0;i<count;i++) {
+          ch = hex(*buf++) << 4;
+          ch = ch + hex(*buf++);
+          set_char (mem++, ch);
+	  if (may_fault && mem_err)
+	    return (mem);
+      }
+      return(mem);
+}
+
+/**********************************************/
+/* WHILE WE FIND NICE HEX CHARS, BUILD AN INT */
+/* RETURN NUMBER OF CHARS PROCESSED           */
+/**********************************************/
+int hexToInt(char **ptr, int *intValue)
+{
+    int numChars = 0;
+    int hexValue;
+
+    *intValue = 0;
+
+    while (**ptr)
+    {
+        hexValue = hex(**ptr);
+        if (hexValue >=0)
+        {
+            *intValue = (*intValue <<4) | hexValue;
+            numChars ++;
+        }
+        else
+            break;
+
+        (*ptr)++;
+    }
+
+    return (numChars);
+}
+
+/*
+ * This function does all command procesing for interfacing to gdb.
+ */
+
+void handle_exception(int sigval, struct pt_regs *regs)
+{
+  int    addr, length;
+  char * ptr;
+  int    newPC;
+
+  if (kgdb_active) {
+	  printk("interrupt while in kgdb, returning\n");
+	  return;
+  }
+  kgdb_active = 1;
+
+  kgdb_interruptible(0);
+  set_intr_gate(14,&debugger_fault);
+  /* lock_kernel(); */
+
+  registers[GDB_EAX] = regs->eax;
+  registers[GDB_EBX] = regs->ebx;
+  registers[GDB_ECX] = regs->ecx;
+  registers[GDB_EDX] = regs->edx;
+  registers[GDB_EBP] = regs->ebp;
+  registers[GDB_ESI] = regs->esi;
+  registers[GDB_EDI] = regs->edi;
+  registers[GDB_PC]  = regs->eip;
+  registers[GDB_PS]  = regs->eflags;
+  registers[GDB_CS]  = regs->xcs;
+  registers[GDB_DS]  = regs->xds;
+  registers[GDB_ES]  = regs->xes;
+
+  /* Kernel doesn't use FS or GS */
+  registers[GDB_FS]  = 0;
+  registers[GDB_GS]  = 0;
+
+  /* We came in through a trap gate from the same privilege level, so
+   * the CPU didn't change stacks and push ESP/SP like it would have
+   * for a trap from user space (different privilege level), so
+   * regs->esp and regs->xss are invalid.  We figure out ESP based
+   * the address of the register frame (go past the register frame,
+   * then backup 8 bytes to account for ESP/SS that didn't get pushded),
+   * and SS we ignore because GDB doesn't use it.
+   */
+
+  registers[GDB_ESP] = (int)regs + sizeof(struct pt_regs) - 8;
+  registers[GDB_SS]  = 0;
+
+  /* reply to host that an exception has occurred */
+  remcomOutBuffer[0] = 'S';
+  remcomOutBuffer[1] =  hexchars[sigval >> 4];
+  remcomOutBuffer[2] =  hexchars[sigval % 16];
+  remcomOutBuffer[3] = 0;
+
+  putpacket(remcomOutBuffer);
+
+  kgdb_stepping = 0;
+
+  while (1==1) {
+    remcomOutBuffer[0] = 0;
+    ptr = getpacket();
+
+    switch (*ptr++) {
+      case '?' :   remcomOutBuffer[0] = 'S';
+                   remcomOutBuffer[1] =  hexchars[sigval >> 4];
+                   remcomOutBuffer[2] =  hexchars[sigval % 16];
+                   remcomOutBuffer[3] = 0;
+                 break;
+      case 'd' : /* toggle debug flag */
+                 break;
+      case 'g' : /* return the value of the CPU registers */
+	      mem2hex((char*) registers, remcomOutBuffer, NUMREGBYTES, 0);
+	      break;
+      case 'G' : /* set the value of the CPU registers - return OK */
+                hex2mem(ptr, (char*) registers, NUMREGBYTES, 0);
+                strcpy(remcomOutBuffer,"OK");
+                break;
+      case 'P' : /* set the value of a single CPU register - return OK */
+                {
+                  int regno;
+
+                  if (hexToInt (&ptr, &regno) && *ptr++ == '=') 
+                  if (regno >= 0 && regno < NUMREGS)
+                    {
+                      hex2mem (ptr, (char *)&registers[regno], 4, 0);
+                      strcpy(remcomOutBuffer,"OK");
+                      break;
+                    }
+
+                  strcpy (remcomOutBuffer, "E01");
+                  break;
+                }
+
+      /* mAA..AA,LLLL  Read LLLL bytes at address AA..AA */
+      case 'm' :
+		    /* TRY TO READ %x,%x.  IF SUCCEED, SET PTR = 0 */
+                    if (hexToInt(&ptr,&addr))
+                        if (*(ptr++) == ',')
+                            if (hexToInt(&ptr,&length))
+                            {
+                                ptr = 0;
+				mem_err = 0;
+                                mem2hex((char*) addr, remcomOutBuffer, length, 1);
+				if (mem_err) {
+				    strcpy (remcomOutBuffer, "E03");
+				}
+                            }
+
+                    if (ptr)
+                    {
+		      strcpy(remcomOutBuffer,"E01");
+		    }
+	          break;
+
+      /* MAA..AA,LLLL: Write LLLL bytes at address AA.AA return OK */
+      case 'M' :
+		    /* TRY TO READ '%x,%x:'.  IF SUCCEED, SET PTR = 0 */
+                    if (hexToInt(&ptr,&addr))
+                        if (*(ptr++) == ',')
+                            if (hexToInt(&ptr,&length))
+                                if (*(ptr++) == ':')
+                                {
+				    mem_err = 0;
+                                    hex2mem(ptr, (char*) addr, length, 1);
+
+				    if (mem_err) {
+					strcpy (remcomOutBuffer, "E03");
+				    } else {
+				        strcpy(remcomOutBuffer,"OK");
+				    }
+
+                                    ptr = 0;
+                                }
+                    if (ptr)
+                    {
+		      strcpy(remcomOutBuffer,"E02");
+		    }
+                break;
+
+     /* cAA..AA    Continue at address AA..AA(optional) */
+     /* sAA..AA   Step one instruction from AA..AA(optional) */
+     case 's' :
+	 kgdb_stepping = 1;
+     case 'c' :
+          /* try to read optional parameter, pc unchanged if no parm */
+         if (hexToInt(&ptr,&addr))
+             registers[ GDB_PC ] = addr;
+
+          newPC = registers[ GDB_PC];
+
+          /* clear the trace bit */
+          registers[ GDB_PS ] &= 0xfffffeff;
+
+          /* set the trace bit if we're stepping */
+          if (kgdb_stepping) registers[ GDB_PS ] |= 0x100;
+
+	  regs->eax = registers[GDB_EAX];
+	  regs->ebx = registers[GDB_EBX];
+	  regs->ecx = registers[GDB_ECX];
+	  regs->edx = registers[GDB_EDX];
+	  regs->ebp = registers[GDB_EBP];
+	  regs->esi = registers[GDB_ESI];
+	  regs->edi = registers[GDB_EDI];
+	  regs->eip = registers[GDB_PC];
+	  regs->eflags = registers[GDB_PS];
+	  regs->xcs = registers[GDB_CS];
+	  regs->xds = registers[GDB_DS];
+	  regs->xes = registers[GDB_ES];
+
+	  /* We didn't restore FS, GS, or SS because we never saved them,
+	   * nor did we restore ESP because we're using the same stack
+	   * ourselves!
+	   */
+
+	  set_intr_gate(14,&page_fault);
+	  kgdb_interruptible(1);
+	  /* unlock_kernel(); */
+	  kgdb_active = 0;
+
+	  return;
+
+      /* kill the program */
+      case 'k' :
+	      strcpy(remcomOutBuffer, "OK");
+	      putpacket(remcomOutBuffer);
+	      machine_restart(NULL);
+	      break;
+
+      } /* switch */
+
+    /* reply to the request */
+    putpacket(remcomOutBuffer);
+    }
+}
+
+/* this function is used to set up exception handlers for tracing and
+   breakpoints */
+void set_debug_traps(void)
+{
+  kgdb_initialized = 1;
+}
+
+/* This function will generate a breakpoint exception.  It is used at the
+   beginning of a program to sync up with a debugger and can be used
+   otherwise as a quick means to stop program execution and "break" into
+   the debugger. */
+
+void breakpoint(void)
+{
+	if (kgdb_initialized) {
+		asm("   int $3");
+	}
+}
diff -Nru linux-2.4.6-dist/arch/i386/kernel/setup.c linux-2.4.6-kgdb/arch/i386/kernel/setup.c
--- linux-2.4.6-dist/arch/i386/kernel/setup.c	Fri May 25 20:07:09 2001
+++ linux-2.4.6-kgdb/arch/i386/kernel/setup.c	Wed Jul 25 14:00:34 2001
@@ -104,6 +104,12 @@
 #include <asm/dma.h>
 #include <asm/mpspec.h>
 #include <asm/mmu_context.h>
+
+#ifdef CONFIG_REMOTE_DEBUG
+extern int serial_kgdb_hook(int);
+extern void set_debug_traps(void);
+#endif
+
 /*
  * Machine setup..
  */
@@ -1016,6 +1022,19 @@
 	low_mem_size = ((max_low_pfn << PAGE_SHIFT) + 0xfffff) & ~0xfffff;
 	if (low_mem_size > pci_mem_start)
 		pci_mem_start = low_mem_size;
+
+#ifdef CONFIG_REMOTE_DEBUG
+	if (strstr(*cmdline_p, "kgdb") && (serial_kgdb_hook(0) == 0)) {
+
+	     /* We can't breakpoint yet because traps haven't been set up,
+	      * but we'll just grab the UART (serial_kgdb_hook did that)
+	      * and initialize.  We'll breakpoint in traps.c as soon
+	      * as it's ready.
+	      */
+
+	     set_debug_traps();
+        }
+#endif
 
 #ifdef CONFIG_VT
 #if defined(CONFIG_VGA_CONSOLE)
diff -Nru linux-2.4.6-dist/arch/i386/kernel/traps.c linux-2.4.6-kgdb/arch/i386/kernel/traps.c
--- linux-2.4.6-dist/arch/i386/kernel/traps.c	Wed Jul 25 13:53:09 2001
+++ linux-2.4.6-kgdb/arch/i386/kernel/traps.c	Tue Jul 31 00:48:24 2001
@@ -86,6 +86,17 @@
 asmlinkage void spurious_interrupt_bug(void);
 asmlinkage void machine_check(void);
 
+#ifdef CONFIG_REMOTE_DEBUG
+
+extern char kgdb_initialized;
+extern int kgdb_active;
+extern int kgdb_stepping;
+
+extern void handle_exception(int sigval, struct pt_regs *regs);
+extern void breakpoint(void);
+
+#endif
+
 int kstack_depth_to_print = 24;
 
 /*
@@ -263,6 +274,16 @@
 		unsigned long fixup = search_exception_table(regs->eip);
 		if (fixup)
 			regs->eip = fixup;
+#ifdef CONFIG_REMOTE_DEBUG
+
+		/* This is not the main entry point for the remote debugger.
+		 * That's in entry.S's int3 (breakpoint) handler.  This code
+		 * just drops us into the debugger on the odd kernel fault.
+		 */
+
+		else if (kgdb_initialized)
+			handle_exception(signr, regs);
+#endif
 		else	
 			die(str, regs, error_code);
 		return;
@@ -432,6 +453,16 @@
 	 */
 	int sum, cpu = smp_processor_id();
 
+#ifdef CONFIG_REMOTE_DEBUG
+
+	/* If GDB is active, then we're sitting in a loop waiting for the
+	 * remote debugger, so the CPU may appear hung.  Skip the checks.
+	 */
+
+	if (kgdb_active) return;
+
+#endif
+
 	sum = apic_timer_irqs[cpu];
 
 	if (last_irq_sums[cpu] == sum) {
@@ -527,6 +558,25 @@
 
 	__asm__ __volatile__("movl %%db6,%0" : "=r" (condition));
 
+#ifdef CONFIG_REMOTE_DEBUG
+
+	/* If we running GDB on the kernel, then check for a single
+	 * step trap in kernel space and hand it off to the debugger.
+	 * If kgdb_stepping isn't set, then it's a spurious trap, so
+	 * ignore it, i.e, if we single stepped through a save_flags(),
+	 * then we'll get a trap later on after restore_flags()
+	 */
+
+	if ((condition & DR_STEP) && !(regs->xcs & 3)) {
+		if (kgdb_stepping) {
+			handle_exception(5, regs);	/* 5 is SIGTRAP */
+			return;
+		} else {
+			goto clear_TF;
+		}
+	}
+#endif
+
 	/* Mask out spurious debug traps due to lazy DR7 setting */
 	if (condition & (DR_TRAP0|DR_TRAP1|DR_TRAP2|DR_TRAP3)) {
 		if (!tsk->thread.debugreg[7])
@@ -817,21 +867,42 @@
  * Pentium F0 0F bugfix can have resulted in the mapped
  * IDT being write-protected.
  */
+
+/* Interrupt gate - masks off interrupts and can't be called from user space,
+ * only by a hardware interrupt, processor fault, or "INT n" instruction
+ * in kernel space (but that never happens)
+ */
+
 void set_intr_gate(unsigned int n, void *addr)
 {
 	_set_gate(idt_table+n,14,0,addr);
 }
 
+/* Trap gate - doesn't mask interrupts and can't be called from user space */
+
 static void __init set_trap_gate(unsigned int n, void *addr)
 {
 	_set_gate(idt_table+n,15,0,addr);
 }
 
+/* System gate - doesn't mask interrupts and can be called from user space,
+ * via an "INT n" instruction
+ */
+
 static void __init set_system_gate(unsigned int n, void *addr)
 {
 	_set_gate(idt_table+n,15,3,addr);
 }
 
+/* System interrupt gate - masks ints and can be called from user space */
+
+static void __init set_system_intr_gate(unsigned int n, void *addr)
+{
+	_set_gate(idt_table+n,14,3,addr);
+}
+
+/* Call gate - accessed via a far CALL rather than an exception or INT n */
+
 static void __init set_call_gate(void *a, void *addr)
 {
 	_set_gate(a,12,3,addr);
@@ -965,10 +1036,18 @@
 		EISA_bus = 1;
 #endif
 
+	/* Interrupts 1 and 3 are interrupt gates in case they were
+	 * generated within the kernel, in which case we want
+	 * interrupts masked off while the kernel debugger runs.
+	 * Additionally, interrupt 3 could be called from user space
+	 * by an "INT 3" inserted by a user space debugger, so it gets
+	 * a system interrupt gate.
+	 */
+
 	set_trap_gate(0,&divide_error);
-	set_trap_gate(1,&debug);
+	set_intr_gate(1,&debug);
 	set_intr_gate(2,&nmi);
-	set_system_gate(3,&int3);	/* int3-5 can be called from all */
+	set_system_intr_gate(3,&int3);	/* int3-5 can be called from all */
 	set_system_gate(4,&overflow);
 	set_system_gate(5,&bounds);
 	set_trap_gate(6,&invalid_op);
@@ -1004,5 +1083,12 @@
 	superio_init();
 	lithium_init();
 	cobalt_init();
+#endif
+
+#ifdef CONFIG_REMOTE_DEBUG
+	/* Traps are now setup - OK to fire off an initial breakpoint,
+	 * which should halt the kernel and hand control to the debugger.
+	 */
+	if (kgdb_initialized) breakpoint();
 #endif
 }
diff -Nru linux-2.4.6-dist/arch/i386/mm/fault.c linux-2.4.6-kgdb/arch/i386/mm/fault.c
--- linux-2.4.6-dist/arch/i386/mm/fault.c	Tue May 15 03:16:51 2001
+++ linux-2.4.6-kgdb/arch/i386/mm/fault.c	Wed Aug  1 12:39:33 2001
@@ -25,6 +25,10 @@
 
 extern void die(const char *,struct pt_regs *,long);
 
+#ifdef CONFIG_REMOTE_DEBUG
+extern char kgdb_initialized;
+#endif
+
 /*
  * Ugly, ugly, but the goto's result in better assembly..
  */
@@ -270,6 +274,13 @@
  * Oops. The kernel tried to access some bad page. We'll have to
  * terminate things with extreme prejudice.
  */
+
+#ifdef CONFIG_REMOTE_DEBUG
+	if (kgdb_initialized) {
+		handle_exception(11, regs);	/* 11 - SIGSEGV */
+		return;
+	}
+#endif
 
 	bust_spinlocks();
 
diff -Nru linux-2.4.6-dist/drivers/char/serial.c linux-2.4.6-kgdb/drivers/char/serial.c
--- linux-2.4.6-dist/drivers/char/serial.c	Sun May 20 15:11:38 2001
+++ linux-2.4.6-kgdb/drivers/char/serial.c	Wed Jul 25 14:00:34 2001
@@ -264,6 +264,8 @@
 static int IRQ_timeout[NR_IRQS];
 #ifdef CONFIG_SERIAL_CONSOLE
 static struct console sercons;
+#endif
+#if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_REMOTE_DEBUG)
 static int lsr_break_flag;
 #endif
 #if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
@@ -360,6 +362,17 @@
 #define DBG_CNT(s)
 #endif
 
+/* If kgdb is active is one of the serial ports, kgdb_index holds
+ * the port's offset in rs_table[].  No normal operations are permitted
+ * on a port running kgdb.
+ */
+
+static int kgdb_index = -1;
+
+#ifdef CONFIG_REMOTE_DEBUG
+void enable_kgdb_interrupts(void);
+#endif
+
 /*
  * tmp_buf is used as a temporary buffer by serial_write.  We need to
  * lock it in case the copy_from_user blocks while swapping in a page,
@@ -3133,7 +3146,7 @@
 
 	MOD_INC_USE_COUNT;
 	line = MINOR(tty->device) - tty->driver.minor_start;
-	if ((line < 0) || (line >= NR_PORTS)) {
+	if ((line < 0) || (line >= NR_PORTS) || (line == kgdb_index)) {
 		MOD_DEC_USE_COUNT;
 		return -ENODEV;
 	}
@@ -5285,6 +5298,12 @@
 		panic("Couldn't register callout driver\n");
 	
 	for (i = 0, state = rs_table; i < NR_PORTS; i++,state++) {
+#ifdef CONFIG_REMOTE_DEBUG
+		if (i == kgdb_index) {
+			enable_kgdb_interrupts();
+			continue;
+		}
+#endif
 		state->magic = SSTATE_MAGIC;
 		state->line = i;
 		state->type = PORT_UNKNOWN;
@@ -5307,7 +5326,7 @@
 			autoconfig(state);
 	}
 	for (i = 0, state = rs_table; i < NR_PORTS; i++,state++) {
-		if (state->type == PORT_UNKNOWN)
+		if ((state->type == PORT_UNKNOWN) || (i == kgdb_index))
 			continue;
 		if (   (state->flags & ASYNC_BOOT_AUTOCONF)
 		    && (state->flags & ASYNC_AUTO_IRQ)
@@ -5564,12 +5583,10 @@
  * Serial console driver
  * ------------------------------------------------------------
  */
-#ifdef CONFIG_SERIAL_CONSOLE
+#if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_REMOTE_DEBUG)
 
 #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
 
-static struct async_struct async_sercons;
-
 /*
  *	Wait for transmitter & holding register to empty
  */
@@ -5595,6 +5612,12 @@
 	}	
 }
 
+#endif
+
+
+#ifdef CONFIG_SERIAL_CONSOLE
+
+static struct async_struct async_sercons;
 
 /*
  *	Print a string to the serial port trying not to disturb
@@ -5821,6 +5844,215 @@
 void __init serial_console_init(void)
 {
 	register_console(&sercons);
+}
+#endif
+
+/*
+ *   Hooks for remote GDB driver
+ *
+ * GDB has a mode ("target remote") which allows it to debug a program
+ * via a simple serial protocol, documented in GDB's "remote.c" file.
+ * In our case, the "program" is the Linux kernel itself, and the
+ * protocol runs over a standard serial port.  Standard configuration
+ * is to run a null modem cable between two machines, then GDB can be
+ * run on one and be used to breakpoint, single step, and do all that
+ * neat source debugger stuff to the kernel on the other machine.
+ *
+ * If the "kgdb" option is given to the kernel, serial_kgdb_hook(index) is
+ * called which sets up for remote GDB on the "index"th serial line.
+ * The index is squirreled away in kgdb_index, to make sure the normal
+ * serial code doesn't try to init the UART or open the device.
+ * A special interrupt handler is installed, and the putDebugChar() and
+ * getDebugChar() functions are exported, along with kgdb_interruptible(),
+ * which tells the system's state:
+ *
+ *    kgdb_interruptible(1) - system running,
+ *                            CNTL-C from the remote triggers a breakpoint
+ *    kgdb_interruptible(0) - system halted,
+ *                            characters from the remote go to getDebugChar()
+ */
+
+#ifdef CONFIG_REMOTE_DEBUG
+
+void breakpoint(void);
+
+static struct async_struct async_kgdb;
+static int kgdb_interrupts_active = 0;
+
+static void rs_interrupt_kgdb(int irq, void *dev_id, struct pt_regs *regs)
+{
+	while (serial_in(&async_kgdb, UART_LSR) & UART_LSR_DR) {
+		if (serial_in(&async_kgdb, UART_RX) == '\003') {
+			breakpoint();
+			return;
+		}
+	}
+}
+
+int serial_kgdb_hook(int index)
+{
+	struct async_struct *info;
+        struct serial_state *state;
+        unsigned cval;
+        int     baud = 9600;
+        int     bits = 8;
+        int     parity = 'n';
+        int     cflag = CREAD | HUPCL | CLOCAL;
+        int     quot = 0;
+
+        kgdb_index = index;
+
+        /*
+         *      Now construct a cflag setting.
+         */
+        switch(baud) {
+	case 1200:
+		cflag |= B1200;
+		break;
+	case 2400:
+		cflag |= B2400;
+		break;
+	case 4800:
+		cflag |= B4800;
+		break;
+	case 19200:
+		cflag |= B19200;
+		break;
+	case 38400:
+		cflag |= B38400;
+		break;
+	case 57600:
+		cflag |= B57600;
+		break;
+	case 115200:
+		cflag |= B115200;
+		break;
+	case 9600:
+	default:
+		cflag |= B9600;
+		break;
+        }
+        switch(bits) {
+	case 7:
+		cflag |= CS7;
+		break;
+	default:
+	case 8:
+		cflag |= CS8;
+		break;
+        }
+        switch(parity) {
+	case 'o': case 'O':
+		cflag |= PARODD;
+		break;
+	case 'e': case 'E':
+		cflag |= PARENB;
+		break;
+        }
+
+        /*
+         *      Divisor, bytesize and parity
+         */
+        state = rs_table + index;
+	info = &async_kgdb;
+	info->magic = SERIAL_MAGIC;
+	info->state = state;
+	info->port = state->port;
+	info->flags = state->flags;
+#ifdef CONFIG_HUB6
+	info->hub6 = state->hub6;
+#endif
+	info->io_type = state->io_type;
+	info->iomem_base = state->iomem_base;
+	info->iomem_reg_shift = state->iomem_reg_shift;
+        quot = state->baud_base / baud;
+        cval = cflag & (CSIZE | CSTOPB);
+#if defined(__powerpc__) || defined(__alpha__)
+        cval >>= 8;
+#else /* !__powerpc__ && !__alpha__ */
+        cval >>= 4;
+#endif /* !__powerpc__ && !__alpha__ */
+        if (cflag & PARENB)
+                cval |= UART_LCR_PARITY;
+        if (!(cflag & PARODD))
+                cval |= UART_LCR_EPAR;
+
+
+        /*
+         *      Set DTR and RTS high along with OUT1 and OUT2 (to
+         *      enable interrupts) and set speed.
+	 */
+	serial_out(info, UART_LCR, cval | UART_LCR_DLAB);	/* set DLAB */
+	serial_out(info, UART_DLL, quot & 0xff);	/* LS of divisor */
+	serial_out(info, UART_DLM, quot >> 8);		/* MS of divisor */
+	serial_out(info, UART_LCR, cval);		/* reset DLAB */
+	serial_out(info, UART_IER, 0);			/* int off for now */
+	/* serial_out(info, UART_MCR, UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT1 | UART_MCR_OUT2); */
+	serial_out(info, UART_MCR, UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2);
+
+        /*
+         *      If we read 0xff from the LSR, there is no UART here.
+         */
+	if (serial_in(info, UART_LSR) == 0xff) {
+                return -1;
+        }
+        return 0;
+}
+
+static void enable_kgdb_interrupts(void)
+{
+        /* This routine gets called from rs_init(), and sets up the
+	 * IRQ handler and I/O block for the KGDB debugger.  We don't
+	 * need this to make KGDB work - we only need it to debug
+	 * asynchronously (hit CTRL-C on the debugger and break into
+	 * the kernel).  We didn't do this in serial_kgdb_hook() since
+	 * IRQs hadn't been initialized yet!
+	 */
+
+        /* Allocate the IRQ (we don't share it) and IO ports */
+
+        if (request_irq(async_kgdb.state->irq, rs_interrupt_kgdb, 0,
+                        "serial(kgdb)", NULL)) {
+                printk("Can't get KGDB IRQ - no asynchronous debugging\n");
+        }
+
+	/* enable UART recv data interrupt */
+	serial_out(&async_kgdb, UART_IER, UART_IER_RDI);
+
+	rs_interrupt_kgdb(async_kgdb.state->irq, NULL, NULL);
+
+	kgdb_interrupts_active = 1;
+
+        request_region(async_kgdb.port, 8, "serial(kgdb)");
+}
+
+void putDebugChar(char kgdb_char)
+{
+        wait_for_xmitr(&async_kgdb);
+	serial_out(&async_kgdb, UART_TX, kgdb_char);
+        wait_for_xmitr(&async_kgdb);
+}
+
+char getDebugChar(void)
+{
+        int lsr;
+
+        do {
+                lsr = serial_in(&async_kgdb, UART_LSR);
+        } while (!(lsr & UART_LSR_DR));
+
+        return serial_in(&async_kgdb, UART_RX);
+}
+
+void kgdb_interruptible(int i)
+{
+        if (i && kgdb_interrupts_active) {
+                /* KGDB interruptible - enable UART recv data interrupt */
+                serial_out(&async_kgdb, UART_IER, UART_IER_RDI);
+        } else {
+                /* KGDB not interruptible - disable UART interrupts */
+                serial_out(&async_kgdb, UART_IER, 0);
+        }
 }
 #endif
 


^ permalink raw reply	[flat|nested] 989+ messages in thread
* ext3-2.4-0.9.4
@ 2001-07-26  7:34 Andrew Morton
  2001-07-26 11:08 ` ext3-2.4-0.9.4 Matthias Andree
                   ` (2 more replies)
  0 siblings, 3 replies; 989+ messages in thread
From: Andrew Morton @ 2001-07-26  7:34 UTC (permalink / raw)
  To: lkml, ext3-users

An update to the ext3 filesystem for 2.4 kernels is available at

	http://www.uow.edu.au/~andrewm/linux/ext3/

The diffs are against linux-2.4.7 and linux-2.4.6-ac5.

The changelog is there.  One rarely-occurring but oopsable bug
was fixed and several quite significant performance enhancements
have been made.  These are in addition to the performance fixes
which went into 0.9.3.

Ted has put out a prelease of e2fsprogs-1.23 which supports
filesystem type `auto' in /etc/fstab, so it is now possible to
switch between ext3- and non-ext3-kernels without changing
any configuration.

It is recommended that users of earlier ext3 releases upgrade
to 0.9.4.

For people who are undertaking performance testing, it is perhaps
useful to point out that ext3 operates in one of three different
journalling modes, and that these modes have very different
functionality and very different performance characteristics.
Really, you need to test all three and balance the functionality
which each mode offers against the throughput which you obtain
in your application.


The modes are:

data=writeback

  This is classic metadata-only journalling.  File data is written
  back to the main fs lazily.  After a crash+recovery the fs's
  structural integrity is preserved, but the *contents* of files
  can and will contain old, stale data.  Potentially hundreds of
  megabytes of it.

  This is the fastest mode for normal filesystem applications.

data=ordered

  The fs ensures that file data is written into the main fs prior
  to committing its metadata.  Hence after a crash+recovery, your
  files will contain the correct data.

  This is the default operating mode and throughput is good. It
  adds about one second to a four minute kernel compile when
  compared with ext2.   Under heavier loads the difference
  becomes larger.

data=journal

  All data (as well as to metadata) is written to the journal
  before it is released to the main fs for writeback.
  
  This is a specialised mode - for normal fs usage you're better
  off using ordered data, which has the same benefits of not corrupting
  data after crash+recovery.  However for applications which require
  synchronous operation such as mail spools and synchronously exported
  NFS servers, this can be a performance win.  I have seen dbench
  figures in this mode (where the files were opened O_SYNC) running
  at ten times the throughput of ext2.  Not that this is the expected
  benefit for other applications!


Looking at the above issues, one may initially think that the
post-recovery data corruption is a serious issue with writeback mode,
and that there are big advantages to using journalled or ordered data.

However, even in these modes the affected files may be shorter-than-expected
after recovery, because the app hadn't finished writing them yet.  And
usually, a truncated file is just as useless as one which contains
garbage - it needs to be deleted.

It's not really as simple as that - for small (< a few hundred k) files,
it tends to be the case that either the whole file is intact after a crash,
or none of it is.  This is because the journalling mechanism starts a
new transaction every five seconds, and a typical open/write/close operation
usually fits entirely inside this window.

There is also a security issue to be considered: a recovered writeback-mode
filesystem will expose other people's old data to unintended recipients.


Hopefully this description will help people make their deployment choices.
If not, assistance is available on the ext3-users@redhat.com mailing list.

-

^ permalink raw reply	[flat|nested] 989+ messages in thread

end of thread, other threads:[~2021-09-25 18:31 UTC | newest]

Thread overview: 989+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-08-06 23:59 [PATCH] one of $BIGNUM devfs races Alan Cox
2001-08-09  4:09 ` How/when to send patches - (was Re: [PATCH] one of $BIGNUM devfs races) Neil Brown
2001-08-09  5:39   ` Linus Torvalds
2001-08-09 20:36     ` Rik van Riel
2001-08-09  7:42   ` Alan Cox
     [not found] ` <no.id>
1998-08-26  0:03   ` Fuzzy hash stuff.. (was Re: 2.1.xxx makes Electric Fence 22x slower) Jamie Lokier
1998-09-10  6:34   ` GPS Leap Second Scheduled! Jamie Lokier
1998-09-11  6:18     ` Michael Shields
1998-12-11 14:16   ` Access to I/O-mapped / Memory-mapped resources Jamie Lokier
1999-06-10 18:32   ` [parisc-linux] booting problems Stan Sieler
1999-06-21 17:03   ` Hack to head.S John David Anglin
1999-06-21 19:38   ` John David Anglin
2000-07-28 22:10   ` RLIM_INFINITY inconsistency between archs Adam Sampson
2000-07-28 22:20   ` Adam Sampson
2000-07-29 13:23     ` Miquel van Smoorenburg
2000-10-11 20:11   ` [parisc-linux] __hp9000s700 predefined John David Anglin
2000-11-09 17:39   ` testcase for hppa64 gcc bug John David Anglin
2000-12-06  4:12     ` Jeffrey A Law
2000-12-06  4:14       ` John David Anglin
2000-12-06  5:28         ` Alan Modra
2001-02-01  1:19           ` [parisc-linux] " Jeffrey A Law
2000-11-09 23:57   ` abort in eliminate_regs compiling glob.c from glibc John David Anglin
2000-11-10  0:36     ` Alan Modra
2000-11-10  2:50       ` John David Anglin
2000-11-14 21:40     ` John David Anglin
2001-01-27 20:12       ` Richard Henderson
2000-12-14  0:48   ` pa reload problem John David Anglin
2000-12-14  3:43     ` Jeffrey A Law
2000-12-14 16:40       ` John David Anglin
2000-12-27 20:08         ` Jeffrey A Law
2000-12-28  5:18           ` John David Anglin
2000-12-16 20:38       ` [parisc-linux] PATCH: Adjust label usage count for new insns [was Re: pa reload problem] John David Anglin
2001-01-02  9:51         ` Jeffrey A Law
2001-04-12 18:28   ` [linux-lvm] Lost harddrive space Heinz J. Mauelshagen
2001-04-24 18:02   ` Heinz J. Mauelshagen
2001-04-27 23:30   ` [patch] linux likes to kill bad inodes Andreas Dilger
2001-06-26 22:24   ` Tracking down semaphore usage/leak Ken Brownfield
2001-07-23 20:57   ` user-mode port 0.44-2.4.7 Alan Cox
2001-07-23 21:14     ` Chris Friesen
2001-07-24 17:51   ` patch for allowing msdos/vfat nfs exports Alan Cox
2001-07-24 17:56   ` Externally transparent routing Alan Cox
2001-07-25  9:43     ` Jordi Verwer
2001-07-25 19:12   ` user-mode port 0.44-2.4.7 Alan Cox
2001-07-25 19:45     ` my patches won't compile under 2.4.7 Kirk Reiser
2001-07-25 19:58       ` Alan Cox
2001-07-25 20:10         ` Kirk Reiser
2001-07-31 21:54       ` Richard Gooch
2001-08-01 11:14         ` Kirk Reiser
2001-08-01 14:57         ` Richard Gooch
2001-07-25 23:49   ` user-mode port 0.44-2.4.7 Alan Cox
2001-07-26  0:20   ` Replacing the Console driver Alan Cox
2001-07-26  0:20     ` Alan Cox
2001-07-26  1:32     ` Ralf Baechle
2001-07-26  1:51       ` William Jhun
2001-07-26 11:59   ` IGMP join/leave time variability Alan Cox
2001-07-26 15:52   ` Validating Pointers Alan Cox
2001-07-26 17:09     ` tpepper
2001-07-26 17:12       ` Alan Cox
2001-07-27  3:19         ` tpepper
2001-07-27  9:47           ` Alan Cox
2001-07-26 17:51   ` IGMP join/leave time variability Alan Cox
2001-07-26 22:10   ` Proliant ML530, Megaraid 493 (Elite 1600), 2.4.7, timeout & abort Alan Cox
2001-07-26 22:20   ` Support for serial console on legacy free machines Alan Cox
2001-07-30 17:47     ` Khalid Aziz
2001-07-27  9:27   ` IGMP join/leave time variability David S. Miller
2001-07-27  9:54   ` 2.4.7 + VIA Pro266 + 2xUltraTx2 lockups Alan Cox
2001-07-28  4:03     ` Robin Humble
2001-07-27 10:00   ` Hard disk problem: Alan Cox
2001-07-27 15:22     ` Steve Underwood
2001-07-27 19:18       ` Bill Pringlemeir
2001-07-27 13:27   ` ReiserFS / 2.4.6 / Data Corruption Alan Cox
2001-07-27 13:38     ` bvermeul
2001-07-27 13:39       ` Alan Cox
2001-07-27 13:47         ` bvermeul
2001-07-27 13:49           ` Alan Cox
2001-07-28 14:16         ` Matthew Gardiner
2001-08-08 18:42         ` Stephen C. Tweedie
2001-07-27 14:16     ` Philip R. Auld
2001-07-27 14:38       ` Jordan
2001-07-27 14:51       ` Hans Reiser
2001-07-27 15:12         ` Philip R. Auld
2001-07-27 14:23     ` Hans Reiser
2001-07-27 14:21   ` Alan Cox
2001-07-28 14:18     ` Matthew Gardiner
2001-07-28 16:25       ` Alan Cox
2001-07-28 16:27         ` binary modules (was Re: ReiserFS / 2.4.6 / Data Corruption) Jeff Garzik
2001-07-28 18:22           ` Andreas Dilger
2001-07-28 19:02           ` Rik van Riel
2001-07-28 17:44         ` Richard Gooch
2001-07-29 10:15         ` ReiserFS / 2.4.6 / Data Corruption Matthew Gardiner
2001-07-29 11:10           ` Chris Wedgwood
2001-07-29 14:28             ` Luigi Genoni
2001-07-28 16:43       ` missing symbols in 2.4.7-ac2 Thomas Kotzian
2001-07-29  1:53         ` Andrew Morton
2001-07-29 10:21           ` Hugh Dickins
2001-07-29 10:48             ` Andrew Morton
2001-07-29 11:16       ` ReiserFS / 2.4.6 / Data Corruption Christoph Hellwig
2001-07-27 15:06   ` Alan Cox
2001-07-27 15:26     ` Joshua Schmidlkofer
2001-07-27 15:46       ` Hans Reiser
2001-07-27 17:46         ` Christoph Rohland
2001-07-27 18:02           ` Hans Reiser
2001-07-27 18:10         ` Dustin Byford
2001-07-27 19:20           ` Hans Reiser
2001-07-28 16:10         ` Henning P. Schmiedehausen
2001-07-27 15:31     ` Hans Reiser
2001-07-27 16:25       ` Kip Macy
2001-07-27 17:29         ` Ville Herva
2001-07-27 17:40           ` Alan Cox
2001-07-27 17:43             ` Ville Herva
2001-07-27 20:46     ` Lehmann 
2001-07-27 21:13       ` Hans Reiser
2001-07-27 15:51   ` Alan Cox
2001-07-27 16:41     ` Hans Reiser
2001-07-27 16:50   ` ext3-2.4-0.9.4 Alan Cox
2001-07-27 17:41     ` ext3-2.4-0.9.4 Lawrence Greenfield
2001-07-27 21:16       ` ext3-2.4-0.9.4 Daniel Phillips
2001-07-28 16:46     ` ext3-2.4-0.9.4 Patrick J. LoPresti
2001-07-28 19:03       ` ext3-2.4-0.9.4 Alan Cox
2001-07-29  1:53         ` ext3-2.4-0.9.4 Chris Wedgwood
2001-07-30  0:32           ` ext3-2.4-0.9.4 Chris Mason
2001-07-30 13:49             ` ext3-2.4-0.9.4 Patrick J. LoPresti
2001-07-30 13:55               ` ext3-2.4-0.9.4 Alan Cox
2001-07-30 14:38                 ` ext3-2.4-0.9.4 Patrick J. LoPresti
2001-07-30 16:27                   ` ext3-2.4-0.9.4 Rik van Riel
2001-07-31  1:29                 ` ext3-2.4-0.9.4 Andrew McNamara
2001-07-30 16:22               ` ext3-2.4-0.9.4 Rik van Riel
2001-07-30 16:46                 ` ext3-2.4-0.9.4 Patrick J. LoPresti
2001-07-30 17:03                   ` ext3-2.4-0.9.4 Rik van Riel
2001-07-31  0:28                     ` ext3-2.4-0.9.4 Matthias Andree
2001-07-31  0:33                       ` ext3-2.4-0.9.4 Rik van Riel
2001-07-30 17:11                 ` ext3-2.4-0.9.4 Lawrence Greenfield
2001-07-30 17:25                   ` ext3-2.4-0.9.4 Rik van Riel
2001-07-30 17:38                     ` ext3-2.4-0.9.4 Chris Wedgwood
2001-07-30 17:49                     ` ext3-2.4-0.9.4 Lawrence Greenfield
2001-07-30 17:59                       ` ext3-2.4-0.9.4 Chris Mason
2001-07-30 21:39                         ` ext3-2.4-0.9.4 Chris Wedgwood
2001-07-31  0:25                     ` ext3-2.4-0.9.4 Matthias Andree
2001-07-31  0:22                   ` ext3-2.4-0.9.4 Matthias Andree
2001-08-03 17:24                   ` ext3-2.4-0.9.4 Jan Harkes
     [not found]                     ` <mit.lcs.mail.linux-kernel/20010803132457.A30127@cs.cmu.edu>
2001-08-03 21:21                       ` ext3-2.4-0.9.4 Patrick J. LoPresti
2001-08-04  3:13                         ` ext3-2.4-0.9.4 Matthias Andree
2001-08-04  3:20                           ` ext3-2.4-0.9.4 Rik van Riel
2001-08-04  3:50                           ` ext3-2.4-0.9.4 Patrick J. LoPresti
2001-08-04  3:14                             ` ext3-2.4-0.9.4 Gregory Maxwell
2001-08-04  4:26                             ` ext3-2.4-0.9.4 Mike Castle
2001-08-04  4:30                               ` ext3-2.4-0.9.4 Rik van Riel
2001-08-04  4:29                             ` ext3-2.4-0.9.4 Matthias Andree
2001-08-06 16:10                               ` fsync() on directories (was Re: ext3-2.4-0.9.4) Patrick J. LoPresti
2001-08-07  2:09                         ` ext3-2.4-0.9.4 James Antill
2001-07-31  0:16                 ` ext3-2.4-0.9.4 Matthias Andree
2001-07-29  1:59         ` ext3-2.4-0.9.4 Andrew Morton
2001-07-30 21:03       ` rename() (was Re: ext3-2.4-0.9.4) Anthony DeBoer
2001-07-27 16:55   ` ReiserFS / 2.4.6 / Data Corruption Alan Cox
2001-07-27 17:45   ` ext3-2.4-0.9.4 Alan Cox
2001-07-27 17:52   ` ext3-2.4-0.9.4 Alan Cox
2001-07-27 19:31   ` Linux 2.4.7-ac1 PNP Oops on shutdown Alan Cox
2001-07-27 20:19   ` VIA KT133A / athlon / MMX Alan Cox
2001-07-27 20:37     ` Chris Wedgwood
2001-07-27 20:40       ` Alan Cox
     [not found]         ` <3B61E5BC.5780E1E@randomlogic.com>
2001-07-27 22:12           ` Paul G. Allen
2001-07-28  0:04         ` Kurt Garloff
2001-07-28  0:23         ` David Lang
2001-07-28 11:11           ` Kurt Garloff
2001-07-28 11:49             ` Victor Julien
2001-07-29  0:37             ` J. Dow
2001-07-28 12:47           ` Alan Cox
2001-07-31 19:53             ` David Lang
2001-07-29  4:03         ` Gav
2001-07-29 16:10           ` Mike Frisch
2001-07-30  7:15           ` Steffen Persvold
2001-07-30 10:17             ` Maciej Zenczykowski
2001-07-30 14:35               ` Luigi Genoni
2001-07-30 13:59             ` Gav
2001-07-28 17:29       ` PEIFFER Pierre
2001-07-28 12:21         ` Kurt Garloff
2001-07-28 22:00           ` PEIFFER Pierre
2001-07-29 20:28             ` Kurt Garloff
2001-07-30  6:04               ` Daniela Engert
2001-07-30 13:44                 ` Kurt Garloff
2001-07-30 14:15                   ` Michael
2001-07-30 15:46                     ` Kurt Garloff
2001-07-30 18:43                       ` Kurt Garloff
2001-07-30 20:44                         ` Gerbrand van der Zouw
2001-07-30 16:47                   ` Daniela Engert
2001-07-27 21:24   ` ReiserFS / 2.4.6 / Data Corruption Alan Cox
2001-07-27 21:47     ` Hans Reiser
2001-07-27 22:10   ` Alan Cox
2001-07-28  7:36     ` Hans Reiser
2001-07-28 14:08       ` Chris Mason
2001-07-27 23:46   ` Linx Kernel Source tree and metrics Alan Cox
2001-07-28  0:20     ` Paul G. Allen
2001-07-28  1:33       ` Paul G. Allen
2001-07-28 19:08   ` binary modules (was Re: ReiserFS / 2.4.6 / Data Corruption) Alan Cox
2001-07-29 10:24     ` Matthew Gardiner
2001-07-29 11:07       ` Chris Wedgwood
2001-07-31 15:19       ` Florian Weimer
2001-07-29  0:38   ` make rpm Alan Cox
2001-07-29  7:05   ` binary modules (was Re: ReiserFS / 2.4.6 / Data Corruption) Richard Gooch
2001-07-29 10:00     ` Chris Wedgwood
2001-07-31 15:18       ` Florian Weimer
2001-08-02  0:20   ` 2.4.2 ext2fs corruption status Alan Cox
2001-08-01 19:40     ` Mohamed DOLLIAZAL
2001-08-02  0:35   ` Memory Write Ordering Question Alan Cox
2001-08-02 12:24   ` SMP possible with AMD CPUs? Alan Cox
2001-08-03  7:07     ` Eric W. Biederman
2001-08-02 12:27   ` 2.4.2 ext2fs corruption status Alan Cox
2001-08-02 12:33   ` 2.4 freezes on init Alan Cox
2001-08-02 14:26   ` setsockopt(..,SO_RCVBUF,..) sets wrong value Alan Cox
2001-08-02 14:35   ` kernel gdb for intel Alan Cox
2001-08-03 10:07     ` Amit S. Kale
2001-08-02 14:47   ` 3ware Escalade problems? Adaptec? Alan Cox
2001-08-02 15:03   ` [PATCH] make psaux reconnect adjustable Alan Cox
2001-08-02 15:08   ` [RFT] Support for ~2144 SCSI discs Alan Cox
2001-08-02 15:13   ` Richard Gooch
2001-08-02 15:31   ` Alan Cox
2001-08-02 23:17     ` Douglas Gilbert
2001-08-02 15:36   ` [RFT] #2 " Alan Cox
2001-08-02 15:47   ` Richard Gooch
2001-08-02 16:34   ` Alan Cox
2001-08-02 17:00   ` Richard Gooch
2001-08-02 17:34   ` [PATCH] make psaux reconnect adjustable Alan Cox
2001-08-02 19:41   ` [PATCH] vxfs fix Alan Cox
2001-08-02 20:57     ` Andreas Dilger
2001-08-03 11:54   ` kernel gdb for intel Alan Cox
2001-08-03 17:02   ` DoS with tmpfs #3 Alan Cox
2001-08-04 23:15   ` Question regarding ACPI Alan Cox
2001-08-05  0:46   ` Error when compiling 2.4.7ac6 Alan Cox
2001-08-05  1:01   ` MTRR and Athlon Processors Alan Cox
2001-08-05  1:02     ` Paul G. Allen
2001-08-05  2:28       ` Dave Jones
2001-08-05  2:35         ` Paul G. Allen
2001-08-05  1:39   ` Error when compiling 2.4.7ac6 Anton Altaparmakov
2001-08-05  1:43   ` Alan Cox
2001-08-05  1:58   ` Anton Altaparmakov
2001-08-05 13:04   ` SMP Support for AMD Athlon MP motherboards Alan Cox
2001-08-05 13:20   ` 3c509: broken(verified) Alan Cox
2001-08-05 14:23     ` Nico Schottelius
2001-08-05 16:00       ` safemode
2001-08-06 15:54         ` Nico Schottelius
2001-08-06 22:30           ` Nicholas Knight
2001-08-06 13:51   ` Problem in Interrupt Handling Alan Cox
2001-08-06 23:23   ` Virtual memory error when restarting X Alan Cox
2001-08-06 23:54   ` [PATCH] one of $BIGNUM devfs races Alan Cox
2001-08-06 23:55   ` Richard Gooch
2001-08-06 23:59   ` Richard Gooch
2001-08-07 14:17   ` Encrypted Swap Alan Cox
2001-08-07 15:16     ` Crutcher Dunnavant
2001-08-07 16:01       ` Chris Wedgwood
2001-08-07 16:22   ` [PATCH] one of $BIGNUM devfs races Alan Cox
2001-08-07 19:04   ` Alan Cox
2001-08-07 19:16     ` Alexander Viro
2001-08-08 21:16       ` H. Peter Anvin
2001-08-08 21:47         ` Alexander Viro
2001-08-08 23:29         ` Richard Gooch
2001-08-07 19:09   ` Richard Gooch
2001-08-07 19:20     ` Alexander Viro
2001-08-07 20:03   ` cpu not detected(x86) Alan Cox
2001-08-08 11:50   ` [kbuild-devel] Announce: Kernel Build for 2.5, Release 1 is Alan Cox
2001-08-08 15:20   ` [PATCH] parport_pc.c PnP BIOS sanity check Alan Cox
2001-08-08 16:13     ` Richard B. Johnson
2001-08-08 21:58     ` H. Peter Anvin
2001-08-08 22:12       ` Russell King
2001-08-10  9:18       ` Eric W. Biederman
2001-08-08 16:53   ` [Dri-devel] Re: DRM Linux kernel merge (update) needed, soon Alan Cox
2001-08-08 23:02   ` 386 boot problems with 2.4.7 and 2.4.7-ac9 Alan Cox
2001-08-09  9:08   ` Swapping for diskless nodes Alan Cox
2001-08-09 10:50     ` Ingo Oeser
2001-08-09 10:50       ` Ingo Oeser
2001-08-09 13:12       ` Dirk W. Steinberg
2001-08-09 13:12         ` Dirk W. Steinberg
2001-08-09 20:47       ` Rik van Riel
2001-08-09 20:47         ` Rik van Riel
2001-08-09 14:17     ` Dirk W. Steinberg
2001-08-09 14:36       ` Andreas Haumer
2001-08-11  1:11         ` Pavel Machek
2001-08-09 19:27     ` Pavel Machek
2001-08-09 20:38     ` Rik van Riel
2001-08-09 15:14   ` Alan Cox
2001-08-11  1:17     ` Pavel Machek
2001-08-09 15:19   ` Alan Cox
2001-08-09 15:19     ` Alan Cox
2001-08-09 17:09     ` Eric W. Biederman
2001-08-09 17:09       ` Eric W. Biederman
2001-08-09 20:58       ` Rik van Riel
2001-08-09 20:58         ` Rik van Riel
2001-08-10  8:11         ` Eric W. Biederman
2001-08-10  8:11           ` Eric W. Biederman
2001-08-10  0:22   ` esssound.o once more Alan Cox
2001-08-10  9:28   ` question on best "Linux" Internals book Alan Cox
2001-08-10  9:33   ` Q: Kernel patching Alan Cox
2001-08-10 14:20   ` [PATCH] double DRM - fixes Alan Cox
2001-08-10 15:59   ` about mips IDE DMA disk problem Alan Cox
2001-08-10 15:59     ` Alan Cox
2001-08-10 18:05     ` Ilya Volynets
2001-08-10 18:05       ` Ilya Volynets
2001-08-10 18:23       ` Ralf Baechle
2001-08-10 18:26         ` Ilya Volynets
2001-08-10 18:41           ` Hartvig Ekner
2001-08-10 19:58             ` Ilya Volynets
2001-08-10 22:01   ` [PATCH] LVM snapshot support for reiserfs and others Alan Cox
2001-08-10 22:35   ` [PATCH] Adaptec I2O RAID driver (kernel 2.4.7) Alan Cox
2001-08-10 22:43   ` free_task_struct() called too early? Alan Cox
2001-08-10 22:57     ` Linus Torvalds
2001-08-11 16:45   ` VM nuisance Alan Cox
2001-08-11 20:12   ` [PATCH] Adaptec I2O RAID driver (kernel 2.4.7) Alan Cox
2001-08-12 11:49   ` struct page to 36 (or 64) bit bus address? Alan Cox
2001-08-12 12:04   ` Bug report : Build problem with kernel 2.4.8 Alan Cox
2001-08-12 20:14   ` PnP BIOS Alan Cox
2001-08-12 22:30   ` Hang problem on Tyan K7 Thunder resolved -- SB Live! heads-up Alan Cox
2001-08-12 23:37   ` Linux 2.4.8-ac2 Alan Cox
2001-08-13  3:23     ` Sven Goethel
2001-08-13  0:32   ` 2.4.9-pre1 unresolved symbols in fat.o/smbfs.o Alan Cox
2001-08-13  0:36     ` Linus Torvalds
2001-08-13  0:51       ` Alessandro Suardi
2001-08-13  2:33     ` Colonel
2001-08-13 11:37   ` Lost interrupt with HPT370 Alan Cox
2001-08-13 17:23     ` Kevin P. Fleming
2001-08-14  5:50     ` [PATCH] " Kevin P. Fleming
2001-08-14  7:49     ` Wojtek Pilorz
2001-08-13 12:16   ` Hang problem on Tyan K7 Thunder resolved -- SB Live! heads-up Alan Cox
2001-08-13 12:19     ` rui.p.m.sousa
2001-08-13 12:19   ` Alan Cox
2001-08-13 12:35   ` Alan Cox
2001-08-13 12:43     ` Tobias Ringstrom
2001-08-13 12:47   ` Anton Altaparmakov
2001-08-13 13:20   ` IDE UDMA/ATA Suckage, or something else? Alan Cox
2001-08-13 18:52     ` Paul G. Allen
2001-08-13 13:51   ` struct page to 36 (or 64) bit bus address? David S. Miller
2001-08-13 14:09   ` Alan Cox
2001-08-13 14:21   ` David S. Miller
2001-08-13 19:07     ` Gérard Roudier
2001-08-13 19:42     ` David S. Miller
2001-08-13 15:10   ` Alan Cox
2001-08-13 17:57   ` add Tvia cyberpro 5050 to sound/trident.c Alan Cox
2001-08-13 20:22   ` IDE UDMA/ATA Suckage, or something else? Alan Cox
2001-08-14  2:32     ` Paul G. Allen
2001-08-13 20:24   ` Are we going too fast? Alan Cox
2001-08-13 21:06     ` Anthony Barbachan
2001-08-13 22:07   ` 2.4.9-pre2 breaks UFS as a module Alan Cox
2001-08-14 20:29     ` Alessandro Suardi
2001-08-13 23:19   ` how to install redhat linux to a scsi disk for which driver is no Alan Cox
2001-08-14 20:32   ` NTFS R-Only error Alan Cox
2001-08-14 20:42   ` DoS tmpfs,ramfs, malloc, saga continues Alan Cox
2001-08-15 14:20     ` Szabolcs Szakacsits
2001-08-20 13:48       ` Andrey Savochkin
2001-08-14 20:47   ` Are we going too fast? Alan Cox
2001-08-15  0:07     ` PinkFreud
2001-08-15 11:40   ` 2.4.8 Resource leaks + limits Alan Cox
2001-08-15 16:53     ` Linus Torvalds
2001-08-15 18:51       ` Alan Cox
2001-08-15 19:57       ` Ingo Oeser
2001-08-15 20:15         ` Alan Cox
2001-08-15 21:30           ` Jesse Pollard
2001-08-15 20:57         ` Anton Altaparmakov
2001-08-16  1:12         ` Jesse Pollard
2001-08-15 22:14       ` Horst von Brand
2001-08-15 15:55   ` Implications of PG_locked and reference count in page structures Alan Cox
2001-08-15 16:09   ` Via chipset Alan Cox
2001-08-15 20:58   ` glibc Alan Cox
2001-08-15 20:58     ` glibc Alan Cox
2001-08-16  8:50     ` glibc Brian Murphy
2001-08-16 14:04       ` glibc Alan Cox
2001-08-16 14:04         ` glibc Alan Cox
2001-08-16 16:14         ` glibc Ralf Baechle
2001-08-16 19:09           ` glibc Martin Michlmayr
2001-08-16 20:05             ` glibc James Simmons
2001-08-16 20:10             ` glibc Soeren Laursen
2001-08-16 16:04       ` glibc H . J . Lu
2001-08-16 17:00         ` glibc Brian Murphy
2001-08-16 21:15           ` glibc H . J . Lu
2001-08-15 21:02   ` 2.4.9-pre[34] changes in drivers/char/vt.c broke Sparc64 Alan Cox
2001-08-15 22:00   ` Coding convention of function header comments Alan Cox
2001-08-16 14:56   ` [patch] zero-bounce highmem I/O Alan Cox
2001-08-17 10:18     ` Gerd Knorr
2001-08-16 16:02   ` Via chipset Alan Cox
2001-08-16 16:10   ` Spammer using linux kernel archives Alan Cox
2001-08-16 16:17     ` Tina Gasperson
2001-08-16 22:37   ` kernel threads Alan Cox
2001-08-21 12:15     ` Christian Widmer
2001-08-16 22:41   ` 2.4.9 does not compile [PATCH] Alan Cox
2001-08-16 22:48   ` David S. Miller
2001-08-17 21:12     ` Jes Sorensen
2001-08-16 22:55   ` Alan Cox
2001-08-16 23:02   ` David S. Miller
2001-08-17 21:59     ` David S. Miller
2001-08-16 23:08   ` Alan Cox
2001-08-17  8:58   ` 2.4.9 does not compile Alan Cox
2001-08-17  9:11   ` 2.4.9 does not compile [PATCH] Alan Cox
2001-08-17  9:17   ` Alan Cox
2001-08-17  9:25   ` Alan Cox
2001-08-17 10:27   ` initrd: couldn't umount Alan Cox
2001-08-17 10:48     ` Daniel Wagner
2001-08-17 11:16       ` Andreas Haumer
2001-08-17 12:50         ` Andreas Haumer
2001-08-17 10:28   ` K6 sig11 Bug detection Alan Cox
2001-08-17 14:30   ` Promise Ultra100(20268) address conflict with ServerWorks IDE Alan Cox
2001-08-17 14:51   ` Kernel panic problem in 2.4.7 Alan Cox
2001-08-17 15:11   ` Alan Cox
2001-08-17 15:23     ` Alan Cox
2001-08-17 15:32   ` Via usb problems Alan Cox
2001-08-17 20:57   ` 2.4.9 does not compile [PATCH] David S. Miller
2001-08-17 21:40   ` Alan Cox
2001-08-17 22:09   ` Alan Cox
2001-08-18  3:14     ` kfree safe in interrupt context? Victor Yodaiken
2001-08-19 11:44       ` Rusty Russell
2001-08-24  3:13         ` Victor Yodaiken
2001-08-17 22:11   ` 2.4.9 does not compile [PATCH] David S. Miller
2001-08-17 23:34     ` Daniel Phillips
2001-08-17 23:38     ` David S. Miller
2001-08-18 22:21   ` 2.4.9: GCC 3.0 problem in "acct.c" Alan Cox
2001-08-19 13:55   ` 2.4.x & Celeron = very slow system Alan Cox
2001-08-19 14:10   ` gcc-3.0 with 2.2.x ? Alan Cox
2001-08-20 10:26   ` BUG: pc_keyb.c Alan Cox
2001-08-20 10:57   ` [linux-lvm] LVM on Redhat 7.1 Heinz J . Mauelshagen
2001-08-20 14:17     ` Keith Hopkins
2001-08-20 14:34     ` Carlo Marcelo Arenas Belon
2001-08-20 15:07       ` Joe Thornber
2001-08-20 12:36   ` On Network Drivers Alan Cox
2001-08-21 10:11     ` Venu Gopal Krishna Vemula
2001-08-20 16:15   ` PATCH: linux-2.4.9/drivers/i2o to new module_{init,exit} interface Alan Cox
2001-08-20 16:33   ` sound crashes in 2.4 Alan Cox
2001-08-20 19:24     ` Chris Pockele
2001-08-20 23:08       ` Frank Davis
2001-08-24 11:01         ` Chris Pockele
2001-08-20 22:51   ` BUG: pc_keyb.c Alan Cox
2001-08-21 12:03   ` Linux 2.4.8-ac8 Alan Cox
2001-08-21 13:53   ` On Network Drivers Alan Cox
2001-08-21 13:58   ` massive filesystem corruption with 2.4.9 Alan Cox
2001-08-21 16:00     ` Kristian
2001-08-21 16:18       ` Christian Widmer
2001-08-21 13:59   ` i810 audio doesn't work " Alan Cox
2001-08-21 15:33     ` Jeff Chua
2001-08-21 17:33     ` Andris Pavenis
2001-08-21 17:42       ` Doug Ledford
2001-08-21 14:15   ` Qlogic/FC firmware Alan Cox
2001-08-21 14:17   ` Alan Cox
2001-08-21 14:24   ` Alan Cox
2001-08-21 14:54     ` Alexander Viro
2001-08-21 14:28   ` David S. Miller
2001-08-21 14:29   ` David S. Miller
2001-08-21 14:42     ` Rik van Riel
2001-08-21 15:30       ` Alan Cox
2001-08-21 15:49         ` christophe barbé
2001-08-21 22:45       ` Ricky Beam
2001-08-21 22:52         ` Alan Cox
2001-08-21 23:32           ` Ricky Beam
2001-08-22  0:24             ` Alan Cox
2001-08-22  0:35               ` Matthew Jacob
2001-08-22 13:15                 ` Jes Sorensen
2001-08-22 15:55                   ` Matthew Jacob
2001-08-22 16:17                     ` Matthew Jacob
2001-08-22 16:22                     ` David S. Miller
2001-08-22  5:19               ` Ricky Beam
2001-08-22 10:32                 ` Alan Cox
2001-08-22 13:29                   ` Ricky Beam
2001-08-22 13:49                     ` Alan Cox
2001-08-22 14:44                       ` Ricky Beam
2001-08-22 15:39                         ` Alan Cox
2001-08-22 18:46                           ` Ricky Beam
2001-08-22 19:05                             ` Alan Cox
2001-08-22 18:50                           ` David S. Miller
2001-08-22 14:07                     ` Jes Sorensen
2001-08-22 13:12                 ` Jes Sorensen
2001-08-22 15:17                 ` Rik van Riel
2001-08-22  6:04           ` Oliver Neukum
2001-08-22 13:17             ` Jes Sorensen
2001-08-22 14:58             ` Ricky Beam
2001-08-21 22:53         ` Matthew Jacob
2001-08-21 23:20           ` Ricky Beam
2001-08-21 22:51       ` David S. Miller
2001-08-21 14:45     ` David S. Miller
2001-08-21 14:40   ` David S. Miller
2001-08-21 14:45   ` Alan Cox
2001-08-21 14:46   ` David S. Miller
2001-08-21 14:47   ` David S. Miller
2001-08-21 15:29     ` Jes Sorensen
2001-08-21 15:26   ` Alan Cox
2001-08-21 16:39     ` Jes Sorensen
2001-08-21 18:47       ` Alan Cox
2001-08-21 18:53         ` Matthew Jacob
2001-08-21 18:56           ` Matthew Jacob
2001-08-21 18:48       ` Alan Cox
2001-08-21 16:42     ` David S. Miller
2001-08-21 17:18       ` Matthew Jacob
2001-08-22 13:08       ` Jes Sorensen
2001-08-21 15:51   ` BUG: pc_keyb.c Alan Cox
2001-08-21 16:23   ` massive filesystem corruption with 2.4.9 Alan Cox
2001-08-21 19:06     ` Kristian
2001-08-21 16:26   ` Alan Cox
2001-08-21 16:26   ` Kernel Startup Delay Alan Cox
2001-08-21 18:37   ` i810 audio doesn't work with 2.4.9 Alan Cox
2001-08-21 18:39   ` Alan Cox
2001-08-22  8:48     ` Andris Pavenis
2001-08-23 14:00       ` Doug Ledford
2001-08-23 17:15         ` Andris Pavenis
2001-08-23 17:30           ` Doug Ledford
2001-08-22 10:24   ` 2.4.9 kernel i810 module Initialization problem Alan Cox
2001-08-22 18:18   ` yenta_socket hangs sager laptop in kernel 2.4.6-> PNPBIOS life saver Alan Cox
2001-08-22 18:32     ` Gunther Mayer
2001-08-23  9:11     ` Gerd Knorr
2001-08-23 12:50       ` Gerd Knorr
2001-08-23 13:00       ` Alan Cox
2001-08-23 16:58         ` kuznet
2001-08-23 18:23           ` Gunther Mayer
2001-08-23 18:34             ` kuznet
2001-08-25 10:27               ` Gunther Mayer
2001-08-25 17:00                 ` kuznet
2001-08-24 10:18         ` Gerd Knorr
2001-08-22 21:17   ` [PATCH,RFC] make ide-scsi more selective Alan Cox
2001-08-22 21:53     ` Nicholas Knight
2001-08-22 22:00       ` Ion Badulescu
2001-08-22 22:39         ` Nicholas Knight
2001-08-23  3:42           ` mhobgood
2001-08-23  3:54           ` Ion Badulescu
2001-08-23  4:29             ` Nicholas Knight
2001-08-23  0:12         ` Willem Riede
2001-08-25  6:56     ` Ion Badulescu
2001-08-24 17:37   ` i810 audio doesn't work with 2.4.9 Stefan Westerfeld
2001-08-24 17:50     ` Doug Ledford
2001-08-31  3:31   ` Apollo Pro266 system freeze followup Barry K. Nathan
2001-11-02  9:06   ` OOM /proc logging Samium Gromoff
2001-11-07 15:12   ` kernel 2.4.14 compiling fail for loop device Barry K. Nathan
2001-11-07 15:21     ` Todd M. Roy
2001-11-07 15:38     ` Mohammad A. Haque
2001-11-07 15:48       ` Mohammad A. Haque
2001-11-09 20:40   ` ramfs leak W Christopher Martin
2001-11-12  2:47   ` Tachino Nobuhiro
2001-11-12 18:35     ` Padraig Brady
2001-11-12 21:35       ` Alan Cox
2002-01-07 18:39   ` [parisc-linux] PIC assembly John David Anglin
2002-01-09  1:05     ` Grant Grundler
2002-01-11 20:45       ` Grant Grundler
2002-01-08 23:04   ` Galileo 64240 ellis
2002-01-22  4:18   ` preemption and pccard ? Barry K. Nathan
2002-01-22 17:16     ` Erik Gustavsson
2002-02-03 21:40   ` Machines misreporting Bogomips Barry K. Nathan
2002-03-19 20:27   ` Filesystem Corruption (ext2) on Tyan S2462, 2xAMD1900MP, 2.4.17SMP Barry K. Nathan
2002-03-19 20:47   ` New IBM IDE drive recognized as 40 GB but is 80 GB Barry K. Nathan
2002-03-20 10:41     ` Martin Rode
2002-03-25 20:37   ` Mips16 toolchain? Hartvig Ekner
2002-05-04  5:01   ` [patch] hpt374 support Barry K. Nathan
2002-05-04 14:09     ` tomas szepe
2002-05-04 18:47     ` Andrew Morton
2002-05-05 16:50   ` Linux 2.4.18 floppy driver EATS floppies Barry K. Nathan
2002-05-30 19:36   ` cross-compiler for MIPS_RedHat7.1_Release-01.00 on Atlas/4Kc using RH7.3-i386 host Hartvig Ekner
2002-05-30 19:36     ` Hartvig Ekner
2002-05-30 20:06     ` David Christensen
2002-05-30 20:06       ` David Christensen
2002-05-30 21:05       ` Muthukumar Ratty
2002-05-30 21:05         ` Muthukumar Ratty
2002-05-30 21:25         ` cross-compiler for MIPS_RedHat7.1_Release-01.00 on Atlas/4Kc Hartvig Ekner
2002-05-30 21:25           ` Hartvig Ekner
2002-05-31  0:23         ` cross-compiler for MIPS_RedHat7.1_Release-01.00 on Atlas/4Kc using RH7.3-i386 host David Christensen
2002-05-31  0:23           ` David Christensen
2002-06-06  0:46   ` [PATCH] scheduler hints Rick Bressler
2002-06-06  0:53     ` Robert Love
2002-06-06  1:14       ` Rick Bressler
2002-06-06  1:05     ` Gerrit Huizenga
2002-06-06  1:11       ` Robert Love
2002-06-06  1:19         ` Gerrit Huizenga
2002-06-10 21:05     ` Bill Davidsen
2002-06-10 22:27       ` Gerrit Huizenga
2002-07-15 17:21   ` [parisc-linux] compiling kernels with gcc-3.1 John David Anglin
2002-07-15 17:32     ` Randolph Chung
2002-07-15 17:43       ` Matthew Wilcox
2002-07-15 18:18         ` John David Anglin
2002-07-16  9:02     ` joel.soete
2002-07-16 17:01   ` [parisc-linux] gcc-3.[02] alignment problem John David Anglin
2002-07-16 17:01   ` John David Anglin
2002-07-16 17:22     ` Randolph Chung
2002-07-16 17:22     ` Randolph Chung
2002-07-16 17:24       ` Matthew Wilcox
2002-07-17  3:19         ` Randolph Chung
2002-07-17  3:19         ` Randolph Chung
2002-07-16 17:24       ` Matthew Wilcox
2002-07-16 20:21       ` Richard Henderson
2002-07-16 20:21       ` Richard Henderson
2002-07-16 17:27   ` [parisc-linux] gcc-3.2 bootstrap? John David Anglin
2002-10-16 21:10   ` usb CF reader and 2.4.19 Vid Strpic
2002-10-18 19:53   ` DPMI: Interrupt vector overwritten John Elliott
2002-10-30  6:42   ` Running linux-2.4.20-rc1 on Dell Dimension 4550 Mitch Adair
2002-10-30 17:08     ` Orion Poplawski
2002-11-29 23:07   ` 2.4.20 kernel link error Vid Strpic
2002-12-16 19:19   ` increase base memory John Elliott
2002-12-16 20:01     ` Bart Oldeman
2003-01-20 22:58   ` spinlock efficiency problem [was 2.5.57 IO slowdown with CONFIG_PREEMPT enabled) Joe Korty
2003-01-21  3:22     ` Alan
2003-01-31 21:27   ` [parisc-linux] PATCH hppa ordered load absolute ops John David Anglin
2003-01-31 21:27   ` John David Anglin
2003-02-14  8:39   ` Promise SATA chips Vid Strpic
2003-03-15  8:19   ` [PATCH] update filesystems config. menu Mitch Adair
2003-03-15  9:41     ` Dave Jones
2003-03-15  9:20       ` Mitch Adair
2003-03-15  9:24         ` Martin Schlemmer
2003-03-15 17:08           ` Randy.Dunlap
2003-03-15 19:11             ` Martin Schlemmer
2003-03-15 21:31               ` Randy.Dunlap
2003-03-16  1:27                 ` jw schultz
2003-03-17  5:50                 ` Valdis.Kletnieks
2003-03-18 20:31   ` Access denied after write to named pipe John Elliott
2003-06-02  7:28   ` Recent spam The Amazing Dragon
2003-06-05 22:45   ` The Amazing Dragon
2003-06-05 23:49   ` How to build a big file server The Amazing Dragon
2003-06-19  9:56   ` [SPAM] BU FIRSATTAN YARARLANIN Alexander Lyamin
2003-06-22  6:11   ` Warning message during linux kernel 2.4.21 compilation (ymfpci.c) Pete Zaitcev
2003-07-17  2:23   ` Anycast usage, final diagnosis? (was: IPv6: Fix broken anycast usage) kuznet
2003-07-17  2:23     ` David S. Miller
2003-07-17  8:38     ` Mika Liljeberg
2003-07-17  9:06       ` Anycast usage, final diagnosis? (was: IPv6: Fix broken anycast kuznet
2003-07-17  9:32         ` Mika Liljeberg
2003-08-31 19:10   ` [parisc-linux] Re: [glibc] tststatic failues, reduced to simp le testcase John David Anglin
2003-08-31 20:22     ` Carlos O'Donell
2003-08-31 20:47       ` John David Anglin
2003-09-01  6:05         ` Carlos O'Donell
2003-09-13  6:12   ` [Bluez-users] IBM Thinkpad A31p and Bluetooth Jason Van Patten
2003-09-13  8:28     ` Fredrik Noring
2003-09-13 10:32       ` Marcel Holtmann
2003-09-13 17:24         ` Fredrik Noring
2003-09-13 17:56           ` Marcel Holtmann
2003-09-13 18:21             ` Fredrik Noring
2003-09-14 13:26               ` Marcel Holtmann
2003-09-14 16:28                 ` Fredrik Noring
2003-09-13 15:19       ` Jason Van Patten
2003-12-15 22:05   ` [parisc-linux] dlopen failed on 'libthread_db.so.1' - /lib/libthread_db.so.1: undefined symbol: ps_pglobal_lookup John David Anglin
2003-12-17 15:32     ` [parisc-linux] " Carlos O'Donell
2003-12-17 15:53       ` Carlos O'Donell
2003-12-17 16:43         ` [parisc-linux] Re: dlopen failed on 'libthread_db.so.1' - John David Anglin
2003-12-17 18:35           ` Carlos O'Donell
2003-12-18  0:21             ` John David Anglin
2003-12-18  0:32   ` John David Anglin
2003-12-18  0:42     ` [parisc-linux] Re: dlopen failed on 'libthread_db.so.1' -g John David Anglin
2003-12-20 13:58   ` Adaptec DPT_I2O Driver Jason Van Patten
2003-12-28  7:04   ` SCO's infringing files list Rick Bressler
2004-01-07 21:14   ` [parisc-linux] [Testers wanted] New glibc with profiling fixed John David Anglin
2004-01-07 21:14   ` John David Anglin
2004-02-25  1:54   ` Conversion from v3.6 to v4 of Reiserfs The Amazing Dragon
2004-02-25  9:17     ` Nikita Danilov
2004-02-25  9:27       ` Dr. Giovanni A. Orlando
2004-02-25  9:36         ` Nikita Danilov
2004-02-25 10:02           ` Nikita Danilov
2004-02-25 11:14             ` Dr. Giovanni A. Orlando
2004-03-01 14:42   ` [PATCH] 1/5 Clean up Linux 2.6.4-rc1 sound/core/Makefile Russell King
2004-03-01 14:44     ` [PATCH] 2/5 " Russell King
2004-03-01 14:45       ` [PATCH] 3/5 " Russell King
2004-03-01 14:45         ` [PATCH] 4/5 " Russell King
2004-03-01 14:46           ` [PATCH] 5/5 " Russell King
2004-03-01 15:27     ` [PATCH] 1/5 " Takashi Iwai
2004-03-01 15:28       ` Jaroslav Kysela
2004-03-01 15:42         ` Takashi Iwai
2004-03-01 15:54           ` Jaroslav Kysela
2004-03-01 17:48       ` Russell King
2004-03-11 21:55   ` connection destruction question Kristen Carlson
2004-03-12  7:10     ` Henrik Nordstrom
2004-03-12 12:58     ` Emmanuel Guiton
2004-03-24  0:08   ` Can compression at filesystem level improve overall performance? The Amazing Dragon
2004-03-24  0:12     ` Alan Horn
2004-04-01  5:46   ` [PATCH] "metas" in reiserfs v4 snapshot 2004.03.26 The Amazing Dragon
2004-04-01  6:53     ` Grant Miner
2004-04-01 13:00     ` Alexander G. M. Smith
2004-04-01 16:31       ` Narcoleptic Electron
2004-04-01 16:37         ` Christian Iversen
2004-04-01 17:14           ` Christian Mayrhuber
2004-04-02 16:04         ` Narcoleptic Electron
2004-04-02 16:20         ` Hans Reiser
2004-04-02 17:27           ` Narcoleptic Electron
2004-04-03 17:59             ` Hans Reiser
2004-04-03 19:34               ` cami
2004-04-04  3:22               ` Narcoleptic Electron
2004-04-04  4:28                 ` Hubert Chan
2004-04-04  4:31                   ` Christian Iversen
2004-04-04  5:21                     ` Narcoleptic Electron
2004-04-10 23:42                     ` Beni Cherniavsky
2004-04-13 18:07                       ` Narcoleptic Electron
2004-04-13 18:14                         ` Hans Reiser
2004-04-13 19:14                           ` John D. Heintz
2004-04-04  5:02                   ` Grant Miner
2004-04-04 12:50                     ` Hubert Chan
2004-04-04  5:00                 ` Grant Miner
2004-04-02  3:56     ` starting with ".." could break stuff Tom Vier
2004-04-02 14:04       ` mjt
2004-04-02 16:29       ` Hubert Chan
2004-04-02 22:02         ` filenames that can be safely stolen (was Re: starting with ".." could break stuff) Bennett Todd
2004-04-03 18:05           ` Hans Reiser
2004-04-03 23:40             ` Claudio Martins
2004-04-05  0:06             ` Tom Vier
2004-04-05  0:37               ` filenames that can be safely stolen Hubert Chan
2004-04-03  6:10   ` [PATCH] "metas" in reiserfs v4 snapshot 2004.03.26 The Amazing Dragon
2004-04-05  4:01   ` The Amazing Dragon
2004-04-05  5:01     ` Hubert Chan
2004-04-05 15:22       ` Marcelo Pacheco
2004-04-06 14:30         ` Hans Reiser
2004-04-06 16:34           ` Nikita Danilov
2004-04-06 16:45           ` Valdis.Kletnieks
2004-04-06 18:28             ` camis
2004-04-06 19:05               ` Nikita Danilov
2004-04-06 19:14                 ` Valdis.Kletnieks
2004-04-07  1:44                   ` Richard Heycock
2004-04-07  7:38                   ` mjt
2004-04-07 18:07           ` Hubert Chan
2004-04-05 20:16       ` Miguel
2004-04-05  6:56     ` Cami
2004-04-17  2:55   ` "Metas" The Amazing Dragon
2004-04-18 23:16     ` ".meta." as a Name Prefix Alexander G. M. Smith
2004-04-21  1:00       ` David Masover
2004-04-21  2:56         ` John D. Heintz
2004-04-25  5:44           ` David Masover
2004-04-25 14:02             ` Alexander G. M. Smith
2004-04-25 15:07             ` John D. Heintz
2004-04-25 19:33               ` David Masover
2004-04-21 12:03         ` Alexander G. M. Smith
2004-04-25  5:27           ` David Masover
2004-04-28  5:06   ` "Metas" The Amazing Dragon
2004-04-28  6:49     ` "Metas" Hubert Chan
2004-04-28  9:32       ` "Metas" mjt
2004-08-31  4:23   ` [parisc-linux] Re: linux signal race fixes, patches against hppa tree, please test John David Anglin
2004-08-31 20:43     ` [parisc-linux] Re: linux signal race fixes, patches against hppa tree, please te John David Anglin
2004-09-01 20:08       ` John David Anglin
2004-09-11  7:24         ` [parisc-linux] Another SIGSEGV, this time in /bin/sh John David Anglin
2004-09-13 15:01           ` [parisc-linux] " Carlos O'Donell
2004-09-02  6:29       ` [parisc-linux] Re: linux signal race fixes, patches against hppa tree, please te Carlos O'Donell
2005-01-09 21:24   ` printf() overhead Alan Curry
2005-03-04 23:33   ` SVGATextMode on 2.6.11 Alan Curry
2005-03-05  7:43   ` strace on cat /proc/my_file gives results by calling read twice why? Alan Curry
2005-03-05 21:53   ` [parisc-linux] Re: Comments? John David Anglin
2005-03-06  0:22     ` John David Anglin
2005-03-08 17:32       ` Carlos O'Donell
2005-03-08 17:44         ` John David Anglin
2005-03-08 17:54           ` Carlos O'Donell
2005-03-08 19:02             ` John David Anglin
2005-03-08 21:08               ` [parisc-linux] OPD's on hppa-linux, and what to do about __cffc's fragility Carlos O'Donell
2005-03-08 21:48                 ` [parisc-linux] " John David Anglin
2005-03-08 21:52                   ` John David Anglin
2005-03-08 22:25                 ` Alan Modra
2005-03-10 15:31                   ` Carlos O'Donell
2005-03-10 22:27                     ` Alan Modra
2005-03-11 18:05                       ` [parisc-linux] Solution to OPD's in hppa-linux, including a transition plan? Carlos O'Donell
2005-03-12  0:49                         ` [parisc-linux] " John David Anglin
     [not found]                           ` <20050315220842.GC22872@baldric.uwo.ca>
     [not found]                             ` <20050315224142.GC21148@bubble.modra.org>
2005-03-16 20:36                               ` Carlos O'Donell
2005-03-16 23:54                                 ` Alan Modra
     [not found]                             ` <200503160410.j2G4ALcu021219@hiauly1.hia.nrc.ca>
2005-03-16 21:37                               ` Carlos O'Donell
2005-03-17  3:51                                 ` John David Anglin
2005-07-16  2:55   ` [parisc-linux] Re: Non-inline math, and inline math broken, GCC to blame? (1 hppa tls toolchain regression) John David Anglin
2005-07-16 16:16     ` Carlos O'Donell
2005-07-16 17:37       ` John David Anglin
2005-07-16 17:54         ` John David Anglin
2005-07-16 19:41           ` Carlos O'Donell
2005-07-16 19:56             ` John David Anglin
2005-07-16 19:15         ` Carlos O'Donell
2005-08-16  3:32   ` [parisc-linux] Re: gsyprf11 and 2.6.13-rc3-pa1 John David Anglin
2005-12-26 19:58   ` [parisc-linux] strtold John David Anglin
2006-01-07 21:07     ` [parisc-linux] strtold Carlos O'Donell
2006-01-07 22:41       ` John David Anglin
2006-01-07 23:42         ` Carlos O'Donell
2006-01-07 23:49           ` John David Anglin
2006-01-07 23:56           ` John David Anglin
2006-01-08  4:28           ` Grant Grundler
2005-12-26 21:54   ` [parisc-linux] Re: nscd: error while loading shared libraries: unexpected reloc type 0x42 John David Anglin
2006-01-07 23:53     ` Carlos O'Donell
2006-01-08  0:16       ` [parisc-linux] Re: nscd: error while loading shared libraries: John David Anglin
2006-02-04 23:41   ` [parisc-linux] long double on hppa64-*-linux* John David Anglin
2006-02-05  0:45     ` Grant Grundler
2006-02-05  3:42       ` John David Anglin
2006-03-12 20:15   ` [parisc-linux] Re: gcj can't make shared libs on hppa John David Anglin
2006-03-13 14:24     ` Carlos O'Donell
2006-03-13 20:50       ` John David Anglin
2006-06-09  0:56   ` [parisc-linux] User space locks -- what's wrong John David Anglin
2007-01-03  1:41   ` [parisc-linux] Re: PA8800 Status (Happy New Year) John David Anglin
2007-01-03  4:24   ` John David Anglin
2007-02-17 20:32   ` [parisc-linux] Re: call_init in libc6 2.3.6.ds1-11 John David Anglin
2007-08-21 19:01   ` [PATCH] Assign task_struct.exit_code before taskstats_exit() Jonathan Lim
2007-09-04  1:19   ` [parisc-linux] 2.6.23-rc5 warnings John David Anglin
2008-01-08  1:04   ` [PATCH] Provide u64 version of jiffies_to_usecs() in kernel/tsacct.c Jonathan Lim
2008-02-19 20:52   ` Jonathan Lim
2008-02-19 21:25     ` Randy Dunlap
2008-02-19 21:59       ` [PATCH] Provide u64 version of jiffies_to_usecs() in Jonathan Lim
2008-02-19 22:13         ` Randy Dunlap
2008-02-20  2:17       ` [PATCH] Provide u64 version of jiffies_to_usecs() in kernel/tsacct.c Jonathan Lim
2008-02-20  3:52         ` Randy Dunlap
2008-02-25 22:27   ` Jonathan Lim
2008-03-12 23:53     ` Roman Zippel
2008-04-18 21:54   ` Jonathan Lim
2008-04-30  0:48   ` [PATCH] Account for user time when updating memory integrals Jonathan Lim
2008-08-23 16:48   ` X won't start with VisEG and 2.6.22.19 John David Anglin
2008-08-24 10:35     ` Helge Deller
2008-08-24 14:09       ` John David Anglin
2008-08-24 14:38         ` Helge Deller
2009-05-03  0:48   ` Kernel Panic during init with 2.6.29-gb609308 (fresh clone of git John David Anglin
2009-08-23 21:21   ` Reproducible random python crash John David Anglin
2009-12-23 22:18   ` futex wait failure John David Anglin
2009-12-24  2:22     ` Carlos O'Donell
2009-12-28 18:59       ` John David Anglin
2009-12-29 13:47         ` Helge Deller
2009-12-29 15:00           ` John David Anglin
2009-12-30 10:49             ` Randolph Chung
2009-12-31 18:14           ` Carlos O'Donell
2009-12-31 19:11             ` Helge Deller
2010-01-01  3:49               ` John David Anglin
2010-01-01  5:02                 ` John David Anglin
2010-01-04 16:27                 ` Helge Deller
2010-01-04 17:16                   ` Carlos O'Donell
2010-01-04 18:11                     ` John David Anglin
2010-01-04 18:29                       ` John David Anglin
2010-01-04 20:51                       ` Helge Deller
2010-01-04 21:39                         ` John David Anglin
2010-01-05 22:27                         ` John David Anglin
2010-01-06 23:33                           ` John David Anglin
2010-01-07 16:13                             ` Helge Deller
2010-01-08 16:37                               ` John David Anglin
2010-01-08 21:17                                 ` John David Anglin
2010-02-02 21:16                                   ` Helge Deller
2010-02-03  3:44                                     ` John David Anglin
2010-02-03 22:03                                       ` Helge Deller
2010-03-07 17:12                                         ` John David Anglin
2010-03-07 20:32                                           ` John David Anglin
2010-03-11  3:20                                             ` John David Anglin
2010-03-11 13:54                                               ` Kyle McMartin
2010-03-11 22:40                                                 ` John David Anglin
2010-03-11 23:32                                                   ` John David Anglin
2010-03-13  2:06                                                   ` John David Anglin
2010-03-15  1:10                                                     ` John David Anglin
2010-03-16 11:49                                                       ` Carlos O'Donell
2010-03-21 18:19                                                         ` John David Anglin
2010-03-22 14:26                                                           ` Carlos O'Donell
2010-03-23 21:32                                                           ` Carlos O'Donell
2010-03-23 22:23                                                             ` John David Anglin
2010-02-03 22:44                                     ` Carlos O'Donell
2010-01-08 21:18                                 ` Helge Deller
2010-01-08 21:43                                   ` John David Anglin
2010-01-08 21:44                                   ` Carlos O'Donell
2010-01-08 21:44                                     ` Carlos O'Donell
2010-01-08 21:56                                       ` Kyle McMartin
2010-01-08 22:28                                         ` John David Anglin
2010-01-08 22:33                                           ` Kyle McMartin
2010-01-08 22:31                                       ` John David Anglin
2010-01-16 23:17                                     ` Helge Deller
2010-01-18 15:50                                       ` John David Anglin
2010-01-18 20:44                                       ` John David Anglin
2010-01-18 20:49                                         ` Carlos O'Donell
2010-01-29 17:53                                       ` Carlos O'Donell
2010-01-31 21:14                                         ` Helge Deller
2010-01-01  0:26                                           ` John David Anglin
2010-02-01 12:58                                             ` Carlos O'Donell
2010-02-01 15:47                                               ` John David Anglin
2010-02-01 19:02                                             ` Helge Deller
2010-02-01 19:11                                               ` John David Anglin
2010-02-01 21:36                                                 ` Carlos O'Donell
2010-01-04 17:32                   ` John David Anglin
2010-01-04 18:02                     ` Carlos O'Donell
2010-01-04 18:22                       ` John David Anglin
2010-01-04 21:24                   ` Helge Deller
2009-12-31 22:38             ` John David Anglin
2010-01-01  0:36               ` John David Anglin
2021-09-25 18:31   ` Newer kernels on the Jensen (was: [PATCH v2 0/4] Introduce and use absolute_pointer macro) Ulrich Teichert
  -- strict thread matches above, loose matches on Subject: below --
2001-08-02  7:01 kernel gdb for intel Brent Baccala
2001-08-02 11:34 ` Amit S. Kale
2001-07-26  7:34 ext3-2.4-0.9.4 Andrew Morton
2001-07-26 11:08 ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 11:42   ` ext3-2.4-0.9.4 Andrew Morton
2001-07-26 12:30     ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 12:58       ` ext3-2.4-0.9.4 Rik van Riel
2001-07-26 13:17         ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 13:23           ` ext3-2.4-0.9.4 Rik van Riel
2001-07-26 13:58             ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 13:52           ` ext3-2.4-0.9.4 Alan Cox
2001-07-26 13:55             ` ext3-2.4-0.9.4 Rik van Riel
2001-07-26 14:12               ` ext3-2.4-0.9.4 Andrew Morton
2001-07-26 14:45               ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 15:02                 ` ext3-2.4-0.9.4 Christoph Hellwig
2001-07-26 15:48                   ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 15:54                     ` ext3-2.4-0.9.4 Alan Cox
2001-07-26 16:18                       ` ext3-2.4-0.9.4 Linus Torvalds
2001-07-26 16:44                         ` ext3-2.4-0.9.4 Alan Cox
2001-07-26 16:54                         ` ext3-2.4-0.9.4 Larry McVoy
2001-07-26 17:15                           ` ext3-2.4-0.9.4 Andre Pang
2001-07-26 17:58                             ` ext3-2.4-0.9.4 Hans Reiser
2001-07-28 22:45                               ` ext3-2.4-0.9.4 Matthias Andree
2001-07-28 23:50                                 ` ext3-2.4-0.9.4 Rik van Riel
2001-07-29 13:42                                 ` ext3-2.4-0.9.4 Hans Reiser
2001-07-27  4:28                             ` ext3-2.4-0.9.4 Andrew Morton
2001-08-01 15:51                               ` ext3-2.4-0.9.4 Stephen C. Tweedie
2001-07-27 16:24                             ` ext3-2.4-0.9.4 Lawrence Greenfield
2001-07-27 16:57                               ` ext3-2.4-0.9.4 Rik van Riel
2001-07-28 23:15                                 ` ext3-2.4-0.9.4 Matthias Andree
2001-07-28 23:47                                   ` ext3-2.4-0.9.4 Rik van Riel
2001-07-29  0:08                                     ` ext3-2.4-0.9.4 Matthias Andree
2001-07-29  2:51                                       ` ext3-2.4-0.9.4 Mike Touloumtzis
2001-07-29  9:28                                         ` ext3-2.4-0.9.4 Matthias Andree
2001-07-29 14:16                                           ` ext3-2.4-0.9.4 Rik van Riel
2001-07-29 23:19                                           ` ext3-2.4-0.9.4 Mike Touloumtzis
2001-07-30 14:41                                           ` ext3-2.4-0.9.4 Ketil Froyn
2001-07-29 14:00                                       ` ext3-2.4-0.9.4 Rik van Riel
2001-07-27 17:16                               ` ext3-2.4-0.9.4 Bill Rugolsky Jr.
2001-07-26 17:41                           ` ext3-2.4-0.9.4 Larry McVoy
2001-07-26 22:17                           ` ext3-2.4-0.9.4 Daniel Phillips
2001-07-26 18:32                         ` ext3-2.4-0.9.4 Richard A Nelson
2001-07-26 19:37                           ` ext3-2.4-0.9.4 Linus Torvalds
2001-07-26 20:04                             ` ext3-2.4-0.9.4 Richard A Nelson
2001-07-26 20:55                           ` ext3-2.4-0.9.4 Anton Altaparmakov
2001-07-26 16:13                     ` ext3-2.4-0.9.4 Rik van Riel
2001-07-26 16:46                       ` ext3-2.4-0.9.4 Alan Cox
2001-07-26 17:26                       ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 15:28                 ` ext3-2.4-0.9.4 Alan Cox
2001-07-26 20:23                   ` ext3-2.4-0.9.4 Gérard Roudier
2001-07-26 14:32             ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 15:31               ` ext3-2.4-0.9.4 Daniel Phillips
2001-07-26 15:49                 ` ext3-2.4-0.9.4 Andrew Morton
2001-07-26 20:45                   ` ext3-2.4-0.9.4 Daniel Phillips
2001-07-26 15:58                 ` ext3-2.4-0.9.4 Matthias Andree
2001-07-26 14:09       ` ext3-2.4-0.9.4 Andrew Morton
2001-07-26 15:07         ` RFC: chattr/lsattr +DS? was: ext3-2.4-0.9.4 Matthias Andree
2001-07-26 15:40           ` Andrew Morton
2001-07-26 15:51       ` ext3-2.4-0.9.4 Linus Torvalds
2001-07-31  0:21         ` ext3-2.4-0.9.4 Matti Aarnio
2001-07-31  1:23           ` ext3-2.4-0.9.4 Rik van Riel
2001-07-31  5:25             ` ext3-2.4-0.9.4 Lawrence Greenfield
2001-07-31 15:40               ` ext3-2.4-0.9.4 Matti Aarnio
2001-07-31 16:35                 ` ext3-2.4-0.9.4 Anton Altaparmakov
2001-07-31 21:30               ` ext3-2.4-0.9.4 Matthias Andree
2001-07-31 21:29             ` ext3-2.4-0.9.4 Matthias Andree
2001-07-31 21:54               ` ext3-2.4-0.9.4 Mike Castle
2001-07-31 23:46               ` ext3-2.4-0.9.4 Chris Wedgwood
2001-07-31 23:53                 ` ext3-2.4-0.9.4 Rik van Riel
2001-07-31 16:41           ` ext3-2.4-0.9.4 Linus Torvalds
2001-07-31  0:57         ` ext3-2.4-0.9.4 Matthias Andree
2001-07-31  1:16           ` ext3-2.4-0.9.4 Rik van Riel
2001-07-31  1:35           ` ext3-2.4-0.9.4 Mike Castle
2001-07-31 21:27             ` ext3-2.4-0.9.4 Matthias Andree
2001-08-01 16:02           ` ext3-2.4-0.9.4 Stephen C. Tweedie
2001-08-01 17:40             ` ext3-2.4-0.9.4 Kurt Roeckx
2001-08-02  0:17             ` ext3-2.4-0.9.4 Andrew McNamara
2001-08-02  9:03             ` ext3-2.4-0.9.4 Matthias Andree
2001-08-02  9:51               ` ext3-2.4-0.9.4 Christoph Hellwig
2001-08-02  9:56                 ` ext3-2.4-0.9.4 Rik van Riel
2001-08-02 12:47                   ` ext3-2.4-0.9.4 Eric W. Biederman
2001-08-02 17:26               ` ext3-2.4-0.9.4 Daniel Phillips
2001-08-02 17:37                 ` intermediate summary of ext3-2.4-0.9.4 thread Matthias Andree
2001-08-02 18:35                   ` Alexander Viro
2001-08-02 18:47                     ` Matthias Andree
2001-08-02 22:18                       ` Andreas Dilger
2001-08-02 23:11                         ` Matthias Andree
     [not found]                         ` <5.1.0.14.2.20010803025916.053e2ec0@pop.cus.cam.ac.uk>
2001-08-03  9:16                           ` Matthias Andree
     [not found]                       ` <5.1.0.14.2.20010803002501.00ada0e0@pop.cus.cam.ac.uk>
     [not found]                         ` <20010803021406.A9845@emma1.emma.line.org>
2001-08-03 16:20                           ` Jan Harkes
2001-08-03 22:48                           ` Andreas Dilger
2001-08-02 19:47                   ` Bill Rugolsky Jr.
2001-08-03 18:22                     ` Matthias Andree
     [not found]                   ` <Pine.LNX.4.33.0108030051070.1703-100000@fogarty.jakma.org>
     [not found]                     ` <20010803021642.B9845@emma1.emma.line.org>
2001-08-03  7:03                       ` Eric W. Biederman
2001-08-03  8:39                         ` Matthias Andree
2001-08-03  9:57                           ` Christoph Hellwig
2001-08-04  7:55                           ` Eric W. Biederman
2001-08-03  8:30                   ` Stephen C. Tweedie
2001-08-03 18:28                     ` Matthias Andree
2001-08-03  8:50                   ` David Weinehall
2001-08-03 18:31                     ` Matthias Andree
2001-08-03 19:59                     ` Albert D. Cahalan
2001-08-03 19:54                       ` Gregory Maxwell
2001-08-04  3:30                       ` don't feed the trolls (was: intermediate summary of ext3-2.4-0.9.4 thread) Matthias Andree
2001-08-04 21:22                         ` Albert D. Cahalan
2001-08-09 11:58                           ` Matthias Andree
2001-08-02 17:54                 ` ext3-2.4-0.9.4 Alexander Viro
2001-08-02 20:01                   ` ext3-2.4-0.9.4 Daniel Phillips
2001-08-03  9:06                 ` ext3-2.4-0.9.4 Stephen C. Tweedie
2001-08-03 14:08                   ` ext3-2.4-0.9.4 Daniel Phillips
2001-08-03 14:52                     ` ext3-2.4-0.9.4 Stephen C. Tweedie
2001-08-03 15:11                     ` ext3-2.4-0.9.4 David S. Miller
2001-08-03 15:25                       ` ext3-2.4-0.9.4 Daniel Phillips
2001-08-03 17:06                         ` ext3-2.4-0.9.4 Bill Rugolsky Jr.
2001-08-03 17:22                           ` ext3-2.4-0.9.4 Bill Rugolsky Jr.
2001-08-03 15:18                     ` ext3-2.4-0.9.4 Jan Harkes
2001-08-03 15:47                       ` ext3-2.4-0.9.4 Daniel Phillips
2001-08-03 15:50                         ` ext3-2.4-0.9.4 Stephen C. Tweedie
2001-08-03 16:24                           ` ext3-2.4-0.9.4 Daniel Phillips
2001-08-03 18:11                           ` ext3-2.4-0.9.4 Matthias Andree
2001-08-06  2:13                             ` ext3-2.4-0.9.4 Zilvinas Valinskas
2001-08-03 16:16                         ` ext3-2.4-0.9.4 Jan Harkes
2001-08-03 16:54                           ` ext3-2.4-0.9.4 Daniel Phillips
2001-08-03 16:05                     ` ext3-2.4-0.9.4 Rik van Riel
2001-07-26 12:32     ` ext3-2.4-0.9.4 Chris Wedgwood
2001-07-27  9:32 ` Strange remount behaviour with ext3-2.4-0.9.4 Sean Hunter
2001-07-27 10:24   ` Andrew Morton
2001-07-27 12:15     ` Sean Hunter
2001-07-27 20:39   ` Michal Jaegermann
2001-07-27 20:46     ` Alan Cox
2001-07-27 21:08       ` Chris Wedgwood
2001-07-27 21:23         ` Alan Cox
2001-07-27 21:27           ` Chris Wedgwood
2001-07-28 14:37         ` Kai Henningsen
2001-07-30  6:37 ` ext3-2.4-0.9.4 Philipp Matthias Hahn
2001-08-02 13:58   ` ext3-2.4-0.9.4 Stephen C. Tweedie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.