mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
	Werner Almesberger <wa@almesberger.net>,
	Suparna Bhattacharya <suparna@in.ibm.com>,
	Jeff Garzik <jgarzik@pobox.com>,
	"Matt D. Robinson" <yakker@aparity.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Andy Pfiffer <andyp@osdl.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Mike Galbraith <efault@gmx.de>,
	"Martin J. Bligh" <Martin.Bligh@us.ibm.com>,
	<lkcd-general@lists.sourceforge.net>,
	<lkcd-devel@lists.sourceforge.net>
Subject: Re: [lkcd-devel] Re: What's left over.
Date: 09 Nov 2002 16:05:23 -0700	[thread overview]
Message-ID: <m1u1iqcpjg.fsf@frodo.biederman.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0211070731200.5567-100000@home.transmeta.com>

There are two cases I am seeing users wanting.
1) Load a new kernel on panic.
   - Extra care must be taken so what broke the first kernel does
     not break this one, and so that the shards of the old kernel
     do not break it.
   - Care must be taken so that loading the second kernel does not
     erase valuable data that is desirable to place in a crash dump.
   - This kernel cannot live at the same address as the old one, (at
     least not initially).

2) Load a new kernel under normal operating conditions.
   And when you have a normal user space that boils down to:
   - Acquire the kernel you are going to boot.
   - Run the user space shutdown scripts, so the system is in
     a clean state.
   - Execute the new kernel.
   - The normal case is that the newly loaded kernel will live at the 
     same physical location where the current kernel lives.


Currently my code handles starting a new kernel under normal operating
conditions.  There are currently two ways I can implement a clean user
space shutdown with out needing locked buffers in the kernel until the
very last moment.

Method 1 (This works today with my sample user space):
- copy the kernel to /newkernel
- init 6
- if [ -r /newkernel ]; then
        /sbin/kexec /newkernel
  else
        /sbin/reboot
  fi
- /sbin/kexec reads in /newkernel
- /newkernel is parsed to figure out how it should be loaded
- sys_kexec is called to copy the kernel from user space anonymous
  memory to temporary kernel buffers.

Method 2 (For people with read only roots):
- /sbin/delayed_kexec /path/to/new/kernel 
- Read in the /path/to/new/kernel into anonymous pages
- Parse it and figure out how it should be loaded
- Run the shutdown scripts from /etc/rc6.d/ 
- Call sys_kexec, which will copy the data from user space anonymous
  pages, to kernel space.

This is to just make it clear that I am not working from a
FUNDAMENTALLY BROKEN interface, nor from a broken model of machine
maintenance.  I am quite willing to make changes assuming I understand
what is gained with the change.  



What I currently support is a moderately nice interface, that has the
kernel doing as much as it can without being bogged down in the
specific details in any one file format, or needing something besides
a 32bit entry point to jump to.

I model an image as a set of segments of physical memory.  And I copy
the image loaded with sys_kexec to it's final location, before jumping
to the new image.  There are two reasons for this.  It takes 3
segments to load a bzImage (setup.S, vmlinux, and an initrd).  And an
arbitrary number of segments maps cleanly to a static ELF binary.

There is only one difficult case.  What happens when the buffers the
kernel allocates are physically in one of the segments of memory of
the new kernel image.  Possible especially for the initrd which is
loaded at the end of memory.  

I then use the following algorithm to sort the potential mess out
before I jump to the new code.  And since this code depends on
swapping the contents of pages, knowing the physical location of
the pages, and is not limited to 128MB I am reluctant to look a
vmalloc variant.  I can more get my pages from a slab if I need to
report I have them.

static int kimage_get_off_destination_pages(struct kimage *image)
{
	kimage_entry_t *ptr, *cptr, entry;
	unsigned long buffer, page;
	unsigned long destination = 0;

	/* Here we implement safe guards to insure that
	 * a source page is not copied to it's destination
	 * page before the data on the destination page is
	 * no longer useful.
	 *
	 * To make it work we actually wind up with a 
	 * stronger condition.  For every page considered
	 * it is either it's own destination page or it is
	 * not a destination page of any page considered.
	 *
	 * Invariants 
	 * 1. buffer is not a destination of a previous page.
	 * 2. page is not a destination of a previous page.
	 * 3. destination is not a previous source page.
	 *
	 * Result: Either a source page and a destination page 
	 * are the same or the page is not a destination page.
	 *
	 * These checks could be done when we allocate the pages,
	 * but doing it as a final pass allows us more freedom
	 * on how we allocate pages.
	 * 
	 * Also while the checks are necessary, in practice nothing
	 * happens.  The destination kernel wants to sit in the
	 * same physical addresses as the current kernel so we never
	 * actually allocate a destination page.
	 *
	 * BUGS: This is a O(N^2) algorithm.
	 */

	
	buffer = __get_free_page(GFP_KERNEL);
	if (!buffer) {
		return -ENOMEM;
	}
	buffer = virt_to_phys((void *)buffer);
	for_each_kimage_entry(image, ptr, entry) {
		/* Here we check to see if an allocated page */
		kimage_entry_t *limit;
		if (entry & IND_DESTINATION) {
			destination = entry & PAGE_MASK;
		}
		else if (entry & IND_INDIRECTION) {
			/* Indirection pages must include all of their
			 * contents in limit checking.
			 */
			limit = phys_to_virt(page + PAGE_SIZE - sizeof(*limit));
		}
		if (!((entry & IND_SOURCE) | (entry & IND_INDIRECTION))) {
			continue;
		}
		page = entry & PAGE_MASK;
		limit = ptr;

		/* See if a previous page has the current page as it's 
		 * destination.
		 * i.e. invariant 2
		 */
		cptr = kimage_dst_conflict(image, page, limit);
		if (cptr) {
			unsigned long cpage;
 			kimage_entry_t centry;
			centry = *cptr;
			cpage = centry & PAGE_MASK;
			memcpy(phys_to_virt(buffer), phys_to_virt(page), PAGE_SIZE);
			memcpy(phys_to_virt(page), phys_to_virt(cpage), PAGE_SIZE);
			*cptr = page | (centry & ~PAGE_MASK);
			*ptr = buffer | (entry & ~PAGE_MASK);
			buffer = cpage;
		}
		if (!(entry & IND_SOURCE)) {
			continue;
		}

		/* See if a previous page is our destination page.
		 * If so claim it now.
		 * i.e. invariant 3
		 */
		cptr = kimage_src_conflict(image, destination, limit);
		if (cptr) {
			unsigned long cpage;
 			kimage_entry_t centry;
			centry = *cptr;
			cpage = centry & PAGE_MASK;
			memcpy(phys_to_virt(buffer), phys_to_virt(cpage), PAGE_SIZE);
			memcpy(phys_to_virt(cpage), phys_to_virt(page), PAGE_SIZE);
			*cptr = buffer | (centry & ~PAGE_MASK);
			*ptr = cpage | ( entry & ~PAGE_MASK);
			buffer = page;
		}
		/* If the buffer is my destination page do the copy now 
		 * i.e. invariant 3 & 1
		 */
		if (buffer == destination) {
			memcpy(phys_to_virt(buffer), phys_to_virt(page), PAGE_SIZE);
			*ptr = buffer | (entry & ~PAGE_MASK);
			buffer = page;
		}
	}
	free_page((unsigned long)phys_to_virt(buffer));
	return 0;
}


static kimage_entry_t *kimage_dst_conflict(
	struct kimage *image, unsigned long page, kimage_entry_t *limit)
{
	kimage_entry_t *ptr, entry;
	unsigned long destination = 0;
	for_each_kimage_entry(image, ptr, entry) {
		if (ptr == limit) {
			return 0;
		}
		else if (entry & IND_DESTINATION) {
			destination = entry & PAGE_MASK;
		}
		else if (entry & IND_SOURCE) {
			if (page == destination) {
				return ptr;
			}
			destination += PAGE_SIZE;
		}
	}
	return 0;
}


static kimage_entry_t *kimage_src_conflict(
	struct kimage *image, unsigned long destination, kimage_entry_t *limit)
{
	kimage_entry_t *ptr, entry;
	for_each_kimage_entry(image, ptr, entry) {
		unsigned long page;
		if (ptr == limit) {
			return 0;
		}
		else if (entry & IND_DESTINATION) {
			/* nop */
		}
		else if (entry & IND_DONE) {
			/* nop */
		}
		else {
			/* SOURCE & INDIRECTION */
			page = entry & PAGE_MASK;
			if (page == destination) {
				return ptr;
			}
		}
	}
	return 0;
}





Having had time to digest the idea of starting a new kernel on panic
I can now make some observations and what I believe it would take to
make it as robust as possible.

- On panic because random pieces of the kernel may be broken we want
  to use as little of the kernel as possible.  

- Therefore machine_kexec should not allocate any memory, and as
  quickly as possible it should transition to the new kernel

- So a new page table should be sitting around with the new kernel
  already mapped, and likewise other important tables like the
  gdt, and the idt, should be pre-allocated.

- Then machine_kexec can just switch stacks, page tables, and other
  machine dependent tables and jump to the new kernel.

- The load stage needs to load everything at the physical location it
  will initially run at.  This would likely need support from rmap.

- The load stage needs to preallocate page tables and buffers.

- The load stage would likely work easiest by either requiring a mem=xxx
  line, reserving some of physical memory for the new kernel.  Or
  alternatively using some rmap support to clear out a swath of
  physical memory the new kernel can be loaded into.  

- The new kernel loaded on panic must know about the previous kernel,
  and have various restrictions because of that.


Supporting a kernel loaded from a normal environment is a rather
different problem.  

- It cannot be loaded at it's run location (The current kernel is
  sitting there).

- It should not need to know about the previously executing kernel.

- Work can be done in machine_kexec to allocate memory so everything
  does not need to be pre allocated.

- I can safely use multiple calls to the page allocator instead of
  needing a special mechanism to allocate memory.



And now I go back to the silly exercise of factoring my code so the
new kernel can be kept in locked kernel memory, instead of in a file
while the shutdown scripts are run.

Unless the linux kernel is modified to copy itself to the top of
physical memory when it loads I have trouble seeing how any of this
will help make the panic case easier to implement.

Eric


  reply	other threads:[~2002-11-09 23:01 UTC|newest]

Thread overview: 333+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-31  2:07 Rusty Russell
2002-10-31  2:31 ` Linus Torvalds
2002-10-31  2:43   ` Alexander Viro
2002-10-31 16:36     ` Oliver Xymoron
2002-10-31 17:04       ` Stephen Frost
2002-10-31 17:38       ` Linus Torvalds
2002-10-31 18:00         ` Oliver Xymoron
2002-11-06 20:52           ` Florian Weimer
2002-10-31 22:57     ` Pavel Machek
2002-10-31 22:28       ` Xavier Bestel
2002-10-31 23:08         ` Pavel Machek
2002-11-01  9:55         ` Miquel van Smoorenburg
2002-10-31  3:00   ` Rusty Russell
2002-10-31  3:19     ` tridge
2002-10-31  6:21       ` Chris Wedgwood
2002-11-05  3:38         ` Andreas Gruenbacher
2002-10-31  3:22     ` Christoph Hellwig
2002-10-31  3:31       ` tridge
2002-10-31 10:15     ` Joe Thornber
2002-10-31 14:26       ` Jeff Garzik
2002-10-31 14:55         ` Alan Cox
2002-10-31 21:14       ` Rusty Russell
2002-11-01  8:20         ` Joe Thornber
2002-10-31 11:03     ` Geert Uytterhoeven
2002-10-31 21:17       ` James Simmons
2002-10-31  3:06   ` Rik van Riel
2002-10-31  3:19     ` Stephen Frost
2002-10-31 21:09       ` john stultz
2002-10-31 21:49         ` Werner Almesberger
2002-10-31 22:32           ` john stultz
2002-10-31 22:54             ` Werner Almesberger
2002-11-01  0:54               ` john stultz
2002-11-01  1:31                 ` Werner Almesberger
2002-11-05  3:58                 ` Andreas Gruenbacher
2002-10-31  6:22     ` Chris Wedgwood
2002-10-31  6:48       ` Dax Kelson
2002-10-31  6:56         ` Chris Wedgwood
2002-10-31 14:31           ` Jeff Garzik
2002-10-31 18:12             ` Chris Wedgwood
2002-10-31 18:49               ` Linus Torvalds
2002-10-31 19:43                 ` Chris Wedgwood
2002-11-01 15:25                   ` Linus Torvalds
2002-11-01 15:35                     ` bert hubert
2002-11-01 15:50                     ` Gerald Britton
2002-11-01 18:17                       ` Matt Porter
2002-11-01 16:15                     ` Michael Clark
2002-11-01 16:16                     ` Erik Andersen
2002-11-01 20:43                     ` romieu
2002-10-31 18:28           ` Nicholas Wourms
2002-10-31 18:58             ` Alexander Viro
2002-10-31 19:14               ` Nicholas Wourms
2002-10-31 19:20             ` Alan Cox
2002-10-31 19:17               ` Nicholas Wourms
2002-10-31 20:45               ` Jeff Garzik
2002-11-01  6:00               ` James Morris
2002-10-31  7:10         ` Alexander Viro
2002-10-31  7:21           ` Dax Kelson
2002-10-31  7:42             ` Alexander Viro
2002-10-31 16:24               ` Stephen Wille Padnos
2002-10-31 16:44                 ` Alexander Viro
2002-10-31 17:11                   ` Stephen Frost
2002-10-31 17:30                     ` Alexander Viro
2002-10-31 17:39                       ` Linus Torvalds
2002-10-31 17:36                   ` Richard Gooch
2002-11-02 17:35               ` LA Walsh
2002-11-02 20:44                 ` Chris Wedgwood
2002-10-31 22:53           ` Pavel Machek
2002-10-31  9:44     ` Lech Szychowski
2002-10-31  3:14   ` Karim Yaghmour
2002-10-31 16:00     ` LTT for inclusion into 2.5 bob
2002-10-31 16:19       ` Is your idea good? [was: Re: LTT for inclusion into 2.5] Larry McVoy
2002-10-31 16:38         ` Cort Dougan
2002-10-31 16:47         ` bob
2002-10-31 17:35         ` Karim Yaghmour
2002-10-31  3:21   ` What's left over Stephen Lord
2002-10-31  3:59   ` Andreas Dilger
2002-10-31  4:20   ` Patrick Finnegan
2002-10-31  4:25     ` Christoph Hellwig
2002-10-31  4:31       ` Patrick Finnegan
2002-10-31  5:13   ` Dax Kelson
2002-10-31  6:07   ` [PATCH] kexec for 2.5.45 Eric W. Biederman
2002-10-31  6:25   ` What's left over Matt D. Robinson
2002-10-31 15:46     ` Linus Torvalds
2002-10-31 17:10       ` Patrick Finnegan
2002-10-31 17:13       ` Michael Shuey
2002-10-31 19:04         ` Alan Cox
2002-10-31 19:42           ` Michael Shuey
2002-11-01 22:25           ` Pavel Machek
2002-11-02 13:30             ` Michael Shuey
2002-10-31 17:18       ` Matt D. Robinson
2002-10-31 17:25         ` Linus Torvalds
2002-10-31 17:54           ` Matt D. Robinson
2002-10-31 17:54             ` Linus Torvalds
2002-10-31 18:21               ` Patrick Finnegan
2002-10-31 18:31               ` John Alvord
2002-11-02 23:44             ` Horst von Brand
2002-11-03  1:14               ` Matt D. Robinson
2002-10-31 18:10           ` Chris Friesen
2002-10-31 18:22             ` Linus Torvalds
2002-10-31 20:59               ` Dave Anderson
2002-10-31 21:49                 ` Oliver Xymoron
2002-11-01  1:25                 ` [lkcd-devel] " Matt D. Robinson
2002-11-01  6:34               ` Bill Davidsen
2002-11-01 13:26                 ` Alan Cox
2002-11-01 19:00                   ` Joel Becker
2002-11-01 19:18                     ` Linus Torvalds
2002-11-01 20:06                       ` Steven King
2002-11-02  5:17                         ` Bill Davidsen
2002-11-02  5:36                           ` Zwane Mwaikambo
2002-11-03 14:08                             ` Bill Davidsen
2002-11-02 15:29                           ` Alan Cox
2002-11-03  1:24                             ` [lkcd-general] " Matt D. Robinson
2002-11-03  1:49                               ` Alan Cox
2002-11-03  9:34                                 ` [lkcd-devel] " Matt D. Robinson
2002-11-03 14:33                                 ` Bill Davidsen
2002-11-03 15:34                                   ` Bernd Eckenfels
2002-11-03 16:32                                   ` Alan Cox
2002-11-03 17:08                                     ` [lkcd-devel] " Matt D. Robinson
2002-11-05 18:07                                     ` Bill Davidsen
2002-11-03  3:10                               ` Christoph Hellwig
2002-11-01 20:21                       ` David Lang
2002-11-01 22:25                         ` Werner Almesberger
2002-11-01 22:42                           ` Karim Yaghmour
2002-11-01 22:54                             ` Werner Almesberger
2002-11-01 23:10                               ` Karim Yaghmour
2002-11-01 20:22                       ` [lkcd-devel] " Matt D. Robinson
2002-11-02 13:02                         ` Kai Henningsen
2002-11-01 20:37                       ` Hugh Dickins
2002-11-02 18:23                         ` Geert Uytterhoeven
2002-11-03  2:25                         ` Horst von Brand
2002-11-04 16:18                           ` Hugh Dickins
2002-11-03 13:48                   ` Bill Davidsen
2002-11-03 14:26                     ` yodaiken
2002-11-05 17:09                       ` Bill Davidsen
2002-11-05 17:36                         ` yodaiken
2002-11-04  2:44                     ` [lkcd-general] " Jennie Haywood
2002-11-04 14:45                       ` Henning P. Schmiedehausen
2002-11-04 15:29                         ` Alan Cox
2002-11-04 15:27                           ` Henning P. Schmiedehausen
2002-11-04 15:38                             ` Patrick Finnegan
2002-11-04 16:51                               ` Henning P. Schmiedehausen
2002-11-05  4:57                         ` Werner Almesberger
2002-10-31 18:50             ` Alan Cox
2002-10-31 21:33             ` Rusty Russell
2002-11-01  1:19               ` [lkcd-devel] " Matt D. Robinson
2002-11-01  2:59                 ` Rusty Russell
2002-10-31 18:15           ` Andrew Morton
2002-10-31 19:58             ` Bernhard Kaindl
2002-11-02  0:49             ` What's left over. - Dave's crash code supports a gdb interface for LKCD crash dumps Piet Delaney
2002-10-31 18:16           ` What's left over Oliver Xymoron
2002-10-31 18:26             ` Linus Torvalds
2002-10-31 18:49           ` Rik van Riel
2002-10-31 21:02           ` Jeff Garzik
2002-10-31 22:37             ` Werner Almesberger
2002-11-05 11:42               ` [lkcd-devel] " Suparna Bhattacharya
2002-11-05 18:00                 ` Werner Almesberger
2002-11-05 18:36                   ` Alan Cox
2002-11-05 19:19                     ` Werner Almesberger
2002-11-05 20:10                       ` Alan Cox
2002-11-05 23:25                         ` Werner Almesberger
2002-11-06  0:21                       ` Andy Pfiffer
2002-11-06  1:10                         ` Werner Almesberger
2002-11-06  1:37                           ` Alexander Viro
2002-11-06  2:05                             ` Werner Almesberger
2002-11-07  6:04                               ` Eric W. Biederman
2002-11-07 12:17                                 ` Werner Almesberger
2002-11-06  4:07                             ` Eric W. Biederman
2002-11-06  4:47                               ` Eric W. Biederman
2002-11-06 19:24                               ` Rob Landley
2002-11-10 18:35                         ` Pavel Machek
2002-11-06  2:48                     ` Eric W. Biederman
2002-11-06  4:29                     ` Eric W. Biederman
2002-11-06  6:25                       ` Linus Torvalds
2002-11-06  6:38                         ` Suparna Bhattacharya
2002-11-06  7:48                         ` Eric W. Biederman
2002-11-06  9:11                           ` Suparna Bhattacharya
2002-11-06 22:05                           ` Michal Jaegermann
2002-11-06 16:13                         ` Eric W. Biederman
2002-11-07  8:50                         ` Eric W. Biederman
2002-11-07 15:44                           ` Linus Torvalds
2002-11-09 23:05                             ` Eric W. Biederman [this message]
2002-11-09 23:33                               ` Linus Torvalds
2002-11-10  1:37                                 ` Eric W. Biederman
2002-11-10  2:12                                   ` Alan Cox
2002-11-10  2:16                                     ` Eric W. Biederman
2002-11-10  3:03                                       ` Werner Almesberger
2002-11-10  3:23                                         ` Eric W. Biederman
2002-11-10 14:30                                       ` Alan Cox
2002-11-10 16:56                                         ` Eric W. Biederman
2002-11-10  3:17                                   ` Linus Torvalds
2002-11-10  4:26                                     ` Eric W. Biederman
2002-11-10 18:07                                     ` Kexec 2.5.46-b6 Eric W. Biederman
2002-11-11 18:03                                     ` [lkcd-devel] Re: What's left over Eric W. Biederman
2002-11-11 18:15                                     ` Kexec for v2.5.47 Eric W. Biederman
2002-11-11 22:52                                       ` Kexec for v2.5.47 (test feedback) Andy Pfiffer
2002-11-12  7:22                                         ` Eric W. Biederman
2002-11-13  0:48                                           ` Andy Pfiffer
2002-11-13  4:16                                             ` Eric W. Biederman
2002-11-13 13:26                                             ` Kexec for v2.5.47-bk2 Eric W. Biederman
2002-11-15  9:24                                               ` Suparna Bhattacharya
2002-11-15 14:14                                                 ` Eric W. Biederman
2002-11-15 14:37                                                 ` Werner Almesberger
2002-11-20  9:44                                                   ` Suparna Bhattacharya
2002-11-20 17:28                                                     ` Eric W. Biederman
2002-11-18  0:07                                             ` [ANNOUNCE] kexec-tools-1.6 released Eric W. Biederman
2002-11-18  5:46                                               ` Eric W. Biederman
2002-11-18  8:53                                                 ` [ANNOUNCE][CFT] kexec for v2.5.48 && kexec-tools-1.7 Eric W. Biederman
2002-11-19  1:10                                                   ` [ANNOUNCE][CFT] kexec for v2.5.48 && kexec-tools-1.7 -- Success Story! Andy Pfiffer
2002-11-19 10:25                                                     ` Eric W. Biederman
2002-11-19 17:21                                                       ` Andy Pfiffer
2002-11-19 17:34                                                         ` Eric W. Biederman
2002-11-19 18:17                                                           ` Martin J. Bligh
2002-11-20  9:19                                                             ` Eric W. Biederman
2002-11-19 19:29                                                           ` Andy Pfiffer
2002-11-20  8:49                                                     ` Suparna Bhattacharya
2002-11-20  9:17                                                       ` Eric W. Biederman
2002-11-20 11:59                                                         ` Suparna Bhattacharya
2002-11-20 15:05                                                         ` Werner Almesberger
2002-11-20 16:48                                                           ` Eric W. Biederman
2002-11-19  2:15                                                   ` [ANNOUNCE][CFT] kexec for v2.5.48 && kexec-tools-1.7 Dave Hansen
2002-11-19 10:13                                                     ` Eric W. Biederman
2002-11-19 15:28                                                       ` Martin J. Bligh
2002-11-19 17:44                                                         ` Eric W. Biederman
2002-11-19 16:24                                                       ` Dave Hansen
2002-11-19 17:33                                                         ` Linus Torvalds
2002-11-19 17:48                                                           ` Eric W. Biederman
2002-11-19 17:54                                                             ` Dave Jones
2002-11-19 17:42                                                         ` Eric W. Biederman
2002-12-02  4:41                                                   ` [ANNOUNCE] kexec-tools-1.8 Eric W. Biederman
2002-12-03  2:30                                                     ` Dave Hansen
2002-12-03  7:35                                                       ` Eric W. Biederman
2002-12-13  2:00                                                         ` Dave Hansen
2002-12-02 15:54                                                   ` Eric W. Biederman
2002-11-09 23:39                               ` [lkcd-devel] Re: What's left over Randy.Dunlap
2002-11-10  2:58                                 ` Eric W. Biederman
2002-11-10 14:35                                   ` Alan Cox
2002-11-10 18:13                                     ` Eric W. Biederman
2002-11-10  1:31                               ` Werner Almesberger
2002-11-10  3:10                                 ` Eric W. Biederman
2002-11-10  3:30                                   ` Werner Almesberger
2002-11-10  3:49                                     ` Eric W. Biederman
2002-11-10  3:49                                   ` Linus Torvalds
2002-11-10  2:08                               ` Alan Cox
2002-11-10  2:18                                 ` Eric W. Biederman
2002-11-10 14:31                                   ` Alan Cox
2002-11-07 15:48                           ` Linus Torvalds
2002-11-07 19:32                           ` kexec (was: [lkcd-devel] Re: What's left over.) Andy Pfiffer
2002-11-07 22:13                             ` Andy Pfiffer
2002-11-07 22:56                               ` Werner Almesberger
2002-11-11 17:03                             ` Bill Davidsen
     [not found]                             ` <200211080536.31287.landley@trommello.org>
2002-11-11 17:58                               ` Andy Pfiffer
2002-11-11 18:25                                 ` Eric W. Biederman
2002-11-08 18:01                           ` [lkcd-devel] Re: What's left over Alan Cox
2002-11-09 21:21                   ` Pavel Machek
2002-11-11 16:27                     ` Eric W. Biederman
2002-11-01  1:35             ` Matt D. Robinson
2002-11-01  2:06               ` Jeff Garzik
2002-11-01  3:46                 ` Matt D. Robinson
2002-11-01  4:45                   ` Linus Torvalds
2002-11-01  4:57                     ` Patrick Finnegan
2002-11-01  9:18                       ` Henning P. Schmiedehausen
2002-11-01 14:55                         ` Patrick Finnegan
2002-11-01 15:16                           ` Alexander Viro
2002-11-01 15:27                             ` Patrick Finnegan
2002-11-01 16:16                             ` Patrick Finnegan
2002-11-01 16:32                               ` Larry McVoy
2002-11-01 16:44                                 ` Linux without Linus was " Brian Jackson
2002-11-01 16:58                                   ` Paul Fulghum
2002-11-01 19:14                                 ` Shawn
2002-11-01 19:36                                   ` Shawn
2002-11-01 17:56                               ` Nicolas Pitre
2002-11-01 18:23                               ` Shane R. Stixrud
2002-11-01 19:18                                 ` John Alvord
2002-11-04  2:13                               ` Rob Landley
2002-11-04 14:58                                 ` Patrick Finnegan
2002-11-04 12:59                                   ` Rob Landley
2002-11-01 15:32                           ` Richard B. Johnson
2002-11-01 13:30             ` Alan Cox
2002-11-01 22:28               ` Rusty Russell
2002-11-01  6:27           ` Bill Davidsen
2002-11-01  6:36             ` Linus Torvalds
2002-11-01  7:00               ` [lkcd-devel] " Castor Fu
2002-11-01  8:23               ` Craig I. Hagan
2002-11-01 14:03                 ` Patrick Finnegan
2002-11-02  4:57                 ` Bill Davidsen
2002-11-01 13:28               ` Alan Cox
2002-11-02  5:00                 ` Bill Davidsen
2002-11-02 15:30                   ` Alan Cox
2002-11-02 18:55                   ` Arnaldo Carvalho de Melo
2002-11-02 19:19                     ` romieu
2002-11-02 19:21                       ` Arnaldo Carvalho de Melo
2002-11-02 19:32                         ` romieu
2002-11-02 19:42                           ` Arnaldo Carvalho de Melo
2002-11-02 20:23                             ` romieu
2002-11-02 20:31                     ` Alan Cox
2002-11-02 20:12                       ` Arnaldo Carvalho de Melo
2002-11-01  9:20             ` Henning P. Schmiedehausen
2002-11-01 13:29             ` Alan Cox
2002-10-31 22:20         ` Shawn
2002-10-31 23:14           ` [lkcd-general] " Bernhard Kaindl
2002-11-01  2:01           ` Matt D. Robinson
2002-11-02 10:36             ` Brad Hards
2002-11-02 19:28               ` [lkcd-devel] " Matt D. Robinson
2002-10-31 17:55       ` [lkcd-general] " Dave Craft
2002-10-31 18:45         ` Patrick Mochel
2002-10-31 19:16           ` Stephen Hemminger
2002-10-31 19:57             ` george anzinger
2002-10-31 20:48               ` Stephen Hemminger
2002-10-31 19:33       ` [lkcd-devel] " Castor Fu
2002-10-31  7:46   ` Ville Herva
2002-10-31  9:23     ` Geert Uytterhoeven
2002-10-31  9:39       ` Ville Herva
2002-10-31 10:16   ` Trever L. Adams
2002-10-31 18:08     ` Nicholas Wourms
2002-10-31 13:36   ` mbs
2002-10-31 14:21   ` Chris Friesen
2002-10-31 14:52   ` Suparna Bhattacharya
2002-10-31 16:37   ` Henning P. Schmiedehausen
2002-11-01  0:52   ` James Simmons
2002-11-01 10:24   ` What's left over. (Fbdev rewrite) Helge Hafting
2002-11-05 17:29 ` kexec (was: Re: What's left over.) Werner Almesberger
2002-11-05 18:10   ` Benjamin LaHaise
2002-11-05 19:06   ` Martin J. Bligh
2002-10-31 18:17 [lkcd-devel] Re: What's left over Deepak Kumar Gupta, Noida
2002-10-31 20:22 Andreas Herrmann
2002-10-31 20:40 ` Linus Torvalds
2002-10-31 20:54   ` Patrick Finnegan
2002-10-31 21:08   ` Benjamin LaHaise
2002-10-31 22:04     ` Bernhard Kaindl
2002-11-01  0:33       ` Werner Almesberger
2002-10-31 22:47 Richard J Moore
2002-10-31 23:39 ` Werner Almesberger
2002-11-05 12:45   ` Suparna Bhattacharya

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m1u1iqcpjg.fsf@frodo.biederman.org \
    --to=ebiederm@xmission.com \
    --cc=Martin.Bligh@us.ibm.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=andyp@osdl.org \
    --cc=efault@gmx.de \
    --cc=jgarzik@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkcd-devel@lists.sourceforge.net \
    --cc=lkcd-general@lists.sourceforge.net \
    --cc=rusty@rustcorp.com.au \
    --cc=suparna@in.ibm.com \
    --cc=torvalds@transmeta.com \
    --cc=wa@almesberger.net \
    --cc=yakker@aparity.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome