All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Theodore Tso <tytso@mit.edu>, Linus Torvalds <torvalds@osdl.org>,
	Jeff Bailey <jbailey@ubuntu.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Michael Tokarev <mjt@tls.msk.ru>,
	Roman Zippel <zippel@linux-m68k.org>,
	klibc@zytor.com, linux-kernel@vger.kernel.org,
	Pavel Machek <pavel@ucw.cz>
Subject: Re: [klibc] klibc and what's the next step?
Date: Sat, 01 Jul 2006 17:17:17 -0700	[thread overview]
Message-ID: <44A7108D.6090204@zytor.com> (raw)
In-Reply-To: <20060702000528.GA15375@thunk.org>

Theodore Tso wrote:
> On Sat, Jul 01, 2006 at 01:08:17PM -0700, Linus Torvalds wrote:
>> The argument that user space is more debuggable has been shown to be 
>> largely a red herring. User space is only more debuggable if it does 
>> something independent, and we've seen that user space is _harder_ to debug 
>> than kernel space if we have events going back and forth.
> 
> Agreed, 100%.
> 
> In addition, userspace is debuggable only only if the initramfs has
> enough debugging code in their (like a real live working shell,
> strace, basic shell commands etc.)  Otherwise, it becomes even more
> hellish to debug.  I wasted a huge amount of time trying to figure out
> why the RHEL4 initramfs was incompatible with modern kernels using the
> MPT Fusion SCSI driver, because I couldn't make it stop and break out
> to a working shell; it had some busybox-like nash thing that wasn't
> designed for user interaction, so all I could do was try to make tiny
> changes to the initramfs, wait for the !@#@# very long boot cycle, and
> watch the initial ramdisk fail to mount the root and crash, and
> repeat, for hours on end.  RHEL4's userspace root mount system was
> ***not*** more debuggable, not in the last.  Adding printk's into a
> kernel and recompiling would have been easier, and far less
> frustrating.
> 
> Hopefully kinit will be better, but it's definitely not the case that
> userpsace is easier to debug.  
> 

It isn't automatically easier, but it *can* be.

In your case above, with kinit, I would have added dash and strace (the 
latter would probably have to be statically linked against glibc; I 
haven't actually tried building strace under klibc myself) -- or even 
gdb -- to initramfs, and have /init drop into a shell.  From there one 
can run strace -f on kinit.

One of the criticisms I've gotten for klibc has been why I have included 
dash and a whole bunch of shell utilities when they're not used by the 
default kernel build.  It certainly hasn't been just to prove a point; 
as a matter of fact, getting dash to build correctly under Kbuild proved 
to be surprisingly difficult.  However, by making sure that one can 
*easily* pull together an interactive environment -- even if one didn't 
have one from the start -- one has more readily access to a debuggable 
environment.

Similarly, I try very hard to have small, individually testable modules. 
  I haven't taken that even as far as I'd like to have, in the end, but 
that's on my list of things to do.

	-hpa

  reply	other threads:[~2006-07-02  0:17 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-26  0:57 [klibc 00/43] klibc as a historyless patchset H. Peter Anvin
2006-06-27 13:12 ` klibc and what's the next step? Roman Zippel
2006-06-27 13:39   ` Jeff Garzik
2006-06-27 16:42     ` [klibc] " Greg KH
2006-06-28 23:46       ` Roman Zippel
2006-06-27 17:01     ` Andi Kleen
2006-06-27 17:11       ` H. Peter Anvin
2006-06-27 17:40         ` Andi Kleen
2006-06-27 17:45           ` H. Peter Anvin
2006-06-27 20:22             ` Joshua Hudson
2006-06-28  5:47               ` H. Peter Anvin
2006-06-29  0:04             ` Roman Zippel
2006-07-03 18:30               ` Rob Landley
2006-07-03 18:46                 ` [klibc] " maximilian attems
2006-07-04  1:36                   ` Jeff Bailey
2006-07-04  2:02                     ` H. Peter Anvin
2006-06-27 14:07   ` Jon Smirl
2006-06-27 14:40   ` Jeff Bailey
2006-06-27 19:47   ` Milton Miller
2006-06-28 23:56     ` Roman Zippel
2006-06-29  0:34       ` H. Peter Anvin
2006-06-29 23:33         ` Roman Zippel
2006-06-30  8:00           ` Gerd Hoffmann
2006-06-30 18:08             ` H. Peter Anvin
2006-06-30 22:58               ` Michael Tokarev
2006-06-30 18:11   ` Pavel Machek
2006-06-30 23:04     ` Michael Tokarev
2006-06-30 23:15       ` H. Peter Anvin
2006-07-01 10:56         ` [klibc] " Jeff Bailey
2006-07-01 15:05           ` Theodore Tso
2006-07-01 20:08             ` Linus Torvalds
2006-07-01 21:58               ` Al Viro
2006-07-01 22:31               ` H. Peter Anvin
2006-07-02  0:05               ` Theodore Tso
2006-07-02  0:17                 ` H. Peter Anvin [this message]
2006-07-02  0:38                   ` Theodore Tso
2006-07-02  0:50                     ` H. Peter Anvin
2006-07-01 22:22             ` H. Peter Anvin
2006-07-03  7:23             ` Gerd Hoffmann
2006-07-03 21:36             ` Pavel Machek
2006-07-01 15:22           ` H. Peter Anvin
2006-07-01 15:47           ` Jeff Garzik
2006-06-30 23:32       ` Pavel Machek
2006-07-11  4:48   ` Olaf Hering
2006-07-11 10:29     ` Michael Tokarev
2006-07-11 11:27       ` [klibc] " Olaf Hering
2006-07-11 16:24         ` H. Peter Anvin
2006-07-11 16:40           ` Olaf Hering
2006-07-11 17:05             ` Jeff Garzik
2006-07-11 17:16               ` Olaf Hering
2006-07-11 17:23                 ` H. Peter Anvin
2006-07-11 17:30                   ` Olaf Hering
2006-07-11 17:46                     ` H. Peter Anvin
2006-07-11 18:01                       ` Olaf Hering
2006-07-11 18:04                         ` H. Peter Anvin
2006-07-11 18:10                           ` Olaf Hering
2006-07-11 18:17                             ` H. Peter Anvin
2006-07-11 19:15                               ` Olaf Hering
2006-07-11 19:29                                 ` Linus Torvalds
2006-07-11 19:38                                   ` H. Peter Anvin
2006-07-11 19:51                                     ` Linus Torvalds
2006-07-11 19:59                                       ` Jeff Garzik
2006-07-11 20:01                                       ` Theodore Tso
2006-07-11 20:11                                       ` Olaf Hering
2006-07-11 20:57                                       ` H. Peter Anvin
2006-07-11 18:03                 ` H. Peter Anvin
2006-07-11 18:06                   ` Michael Tokarev
2006-07-11 18:15                   ` Olaf Hering
2006-07-11 18:22                     ` H. Peter Anvin
2006-07-11 18:53                       ` Alan Cox
2006-07-11 18:46                         ` H. Peter Anvin
2006-07-11 20:06                       ` Olaf Hering
2006-07-11 20:22                         ` Olaf Hering
2006-07-11 21:22                         ` Greg KH
2006-07-12 16:54                           ` Olaf Hering
2006-07-12 16:58                             ` Arjan van de Ven
2006-07-12 17:01                               ` Olaf Hering
2006-07-12 21:36                             ` Greg KH
2006-07-11 17:55               ` Michael Tokarev
2006-07-11 17:46             ` Michael Tokarev
2006-07-11 17:52               ` Olaf Hering
2006-07-11 18:02                 ` Michael Tokarev
2006-07-11 10:51     ` Sam Ravnborg
2006-07-11 13:45     ` Theodore Tso
2006-07-11 14:28       ` Michael Tokarev
2006-07-11 15:13       ` [klibc] " Olaf Hering
2006-07-11 15:30         ` Adrian Bunk
2006-07-11 15:47           ` Olaf Hering
2006-07-11 16:21         ` Alan Cox
2006-07-11 14:32     ` Rene Herman
2006-07-12 15:23       ` David Lang
2006-07-13 11:58     ` Pavel Machek
2006-06-27 18:59 ` [klibc 00/43] klibc as a historyless patchset Milton Miller
2006-06-27 19:12   ` H. Peter Anvin
2006-06-27 20:39     ` Milton Miller

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=44A7108D.6090204@zytor.com \
    --to=hpa@zytor.com \
    --cc=jbailey@ubuntu.com \
    --cc=klibc@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjt@tls.msk.ru \
    --cc=pavel@ucw.cz \
    --cc=torvalds@osdl.org \
    --cc=tytso@mit.edu \
    --cc=zippel@linux-m68k.org \
    /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 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.