linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [klibc 00/43] klibc as a historyless patchset
@ 2006-06-26  0:57 H. Peter Anvin
  2006-06-27 13:12 ` klibc and what's the next step? Roman Zippel
  2006-06-27 18:59 ` [klibc 00/43] klibc as a historyless patchset Milton Miller
  0 siblings, 2 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-06-26  0:57 UTC (permalink / raw)
  To: linux-kernel, klibc; +Cc: torvalds

As some people have requested, here is klibc as a historyless patchset
against 2.6.17.  The patchset consists of two parts: changes to the
main kernel code taken straight from the git history (as it is rather
few patches), and additions, grouped by rough divisions.

The majority of the patches are independent in the sense that they
should apply independently, but Makefile/Kbuild files may have to be
adjusted to build a partially patched tree.

This is also available as a git tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-klibc-clean.git

The full history klibc git tree is available at:
git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-klibc.git

The files from the patchset are also available at:
http://www.kernel.org/pub/linux/kernel/people/hpa/klibc-patchset/

This patchset corresponds to version 1.4.6 of the standalone klibc
distribution.

The following represent changes to the main kernel code:

01-add-klibckinit-to-maintainers-file.patch
02-remove-root-mounting-code-from-the-kernel-.patch
03-remove-parts-moved-to-kinit.patch
04-support-klibcarch-being-different-from-the-main-arch.patch
05-need-to-export-ranlib-from-the-top-makefile.patch
06-re-create-root-dev-too-many-architectures-need-it-.patch
07-eliminate-unnecessary-whitespace-delta-vs-linus-tree.patch
08-klibc-default-initramfs-content-stored-in-usrinitramfs-default.patch
09-kbuild-support-single-targets-for-klibc-and-klibc-programs.patch
10-remove-prototype-for-name-to-dev-t.patch
11-enable-klibc-errlist.patch
12-enable-config-klibc-zlib-now-required-to-build-kinit.patch
13-uml-the-klibc-architecture-is-the-underlying-architecture.patch
14-remove-in-kernel-nfsroot-code.patch
15-default-klibcarch--arch.patch
16-sparc64-transmit-arch-specific-options-to-kinit-via-arch-cmd.patch
17-sparc32-transfer-arch-specific-options-to-arch-cmd.patch
18-klibc-inkernel-merge-s390s390x-4.patch

The following represent klibc itself:

19-klibc-basic-build-infrastructure.patch
20-core-klibc-code.patch
21-alpha-support-for-klibc.patch
22-arm-support-for-klibc.patch
23-cris-support-for-klibc.patch
24-i386-support-for-klibc.patch
25-ia64-support-for-klibc.patch
26-m32r-support-for-klibc.patch
27-m68k-support-for-klibc.patch
28-mips-support-for-klibc.patch
29-mips64-support-for-klibc.patch
30-parisc-support-for-klibc.patch
31-ppc-support-for-klibc.patch
32-ppc64-support-for-klibc.patch
33-s390-support-for-klibc.patch
34-sh-support-for-klibc.patch
35-sparc-support-for-klibc.patch
36-sparc64-support-for-klibc.patch
37-x86-64-support-for-klibc.patch
38-simple-test-suite-for-klibc.patch
39-zlib-for-klibc.patch

This is kinit, which actually replaces the in-kernel root-mounting
code:

40-kinit-replacement-for-in-kernel-do-mount-ipconfig-nfsroot.patch

The following are optional utilites, for the convenience of people who
want to create their own custom initramfs, as well as for testing:

41-miscellaneous-utilities-for-klibc.patch
42-dash---a-small-posix-shell-for-klibc.patch
43-a-port-of-gzip-to-klibc.patch


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

* klibc and what's the next step?
  2006-06-26  0:57 [klibc 00/43] klibc as a historyless patchset H. Peter Anvin
@ 2006-06-27 13:12 ` Roman Zippel
  2006-06-27 13:39   ` Jeff Garzik
                     ` (5 more replies)
  2006-06-27 18:59 ` [klibc 00/43] klibc as a historyless patchset Milton Miller
  1 sibling, 6 replies; 95+ messages in thread
From: Roman Zippel @ 2006-06-27 13:12 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: linux-kernel, klibc, torvalds

Hi,

On Sun, 25 Jun 2006, H. Peter Anvin wrote:

> The majority of the patches are independent in the sense that they
> should apply independently, but Makefile/Kbuild files may have to be
> adjusted to build a partially patched tree.

I could now repeat all the concerns I already mentioned, why it shouldn't 
be merged as is (that doesn't mean it shouldn't be merged at all!), but 
they have been pretty much ignored anyway...

What I'm more interested in is basically answering the question and where 
I hope to provoke a bit broader discussion: "What's next?"

Until recently for most developers klibc was not much more than a cool 
idea, but now we have the first incarnation and now we have to do a 
reality check of how it solves our problems. To say it drastically the 
current patch set as it is does not solve a single real problem yet, it 
only moves them from the kernel to kinit, which may be the first step but 
where to?

So what problems are we going to solve now and how? The amount of 
discussion so far is not exactly encouraging. If nobody cares, then there 
don't seem to be any real problems, so why should it be merged at all? Are 
shiny new features more important than functionality?

So anyone who likes to see klibc merged, because it will solve some kind 
of problem for him, please speak up now. Without this information it's 
hard to judge whether we're going to solve the right problems.

Peter, it would really help if you describe your own plans, how you want 
to go forward with it, otherwise it leaves a huge amount of uncertainty 
and since this is a rather big change, I think it's a real good idea to 
reduce this uncertainty, so we know what to expect and everyone can better 
evaluate how these changes will effect him. Right now these patches are 
devoid of any documentation, which make it hard for everyone to judge them 
(and what is IMO the main reason for the current uncomfortable silence).

Feel free to flame me now for making it so difficult, but I'm convinced 
it's better for everyone to make this step (even if it's the right one) 
with more information than we have right now...

bye, Roman

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

* Re: klibc and what's the next step?
  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-27 17:01     ` Andi Kleen
  2006-06-27 14:07   ` Jon Smirl
                     ` (4 subsequent siblings)
  5 siblings, 2 replies; 95+ messages in thread
From: Jeff Garzik @ 2006-06-27 13:39 UTC (permalink / raw)
  To: Roman Zippel; +Cc: H. Peter Anvin, linux-kernel, klibc, torvalds

Roman Zippel wrote:
> What I'm more interested in is basically answering the question and where 
> I hope to provoke a bit broader discussion: "What's next?"
> 
> Until recently for most developers klibc was not much more than a cool 
> idea, but now we have the first incarnation and now we have to do a 
> reality check of how it solves our problems. To say it drastically the 
> current patch set as it is does not solve a single real problem yet, it 
> only moves them from the kernel to kinit, which may be the first step but 
> where to?
> 
> So what problems are we going to solve now and how? The amount of 
> discussion so far is not exactly encouraging. If nobody cares, then there 
> don't seem to be any real problems, so why should it be merged at all? Are 
> shiny new features more important than functionality?

Well, at least for me...  at boot time we run into various limitations 
from the current kernel approach of coding purely userspace activities 
in the kernel, simply because a vehicle for implementing early-boot 
userland operations did not exist.

This klibc patchkit removes stuff that does not need to be in the 
kernel, and provides a platform for improving IP autoconfig, NFS root, 
MD/DM root setup, and various other early-boot activities.

A lot of the larger distros have been moving in this direction anyway, 
by necessity.  They have been stuffing more and more [needed] logic into 
initrd [which is often really initramfs these days], to deal with 
complex boot and root-mounting scenarios like iSCSI and multi-path.

	Jeff



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

* Re: [klibc] klibc and what's the next step?
  2006-06-27 13:12 ` klibc and what's the next step? Roman Zippel
  2006-06-27 13:39   ` Jeff Garzik
@ 2006-06-27 14:07   ` Jon Smirl
  2006-06-27 14:40   ` Jeff Bailey
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 95+ messages in thread
From: Jon Smirl @ 2006-06-27 14:07 UTC (permalink / raw)
  To: Roman Zippel; +Cc: H. Peter Anvin, torvalds, klibc, linux-kernel

On 6/27/06, Jeff Garzik <jeff@garzik.org> wrote:
> Roman Zippel wrote:
> > What I'm more interested in is basically answering the question and where
> > I hope to provoke a bit broader discussion: "What's next?"

POSTing of secondary video cards at boot is a good application for it.
Another is setting an initial mode on undocumented video hardware
where the only documented interface is in user space.

POSTing needs emu86 so that it will work on all platforms, where
should emu86 go?

-- 
Jon Smirl
jonsmirl@gmail.com

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

* Re: [klibc] klibc and what's the next step?
  2006-06-27 13:12 ` klibc and what's the next step? Roman Zippel
  2006-06-27 13:39   ` Jeff Garzik
  2006-06-27 14:07   ` Jon Smirl
@ 2006-06-27 14:40   ` Jeff Bailey
  2006-06-27 19:47   ` Milton Miller
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 95+ messages in thread
From: Jeff Bailey @ 2006-06-27 14:40 UTC (permalink / raw)
  To: Roman Zippel; +Cc: H. Peter Anvin, torvalds, klibc, linux-kernel

Le mardi 27 juin 2006 à 15:12 +0200, Roman Zippel a écrit :

> So anyone who likes to see klibc merged, because it will solve some kind 
> of problem for him, please speak up now. Without this information it's 
> hard to judge whether we're going to solve the right problems.

For Ubuntu, klibc could exist perfectly fine outside of the kernel -
We're using it already and have been for about a year now.

What merging will help us with is:

1) Making sure that klibc remains able to get the system running.  That
way some subtle mismatch between the kernel and klibc doesn't cause a
boot failure on a less-tested config.

2) Help us stay close to the best-practice for booting.  This is both
for making sure that people don't wind up with an unexpected experience
using Ubuntu, but also so that we can contribute back to the common
core.

3) Work towards removing the bootup pieces from the kernel that aren't
used anymore, reducing duplication, crufty in-kernel pieces, yada, yada,
yada...

I'd like to see klibc become the canonical way of booting the kernel
whether it's merged or not.  We already depend on outside tools to get
the system running (udev, module-init-tools), so adding klibc to this
doesn't seem that harmful.

Tks,
Jeff Bailey


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

* Re: [klibc] klibc and what's the next step?
  2006-06-27 13:39   ` Jeff Garzik
@ 2006-06-27 16:42     ` Greg KH
  2006-06-28 23:46       ` Roman Zippel
  2006-06-27 17:01     ` Andi Kleen
  1 sibling, 1 reply; 95+ messages in thread
From: Greg KH @ 2006-06-27 16:42 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Roman Zippel, torvalds, klibc, linux-kernel, H. Peter Anvin

On Tue, Jun 27, 2006 at 09:39:30AM -0400, Jeff Garzik wrote:
> Roman Zippel wrote:
> > What I'm more interested in is basically answering the question and where 
> > I hope to provoke a bit broader discussion: "What's next?"
> > 
> > Until recently for most developers klibc was not much more than a cool 
> > idea, but now we have the first incarnation and now we have to do a 
> > reality check of how it solves our problems. To say it drastically the 
> > current patch set as it is does not solve a single real problem yet, it 
> > only moves them from the kernel to kinit, which may be the first step but 
> > where to?
> > 
> > So what problems are we going to solve now and how? The amount of 
> > discussion so far is not exactly encouraging. If nobody cares, then there 
> > don't seem to be any real problems, so why should it be merged at all? Are 
> > shiny new features more important than functionality?
> 
> Well, at least for me...  at boot time we run into various limitations 
> from the current kernel approach of coding purely userspace activities 
> in the kernel, simply because a vehicle for implementing early-boot 
> userland operations did not exist.
> 
> This klibc patchkit removes stuff that does not need to be in the 
> kernel, and provides a platform for improving IP autoconfig, NFS root, 
> MD/DM root setup, and various other early-boot activities.
> 
> A lot of the larger distros have been moving in this direction anyway, 
> by necessity.  They have been stuffing more and more [needed] logic into 
> initrd [which is often really initramfs these days], to deal with 
> complex boot and root-mounting scenarios like iSCSI and multi-path.

I second this statement, having a method of implementing early boot
userspace options is a very good thing to have, and one that the distros
really want (as they have already been doing it on their own in
different ways, some using klibc already, others using uclibc, and still
others using glibc.)  Standardizing on a method to implement this is
very much needed.

thanks,

greg k-h

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

* Re: klibc and what's the next step?
  2006-06-27 13:39   ` Jeff Garzik
  2006-06-27 16:42     ` [klibc] " Greg KH
@ 2006-06-27 17:01     ` Andi Kleen
  2006-06-27 17:11       ` H. Peter Anvin
  1 sibling, 1 reply; 95+ messages in thread
From: Andi Kleen @ 2006-06-27 17:01 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: H. Peter Anvin, linux-kernel, klibc, torvalds

Jeff Garzik <jeff@garzik.org> writes:
> 
> MD/DM root setup,

That would require pulling the tools for that into the kernel source right?
Not sure that's a good idea. Do you really want /usr/src/linux/liblvm ? 

-Andi

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

* Re: klibc and what's the next step?
  2006-06-27 17:01     ` Andi Kleen
@ 2006-06-27 17:11       ` H. Peter Anvin
  2006-06-27 17:40         ` Andi Kleen
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-06-27 17:11 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Jeff Garzik, linux-kernel, klibc, torvalds

Andi Kleen wrote:
> Jeff Garzik <jeff@garzik.org> writes:
>> MD/DM root setup,
> 
> That would require pulling the tools for that into the kernel source right?
> Not sure that's a good idea. Do you really want /usr/src/linux/liblvm ? 
> 

Only enough to bring up the filesystem.  This is, of course, already the 
case for MD.  That code has (mostly) not yet been moved to userspace, 
but that is definitely on the road map going forward.

	-hpa


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

* Re: klibc and what's the next step?
  2006-06-27 17:11       ` H. Peter Anvin
@ 2006-06-27 17:40         ` Andi Kleen
  2006-06-27 17:45           ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Andi Kleen @ 2006-06-27 17:40 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Jeff Garzik, linux-kernel, klibc, torvalds

On Tuesday 27 June 2006 19:11, H. Peter Anvin wrote:
> Andi Kleen wrote:
> > Jeff Garzik <jeff@garzik.org> writes:
> >> MD/DM root setup,
> > 
> > That would require pulling the tools for that into the kernel source right?
> > Not sure that's a good idea. Do you really want /usr/src/linux/liblvm ? 
> > 
> 
> Only enough to bring up the filesystem.  This is, of course, already the 
> case for MD.  That code has (mostly) not yet been moved to userspace, 
> but that is definitely on the road map going forward.

But not for LVM where this can be fairly complex.

And next would be probably iSCSI. Maybe it's better to leave some stuff
in initramfs. 

-Andi

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

* Re: klibc and what's the next step?
  2006-06-27 17:40         ` Andi Kleen
@ 2006-06-27 17:45           ` H. Peter Anvin
  2006-06-27 20:22             ` Joshua Hudson
  2006-06-29  0:04             ` Roman Zippel
  0 siblings, 2 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-06-27 17:45 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Jeff Garzik, linux-kernel, klibc, torvalds

Andi Kleen wrote:
> 
> But not for LVM where this can be fairly complex.
> 
> And next would be probably iSCSI. Maybe it's better to leave some stuff
> in initramfs. 
> 

Of course, and even if it's built into the kernel tree it doesn't have 
to be monolithic (one binary.)  Current kinit is monolithic (although 
there are chunks available as standalone binaries, and I have gotten 
requests to break out more), but that's mostly because I've been 
concerned about bloating the overall size of the kernel image for 
embedded people.

	-hpa

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

* Re: [klibc 00/43] klibc as a historyless patchset
  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 18:59 ` Milton Miller
  2006-06-27 19:12   ` H. Peter Anvin
  1 sibling, 1 reply; 95+ messages in thread
From: Milton Miller @ 2006-06-27 18:59 UTC (permalink / raw)
  To: LKML, H. Peter Anvin

As a historyless patchset, this gets the merge all wrong.

If the reason to put this in tree is to keep the kernel just working
then there is a great big hole of 40 patches for git bisect to find.

On Jun 25, 2006, at 8:10 PM, H. Peter Anvin wrote:

> changes to the
> main kernel code taken straight from the git history (as it is rather
> few patches), and additions, grouped by rough divisions.

If they are in the wrong order then that is not good enough.
The patch names and descriptions are wrong because the are from
the klibc git tree.

> 01-add-klibckinit-to-maintainers-file.patch
> 02-remove-root-mounting-code-from-the-kernel-.patch
> 03-remove-parts-moved-to-kinit.patch
> 04-support-klibcarch-being-different-from-the-main-arch.patch
This looks to be 04-powerpc-set-klibc-arch

> 05-need-to-export-ranlib-from-the-top-makefile.patch
> 06-re-create-root-dev-too-many-architectures-need-it-.patch
Make the "move stuff i need" and make it first

> 07-eliminate-unnecessary-whitespace-delta-vs-linus-tree.patch

I didn't look, this corrects whitespace before patching? ok early

> 08-klibc-default-initramfs-content-stored-in-usrinitramfs-default.patch
> 09-kbuild-support-single-targets-for-klibc-and-klibc-programs.patch
> 10-remove-prototype-for-name-to-dev-t.patch
> 11-enable-klibc-errlist.patch
What does this do?  No Help, no description, and doesn't trigger
anything in this patch.

> 12-enable-config-klibc-zlib-now-required-to-build-kinit.patch
What does this do?  No Help, no description, and doesn't do anything
in the curreent patch

> 13-uml-the-klibc-architecture-is-the-underlying-architecture.patch
> 14-remove-in-kernel-nfsroot-code.patch
> 15-default-klibcarch--arch.patch
> 16-sparc64-transmit-arch-specific-options-to-kinit-via-arch-cmd.patch
> 17-sparc32-transfer-arch-specific-options-to-arch-cmd.patch
	where is x86 and x86_64 ?
	oh you deleted and did not put that back

> 18-klibc-inkernel-merge-s390s390x-4.patch
	This patchname is meaningless.
	The description in the patch is worse.
	It looks like it should be 18-s390-set-klibcarch

Hmm... i didn't find the patch removig usr/Makefile, just adding
usr/Kbuild.   usr/Kbuild should be a diff against the existing
usr/Makefile, whcih can be renamed.

As a guess here would be my order and renames:

07-eliminate-unnecessary-whitespace-delta-vs-linus-tree.patch
	This should be making the delta the right way
06-re-create-root-dev-too-many-architectures-need-it-.patch
	nee do-mounts-is-goiing-move-root-dev
	I think initramfs.c might be a temporary home
16-sparc64-transmit-arch-specific-options-to-kinit-via-arch-cmd.patch
17-sparc32-transfer-arch-specific-options-to-arch-cmd.patch
	keep the global varables, make the arch_initcall global, and keep
	the code in x86 and x86-64 setup.c
	"export-arch-set-ramdiskflags-to-early-userspace"
08-klibc-default-initramfs-content-stored-in-usrinitramfs-default.patch

05-need-to-export-ranlib-from-the-top-makefile.patch
15-default-klibcarch--arch.patch
04-support-klibcarch-being-different-from-the-main-arch.patch
	powerpc-set-klibcarch
18-klibc-inkernel-merge-s390s390x-4.patch
	s390-set-klibcarch
13-uml-the-klibc-architecture-is-the-underlying-architecture.patch
xx-rename-usr-Makefile-usr-Kbuild	

19-klibc-basic-build-infrastructure.patch
09-kbuild-support-single-targets-for-klibc-and-klibc-programs.patch

01-add-klibckinit-to-maintainers-file.patch
20-37,39
11-enable-klibc-errlist.patch
12-enable-config-klibc-zlib-now-required-to-build-kinit.patch
40,38,41-43

02-remove-root-mounting-code-from-the-kernel-.patch
	minus the x86 setup stuff
03-remove-parts-moved-to-kinit.patch
	remove-power-disk.c-resume-parts-moved ...
10-remove-prototype-for-name-to-dev-t.patch
14-remove-in-kernel-nfsroot-code.patch


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

* Re: [klibc 00/43] klibc as a historyless patchset
  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
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-06-27 19:12 UTC (permalink / raw)
  To: Milton Miller; +Cc: LKML

Milton Miller wrote:
> As a historyless patchset, this gets the merge all wrong.
> 
> If the reason to put this in tree is to keep the kernel just working
> then there is a great big hole of 40 patches for git bisect to find.
> 
> On Jun 25, 2006, at 8:10 PM, H. Peter Anvin wrote:
> 
>> changes to the
>> main kernel code taken straight from the git history (as it is rather
>> few patches), and additions, grouped by rough divisions.
> 
> If they are in the wrong order then that is not good enough.
> The patch names and descriptions are wrong because the are from
> the klibc git tree.
> 
>> 01-add-klibckinit-to-maintainers-file.patch
>> 02-remove-root-mounting-code-from-the-kernel-.patch
>> 03-remove-parts-moved-to-kinit.patch
>> 04-support-klibcarch-being-different-from-the-main-arch.patch
> This looks to be 04-powerpc-set-klibc-arch
> 
>> 05-need-to-export-ranlib-from-the-top-makefile.patch
>> 06-re-create-root-dev-too-many-architectures-need-it-.patch
> Make the "move stuff i need" and make it first
> 
>> 07-eliminate-unnecessary-whitespace-delta-vs-linus-tree.patch
> 
> I didn't look, this corrects whitespace before patching? ok early
> 
>> 08-klibc-default-initramfs-content-stored-in-usrinitramfs-default.patch
>> 09-kbuild-support-single-targets-for-klibc-and-klibc-programs.patch
>> 10-remove-prototype-for-name-to-dev-t.patch
>> 11-enable-klibc-errlist.patch
> What does this do?  No Help, no description, and doesn't trigger
> anything in this patch.
> 
>> 12-enable-config-klibc-zlib-now-required-to-build-kinit.patch
> What does this do?  No Help, no description, and doesn't do anything
> in the curreent patch

usr/klibc/Kbuild:

libc-$(CONFIG_KLIBC_ZLIB)    += \
         zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/gzio.o \
         zlib/uncompr.o zlib/deflate.o zlib/trees.o zlib/zutil.o \
         zlib/inflate.o zlib/infback.o zlib/inftrees.o zlib/inffast.o

At this point, this is required by kinit, which is why it is not 
possible to disable.

>> 13-uml-the-klibc-architecture-is-the-underlying-architecture.patch
>> 14-remove-in-kernel-nfsroot-code.patch
>> 15-default-klibcarch--arch.patch
>> 16-sparc64-transmit-arch-specific-options-to-kinit-via-arch-cmd.patch
>> 17-sparc32-transfer-arch-specific-options-to-arch-cmd.patch
>     where is x86 and x86_64 ?
>     oh you deleted and did not put that back

That's correct; I went around and talked to both x86 and sparc people, 
and the x86 people uniformly announced rdev support as being obsolete; 
the sparc people, however, continue to rely on being able to get data 
from openprom.


>> 18-klibc-inkernel-merge-s390s390x-4.patch
>     This patchname is meaningless.
>     The description in the patch is worse.
>     It looks like it should be 18-s390-set-klibcarch
> 
> Hmm... i didn't find the patch removig usr/Makefile, just adding
> usr/Kbuild.   usr/Kbuild should be a diff against the existing
> usr/Makefile, whcih can be renamed.

True.  Git could work this out.

I have been reluctant to spend too much time on packaging, because I've 
still had the issue of continue to maintain the out-of-tree distribution 
(which includes usr/Kbuild) indefinitely.  I need to spend some more 
time scripting.

	-hpa


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

* Re: klibc and what's the next step?
  2006-06-27 13:12 ` klibc and what's the next step? Roman Zippel
                     ` (2 preceding siblings ...)
  2006-06-27 14:40   ` Jeff Bailey
@ 2006-06-27 19:47   ` Milton Miller
  2006-06-28 23:56     ` Roman Zippel
  2006-06-30 18:11   ` Pavel Machek
  2006-07-11  4:48   ` Olaf Hering
  5 siblings, 1 reply; 95+ messages in thread
From: Milton Miller @ 2006-06-27 19:47 UTC (permalink / raw)
  To: LKML, Roman Zippel, H. Peter Anvin

[I'm not on the list, apologies for dropping anyone from to:]

On Jun 27, 2006, at 8:11 AM, Roman Zippel wrote:
>
> Hi,
>
> On Sun, 25 Jun 2006, H. Peter Anvin wrote:
>
>> The majority of the patches are independent in the sense that they
>> should apply independently, but Makefile/Kbuild files may have to be
>> adjusted to build a partially patched tree.
>
> I could now repeat all the concerns I already mentioned, why it 
> shouldn't
> be merged as is (that doesn't mean it shouldn't be merged at all!), but
> they have been pretty much ignored anyway...

I'm guessing these threads?

http://marc.theaimsgroup.com/?l=linux-kernel&m=114946240404001&w=2
http://marc.theaimsgroup.com/?l=linux-kernel&m=114967046318388&w=2


>
> What I'm more interested in is basically answering the question and 
> where
> I hope to provoke a bit broader discussion: "What's next?"
>
> Until recently for most developers klibc was not much more than a cool
> idea, but now we have the first incarnation and now we have to do a
> reality check of how it solves our problems. To say it drastically the
> current patch set as it is does not solve a single real problem yet, it
> only moves them from the kernel to kinit, which may be the first step 
> but
> where to?
>
> So what problems are we going to solve now and how? The amount of
> discussion so far is not exactly encouraging. If nobody cares, then 
> there
> don't seem to be any real problems, so why should it be merged at all? 
> Are
> shiny new features more important than functionality?

Let me see if I can summarize:

* There is concern about how much is bloat, where do we draw the line 
for in-kernel

* There is concern about duplicating user space utilities.  We moved 
the kernel broken md assemble instead of getting the current one from 
mdadm, and that should be part of mdadm package.

* There is concern that distros won't want to use this anyways -- They 
need more features and use a bigger library than klibc provides.

* Let me propose one:  Even with kinit in the kernel, users will still 
be broken because they will use there existing external initramfs.  
This means we can't move stuff like opening /dev/console to kinit.

* Some distributions are already using klibc and have been.  They see 
the reason to merge is to have the canonical api with the kernel to 
avoid version mismatch.


Ok, now let me make a radical proposal:

1_  Create the utilities in klibc distribution.

2.  A new Kbuild (Makefile) variable, features-y, declares what initrd 
features are required because they were removed from the kernel but 
configured.

3.  Create a file containing the feature list of the initrd.  Maybe a 
directory of files so we don't get overwrite problems.

4.  Have the build system parse the built-in initramfs, extract the 
feature file(s), and fail if it does not contain the magic strings 
required as defined by the Makefiles.

5.  Require features being removed have the user space tested and 
checked into a release of the kinit distribution before merging the 
removal.

Distros would just create a feature file claiming what their initrd 
loaded initramfs build script will create and point 
CONFIG_INITRAMFS_SOURCE to include that.  The whole initramfs doesn't 
have to be put in the kernel, just the feature files.

Yes, i said kinit distribution.   While it needs to build against 
klibc, it may or may not be part of that package.


> So anyone who likes to see klibc merged, because it will solve some 
> kind
> of problem for him, please speak up now. Without this information it's
> hard to judge whether we're going to solve the right problems.
>
> Peter, it would really help if you describe your own plans, how you 
> want
> to go forward with it, otherwise it leaves a huge amount of uncertainty
> and since this is a rather big change, I think it's a real good idea to
> reduce this uncertainty, so we know what to expect and everyone can 
> better
> evaluate how these changes will effect him.

I guess this would be a statement on maintaining kinit / klibc 
development.

> Right now these patches are
> devoid of any documentation, which make it hard for everyone to judge 
> them
> (and what is IMO the main reason for the current uncomfortable 
> silence).

The Kconfig variables for klibc have no help.

Was the Kbuild documetation updated to mention $(klibc)= ?

>
> Feel free to flame me now for making it so difficult, but I'm convinced
> it's better for everyone to make this step (even if it's the right one)
> with more information than we have right now...
>
> bye, Roman
>
>

milton

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

* Re: klibc and what's the next step?
  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
  1 sibling, 1 reply; 95+ messages in thread
From: Joshua Hudson @ 2006-06-27 20:22 UTC (permalink / raw)
  To: linux-kernel

I currently use it as a replacement for initrd that uses approx 1/2
the RAM (maybe less when I get around to changing CONFIG_MINIX_FS to
module).

I couldn't care less about kinit right now as I run dash there, but it
could be useful if root= support is removed.

BTW, is there a kinit= kernel command line so I can spawn an
interactive shell rather than /init?  init= doesn't do it.

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

* Re: [klibc 00/43] klibc as a historyless patchset
  2006-06-27 19:12   ` H. Peter Anvin
@ 2006-06-27 20:39     ` Milton Miller
  0 siblings, 0 replies; 95+ messages in thread
From: Milton Miller @ 2006-06-27 20:39 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: LKML


On Jun 27, 2006, at 2:12 PM, H. Peter Anvin wrote:

> Milton Miller wrote:
>>> 12-enable-config-klibc-zlib-now-required-to-build-kinit.patch
>> What does this do?  No Help, no description, and doesn't do anything
>> in the curreent patch
>
> usr/klibc/Kbuild:
>
> libc-$(CONFIG_KLIBC_ZLIB)    += \
>         zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/gzio.o \
>         zlib/uncompr.o zlib/deflate.o zlib/trees.o zlib/zutil.o \
>         zlib/inflate.o zlib/infback.o zlib/inftrees.o zlib/inffast.o
>
> At this point, this is required by kinit, which is why it is not 
> possible to disable.

But that file is in 19-, so at this point in the sequence it still
does nothing, and has no help.

Oh, and the files don't exist until 39, so the build breaks from
19 to 39.  If you don't want to split the makefile, put that after
39.

>
>>> 13-uml-the-klibc-architecture-is-the-underlying-architecture.patch
>>> 14-remove-in-kernel-nfsroot-code.patch
>>> 15-default-klibcarch--arch.patch
>>> 16-sparc64-transmit-arch-specific-options-to-kinit-via-arch-cmd.patch
>>> 17-sparc32-transfer-arch-specific-options-to-arch-cmd.patch
>>     where is x86 and x86_64 ?
>>     oh you deleted and did not put that back
>
> That's correct; I went around and talked to both x86 and sparc people, 
> and the x86 people uniformly announced rdev support as being obsolete; 
> the sparc people, however, continue to rely on being able to get data 
> from openprom.

Then it should be a seprate patch, and go though feature-removal or
not on its own merits.

>>> 18-klibc-inkernel-merge-s390s390x-4.patch
>>     This patchname is meaningless.
>>     The description in the patch is worse.
>>     It looks like it should be 18-s390-set-klibcarch
>> Hmm... i didn't find the patch removig usr/Makefile, just adding
>> usr/Kbuild.   usr/Kbuild should be a diff against the existing
>> usr/Makefile, whcih can be renamed.
>
> True.  Git could work this out.
>
> I have been reluctant to spend too much time on packaging, because 
> I've still had the issue of continue to maintain the out-of-tree 
> distribution (which includes usr/Kbuild) indefinitely.  I need to 
> spend some more time scripting.

Because the out-of-tree is trying to be buildable in-tree?  Or because
the out-of-tree and in-tree both need to build the same tools?

milton


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

* Re: klibc and what's the next step?
  2006-06-27 20:22             ` Joshua Hudson
@ 2006-06-28  5:47               ` H. Peter Anvin
  0 siblings, 0 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-06-28  5:47 UTC (permalink / raw)
  To: linux-kernel

Followup to:  <bda6d13a0606271322x6f2d76f4wfdbc885062d9a145@mail.gmail.com>
By author:    "Joshua Hudson" <joshudson@gmail.com>
In newsgroup: linux.dev.kernel
> 
> BTW, is there a kinit= kernel command line so I can spawn an
> interactive shell rather than /init?  init= doesn't do it.
> 

Yes, it's called rdinit=.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  2006-06-27 16:42     ` [klibc] " Greg KH
@ 2006-06-28 23:46       ` Roman Zippel
  0 siblings, 0 replies; 95+ messages in thread
From: Roman Zippel @ 2006-06-28 23:46 UTC (permalink / raw)
  To: Greg KH; +Cc: Jeff Garzik, torvalds, klibc, linux-kernel, H. Peter Anvin

Hi,

On Tue, 27 Jun 2006, Greg KH wrote:

> On Tue, Jun 27, 2006 at 09:39:30AM -0400, Jeff Garzik wrote:
> > Roman Zippel wrote:
> > > What I'm more interested in is basically answering the question and where 
> > > I hope to provoke a bit broader discussion: "What's next?"
> > > 
> > > Until recently for most developers klibc was not much more than a cool 
> > > idea, but now we have the first incarnation and now we have to do a 
> > > reality check of how it solves our problems. To say it drastically the 
> > > current patch set as it is does not solve a single real problem yet, it 
> > > only moves them from the kernel to kinit, which may be the first step but 
> > > where to?
> > > 
> > > So what problems are we going to solve now and how? The amount of 
> > > discussion so far is not exactly encouraging. If nobody cares, then there 
> > > don't seem to be any real problems, so why should it be merged at all? Are 
> > > shiny new features more important than functionality?
> > 
> > Well, at least for me...  at boot time we run into various limitations 
> > from the current kernel approach of coding purely userspace activities 
> > in the kernel, simply because a vehicle for implementing early-boot 
> > userland operations did not exist.
> > 
> > This klibc patchkit removes stuff that does not need to be in the 
> > kernel, and provides a platform for improving IP autoconfig, NFS root, 
> > MD/DM root setup, and various other early-boot activities.
> > 
> > A lot of the larger distros have been moving in this direction anyway, 
> > by necessity.  They have been stuffing more and more [needed] logic into 
> > initrd [which is often really initramfs these days], to deal with 
> > complex boot and root-mounting scenarios like iSCSI and multi-path.
> 
> I second this statement, having a method of implementing early boot
> userspace options is a very good thing to have, and one that the distros
> really want (as they have already been doing it on their own in
> different ways, some using klibc already, others using uclibc, and still
> others using glibc.)  Standardizing on a method to implement this is
> very much needed.

I guess this describes pretty much describes the goal and I don't think 
anyone really disagrees.
The question is now how do we get there? The current klibc patches give no 
answer to that, there is no documentation or any prototype, which would 
give a good idea how to get this stuff into initramfs in a manageable way.
The current responses indicate that the primary (or at least initial) 
users would be distributions, but there is no hint how the current klibc 
stuff can be used by them, which IMO is a serious problem.
The problem here is that we are about to create a new kernel-userspace 
interface and considering our track record here, I think it's a really bad 
idea to go into this practically blind. How will distributions put their 
stuff into initramfs?

bye, Roman

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

* Re: klibc and what's the next step?
  2006-06-27 19:47   ` Milton Miller
@ 2006-06-28 23:56     ` Roman Zippel
  2006-06-29  0:34       ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Roman Zippel @ 2006-06-28 23:56 UTC (permalink / raw)
  To: Milton Miller; +Cc: LKML, H. Peter Anvin

Hi,

On Tue, 27 Jun 2006, Milton Miller wrote:

> > I could now repeat all the concerns I already mentioned, why it 
> > shouldn't
> > be merged as is (that doesn't mean it shouldn't be merged at all!), but
> > they have been pretty much ignored anyway...
> 
> I'm guessing these threads?
> 
> http://marc.theaimsgroup.com/?l=linux-kernel&m=114946240404001&w=2
> http://marc.theaimsgroup.com/?l=linux-kernel&m=114967046318388&w=2

Yes.

> Let me see if I can summarize:
> 
> * There is concern about how much is bloat, where do we draw the line 
> for in-kernel

That actually wouldn't be my initial concern. Otherwise I'm happy to point 
out kernel bloat, but here it's more important to prototype a mechanism. 
In this case bloat can still be fixed later, as it's rather isolated 
behind a standard API.

> * There is concern about duplicating user space utilities.  We moved 
> the kernel broken md assemble instead of getting the current one from 
> mdadm, and that should be part of mdadm package.

The problem here is twofold. First, duplication means extra maintenance 
overhead, various version of the copies have to be kept in sync. The 
temptation to fix only the kernel version without updating the normal 
version could be quite big, so that users might not realize they have 
broken tools until they e.g. try reconfigure the system.
Second, whatever we deliver with the kernel, might become part of kernel 
API (e.g. config files), which needs to be supported for a long time. 
Compatibility code can accumulate rather quickly.

> * Some distributions are already using klibc and have been.  They see 
> the reason to merge is to have the canonical api with the kernel to 
> avoid version mismatch.

klibc will continue as independent project anyway, so it should not be 
difficult to include from the kernel whatever the distribution provides. 
It would help avoiding possible problems with mixing binaries built from 
different libraries.

bye, Roman

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

* Re: klibc and what's the next step?
  2006-06-27 17:45           ` H. Peter Anvin
  2006-06-27 20:22             ` Joshua Hudson
@ 2006-06-29  0:04             ` Roman Zippel
  2006-07-03 18:30               ` Rob Landley
  1 sibling, 1 reply; 95+ messages in thread
From: Roman Zippel @ 2006-06-29  0:04 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Andi Kleen, Jeff Garzik, linux-kernel, klibc, torvalds

Hi,

On Tue, 27 Jun 2006, H. Peter Anvin wrote:

> > But not for LVM where this can be fairly complex.
> > 
> > And next would be probably iSCSI. Maybe it's better to leave some stuff
> > in initramfs. 
> 
> Of course, and even if it's built into the kernel tree it doesn't have to be
> monolithic (one binary.)  Current kinit is monolithic (although there are
> chunks available as standalone binaries, and I have gotten requests to break
> out more), but that's mostly because I've been concerned about bloating the
> overall size of the kernel image for embedded people.

If you are concerned about this simply keep the whole thing optional. 
Embedded application usually know their boot device and they don't need no 
fancy initramfs.

bye, Roman

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

* Re: klibc and what's the next step?
  2006-06-28 23:56     ` Roman Zippel
@ 2006-06-29  0:34       ` H. Peter Anvin
  2006-06-29 23:33         ` Roman Zippel
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-06-29  0:34 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Milton Miller, LKML, H. Peter Anvin

Followup to:  <Pine.LNX.4.64.0606290117220.17704@scrub.home>
By author:    Roman Zippel <zippel@linux-m68k.org>
In newsgroup: linux.dev.kernel
> > 
> > * There is concern about how much is bloat, where do we draw the line 
> > for in-kernel
> 
> That actually wouldn't be my initial concern. Otherwise I'm happy to point 
> out kernel bloat, but here it's more important to prototype a mechanism. 
> In this case bloat can still be fixed later, as it's rather isolated 
> behind a standard API.
> 

First of all, I don't think there is any significant amount of bloat
(in the sense of a larger kernel image.)  I'm not saying kinit-based
kernel images are *smaller*, but they shouldn't be significantly
larger.

Additionally, you can trivially exclude it in entirety by overriding
initramfs_source.txt, if you are providing your own initramfs, which a
lot of people do nowadays.

> > * There is concern about duplicating user space utilities.  We moved 
> > the kernel broken md assemble instead of getting the current one from 
> > mdadm, and that should be part of mdadm package.
> 
> The problem here is twofold. First, duplication means extra maintenance 
> overhead, various version of the copies have to be kept in sync. The 
> temptation to fix only the kernel version without updating the normal 
> version could be quite big, so that users might not realize they have 
> broken tools until they e.g. try reconfigure the system.
> Second, whatever we deliver with the kernel, might become part of kernel 
> API (e.g. config files), which needs to be supported for a long time. 
> Compatibility code can accumulate rather quickly.

The code currently in kinit is trying to be as closely compatible with
the mainstream kernel as practical -- a drop-in replacement.  Thus, I
have actively avoided making radical changes, and have in fact jumped
through hoops trying to stay as close to the current model as humanly
possible unless incredibly obsolete (rdev on x86, everyone I've talked
to agrees it's not worth supporting; it would be trivial if it's ever
an issue.)

I definitely agree -- and I'm sure Neil does as well -- that the md
code should be rewritten, but as long as the whole thing is maintained
by me out of tree I want to minimize the delta.

The whole point of this exercise is that it gives us a platform by
which to reduce the maintenance of multiple different code bases.
Kernel programming is completely different than user-space
programming, it's poorly understood, and it is much more difficult.
With klibc, it's trivial to share code with even fairly large
userspace projects (e.g. udev); furthermore it is trivial to create
standalone components (e.g. nfsmount) which can not only be tested
standalone, but actually used by customized userspaces, thus
improving code reuse and reducing overall complexity.

> > * Some distributions are already using klibc and have been.  They see 
> > the reason to merge is to have the canonical api with the kernel to 
> > avoid version mismatch.
> 
> klibc will continue as independent project anyway, so it should not be 
> difficult to include from the kernel whatever the distribution provides. 
> It would help avoiding possible problems with mixing binaries built from 
> different libraries.

As long as klibc/kinit is not merged, the current code will have to be
maintained.  This means maintaining in-kernel ipconfig, nfsroot, and
it pretty much dooms the possibility of getting stuff like md detect
and partition discovery rewritten.

The utility of klibc is thus greatly diminished by not having it in
the mainline kernel tree.  Its performance in -mm so far has shown
that it works just fine.

Incidentally, there is one more reason for klibc which hasn't gotten
much mention, but it provides a prototype userspace for kernel
developers to:

  a) test new features (or at least a significant subset thereof), and
  b) document, in code, a recommended way for the more advanced libcs
     to make new features available to userspace, in the form of
     headers and the like.

	-hpa


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

* Re: klibc and what's the next step?
  2006-06-29  0:34       ` H. Peter Anvin
@ 2006-06-29 23:33         ` Roman Zippel
  2006-06-30  8:00           ` Gerd Hoffmann
  0 siblings, 1 reply; 95+ messages in thread
From: Roman Zippel @ 2006-06-29 23:33 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Milton Miller, LKML

Hi,

On Wed, 28 Jun 2006, H. Peter Anvin wrote:

> > > * There is concern about how much is bloat, where do we draw the line 
> > > for in-kernel
> > 
> > That actually wouldn't be my initial concern. Otherwise I'm happy to point 
> > out kernel bloat, but here it's more important to prototype a mechanism. 
> > In this case bloat can still be fixed later, as it's rather isolated 
> > behind a standard API.
> 
> First of all, I don't think there is any significant amount of bloat
> (in the sense of a larger kernel image.)  I'm not saying kinit-based
> kernel images are *smaller*, but they shouldn't be significantly
> larger.

As I said, IMO it's not an immediate issue.

> The code currently in kinit is trying to be as closely compatible with
> the mainstream kernel as practical -- a drop-in replacement.  Thus, I
> have actively avoided making radical changes,

The point is, this also makes it its largest problem - it adds no 
immediate value, you add a lot of infrastructure without a single user. 
There is practically nothing, where one could say "Yes, that looks like a 
good way to go forward."

As it looks like it's distribution which are mostly interested in this. 
Have you talked with any distribution maintainer to find out what they 
need and what they want to put initramfs? What are the exact problems 
which distributions have and how do you want to solve them?
Here it should be not that difficult to prototype any new mechanism and
whether it uses an initrd or initramfs is not important initially. From 
this it would be a lot easier to see what is required from the kernel. 

> I definitely agree -- and I'm sure Neil does as well -- that the md
> code should be rewritten, but as long as the whole thing is maintained
> by me out of tree I want to minimize the delta.

The question should rather be: how can Neil maintain it out of tree?
How do we avoid having to split all utils into a klibc version and the 
normal version?

> The whole point of this exercise is that it gives us a platform by
> which to reduce the maintenance of multiple different code bases.
> Kernel programming is completely different than user-space
> programming, it's poorly understood, and it is much more difficult.
> With klibc, it's trivial to share code with even fairly large
> userspace projects (e.g. udev); furthermore it is trivial to create
> standalone components (e.g. nfsmount) which can not only be tested
> standalone, but actually used by customized userspaces, thus
> improving code reuse and reducing overall complexity.

Nobody really disagrees with this, but _how_ do you want to do this?
Do you just expect that by throwing a lot of source into the kernel all of 
this will solve itself?

> > klibc will continue as independent project anyway, so it should not be 
> > difficult to include from the kernel whatever the distribution provides. 
> > It would help avoiding possible problems with mixing binaries built from 
> > different libraries.
> 
> As long as klibc/kinit is not merged, the current code will have to be
> maintained.  This means maintaining in-kernel ipconfig, nfsroot, and
> it pretty much dooms the possibility of getting stuff like md detect
> and partition discovery rewritten.

What has klibc to do with kinit? This rather suggest both are interrelated 
projects, why should one be dependent on the other?

> The utility of klibc is thus greatly diminished by not having it in
> the mainline kernel tree.  Its performance in -mm so far has shown
> that it works just fine.

That just says, it doesn't create new problems, but it still doesn't say 
anything about how you want to solve any of the existing problems without 
creating a whole bunch of new problems.

> Incidentally, there is one more reason for klibc which hasn't gotten
> much mention, but it provides a prototype userspace for kernel
> developers to:
> 
>   a) test new features (or at least a significant subset thereof), and
>   b) document, in code, a recommended way for the more advanced libcs
>      to make new features available to userspace, in the form of
>      headers and the like.

Why has this to be distributed with the kernel? It sounds like it can be 
nicely maintained independently.

bye, Roman

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

* Re: klibc and what's the next step?
  2006-06-29 23:33         ` Roman Zippel
@ 2006-06-30  8:00           ` Gerd Hoffmann
  2006-06-30 18:08             ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Gerd Hoffmann @ 2006-06-30  8:00 UTC (permalink / raw)
  To: Roman Zippel; +Cc: H. Peter Anvin, Milton Miller, LKML

  Hi,

> As it looks like it's distribution which are mostly interested in this. 
> Have you talked with any distribution maintainer to find out what they 
> need and what they want to put initramfs? What are the exact problems 
> which distributions have and how do you want to solve them?

Well, we already have an initramfs, and it can do quite some stuff the
current kernel doesn't do.  Here is a (probably incomplete) list:

  * load kernel modules needed to access and mount the root filesystem
    (block device driver, filesystem module, device mapper, ...)
  * raid/lvm2/evms setup.
  * iscsi setup.
  * fsck root filesystem before mounting it.
  * setup /dev in tmpfs (using udev).

> How do we avoid having to split all utils into a klibc version and the 
> normal version?

That is a big question.  Latest suse doesn't use klibc any more.  Older
versions had a bunch of static klibc-based binaries for some utilities,
i.e. insmod, udev, sh.  Sometimes you needed glibc because one of the
tools needed in initramfs had no klibc-version (rootfs-on-lvm case for
example).  After adding the "fsck rootfs" feature (I think) we had glibc
on the initramfs in almost all cases.  So if you end up with glibc in
initramfs anyway, what is the point of having klibc?

One advantage of merging klibc as-is is that it becomes much more
visible and receives more testing.  And it is probably easier to make
utility maintainers support building with klibc then (instead of forking
a klibc version of every utility).  That still leaves some maintaining
questions though, because we likely end up with some utilities coming
bundled with the kernel (sh, nfsmount, kinit, ...) and some not (lvm2, ...).

just my 2 cent,

  Gerd

-- 
Gerd Hoffmann <kraxel@suse.de>
http://www.suse.de/~kraxel/julika-dora.jpeg

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

* Re: klibc and what's the next step?
  2006-06-30  8:00           ` Gerd Hoffmann
@ 2006-06-30 18:08             ` H. Peter Anvin
  2006-06-30 22:58               ` Michael Tokarev
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-06-30 18:08 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Milton Miller, LKML

Gerd Hoffmann wrote:
>   Hi,
> 
>> As it looks like it's distribution which are mostly interested in this. 
>> Have you talked with any distribution maintainer to find out what they 
>> need and what they want to put initramfs? What are the exact problems 
>> which distributions have and how do you want to solve them?
> 
> Well, we already have an initramfs, and it can do quite some stuff the
> current kernel doesn't do.  Here is a (probably incomplete) list:
> 
>   * load kernel modules needed to access and mount the root filesystem
>     (block device driver, filesystem module, device mapper, ...)
>   * raid/lvm2/evms setup.
>   * iscsi setup.
>   * fsck root filesystem before mounting it.
>   * setup /dev in tmpfs (using udev).
> 
>> How do we avoid having to split all utils into a klibc version and the 
>> normal version?
> 
> That is a big question.  Latest suse doesn't use klibc any more.  Older
> versions had a bunch of static klibc-based binaries for some utilities,
> i.e. insmod, udev, sh.  Sometimes you needed glibc because one of the
> tools needed in initramfs had no klibc-version (rootfs-on-lvm case for
> example).  After adding the "fsck rootfs" feature (I think) we had glibc
> on the initramfs in almost all cases.  So if you end up with glibc in
> initramfs anyway, what is the point of having klibc?
> 

For a "big" distribution that runs on modern kernels, then by all means, 
build something around glibc.  The additional disk space and memory is a 
proverbial drop in the bucket.

However, I don't think it's realistic for smaller systems.

> One advantage of merging klibc as-is is that it becomes much more
> visible and receives more testing.  And it is probably easier to make
> utility maintainers support building with klibc then (instead of forking
> a klibc version of every utility).  That still leaves some maintaining
> questions though, because we likely end up with some utilities coming
> bundled with the kernel (sh, nfsmount, kinit, ...) and some not (lvm2, ...).

The stuff that's bundled with the kernel are replacements for kernel 
functionality.  The purpose of bundling is that kernel functionality can 
be removed.  Obviously, utility developers can build with klibc; this is 
already supported by several out-of-tree utilities, including udev. 
Should udev be bundled with the kernel?  It could be debated; however, 
it doesn't really affect the situation at hand.

	-hpa


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

* Re: klibc and what's the next step?
  2006-06-27 13:12 ` klibc and what's the next step? Roman Zippel
                     ` (3 preceding siblings ...)
  2006-06-27 19:47   ` Milton Miller
@ 2006-06-30 18:11   ` Pavel Machek
  2006-06-30 23:04     ` Michael Tokarev
  2006-07-11  4:48   ` Olaf Hering
  5 siblings, 1 reply; 95+ messages in thread
From: Pavel Machek @ 2006-06-30 18:11 UTC (permalink / raw)
  To: Roman Zippel; +Cc: H. Peter Anvin, linux-kernel, klibc, torvalds

On Tue 2006-06-27 15:12:53, Roman Zippel wrote:
> Hi,
> 
> On Sun, 25 Jun 2006, H. Peter Anvin wrote:
> 
> > The majority of the patches are independent in the sense that they
> > should apply independently, but Makefile/Kbuild files may have to be
> > adjusted to build a partially patched tree.
> 
> I could now repeat all the concerns I already mentioned, why it shouldn't 
> be merged as is (that doesn't mean it shouldn't be merged at all!), but 
> they have been pretty much ignored anyway...
> 
> What I'm more interested in is basically answering the question and where 
> I hope to provoke a bit broader discussion: "What's next?"
> 
> Until recently for most developers klibc was not much more than a cool 
> idea, but now we have the first incarnation and now we have to do a 
> reality check of how it solves our problems. To say it drastically the 
> current patch set as it is does not solve a single real problem yet, it 
> only moves them from the kernel to kinit, which may be the first step but 
> where to?
> 
> So what problems are we going to solve now and how? The amount of 
> discussion so far is not exactly encouraging. If nobody cares, then there 
> don't seem to be any real problems, so why should it be merged at all? Are 
> shiny new features more important than functionality?
> 
> So anyone who likes to see klibc merged, because it will solve some kind 
> of problem for him, please speak up now. Without this information it's 
> hard to judge whether we're going to solve the right problems.
> 
> Peter, it would really help if you describe your own plans, how you want 
> to go forward with it, otherwise it leaves a huge amount of uncertainty 
> and since this is a rather big change, I think it's a real good idea to 
> reduce this uncertainty, so we know what to expect and everyone can better 

I'd like to eventually move swsusp out of kernel, and klibc means I
may be able to do that without affecting users. Being in kinit is good
enough, because I can actually share single source between kinit
version and suspend.sf.net version.
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: klibc and what's the next step?
  2006-06-30 18:08             ` H. Peter Anvin
@ 2006-06-30 22:58               ` Michael Tokarev
  0 siblings, 0 replies; 95+ messages in thread
From: Michael Tokarev @ 2006-06-30 22:58 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Gerd Hoffmann, Milton Miller, LKML

H. Peter Anvin wrote:
> Gerd Hoffmann wrote:
>>   Hi,
>>
>>> As it looks like it's distribution which are mostly interested in
>>> this. Have you talked with any distribution maintainer to find out
>>> what they need and what they want to put initramfs? What are the
>>> exact problems which distributions have and how do you want to solve
>>> them?
>>
>> Well, we already have an initramfs, and it can do quite some stuff the
>> current kernel doesn't do.  Here is a (probably incomplete) list:
>>
>>   * load kernel modules needed to access and mount the root filesystem
>>     (block device driver, filesystem module, device mapper, ...)
>>   * raid/lvm2/evms setup.
>>   * iscsi setup.
>>   * fsck root filesystem before mounting it.
>>   * setup /dev in tmpfs (using udev).
>>
>>> How do we avoid having to split all utils into a klibc version and
>>> the normal version?
>>
>> That is a big question.  Latest suse doesn't use klibc any more.  Older
>> versions had a bunch of static klibc-based binaries for some utilities,
>> i.e. insmod, udev, sh.  Sometimes you needed glibc because one of the
>> tools needed in initramfs had no klibc-version (rootfs-on-lvm case for
>> example).  After adding the "fsck rootfs" feature (I think) we had glibc
>> on the initramfs in almost all cases.  So if you end up with glibc in
>> initramfs anyway, what is the point of having klibc?
> 
> For a "big" distribution that runs on modern kernels, then by all means,
> build something around glibc.  The additional disk space and memory is a
> proverbial drop in the bucket.
> 
> However, I don't think it's realistic for smaller systems.

Small systems don't build regular tools with glibc (at least the ones which
are "very small" - something like uclibc or ...) -- so it's logical to use
that same uclibc for initramfs too -- maybe because it's very likely some
other tool will be needed for bootstrapping, or because it's illogical to
have different tools doing the same task, or just because when booting,
a device usually have enouth resources (mostly memory) to run that stuff
from initramfs - eg my d-link g604 router with 16mb ram - uclibc and all
the boot utils will fit perfectly into memory, wich (the memory) will later
be freed and used by real daemons).

I can say about "normal" but old/underpowered PCs - like several i486 boxes
we use here either as X-terms or small routers or whatever.  It's perfectly
ok to use glibc here when booting if the system uses glibc normally, or use
uclibc in initramfs if the system uses uclibc normally, or... whatever.
An initrd with bash(!!), ifconfig, module-init-tools, and some more utils
(yes yes I know about busybox! :), all linked with glibc (and ncurses etc)
is about 4megs in size.  Even with only 8 megs of ram it will boot, and
after mounting real root all that 4 megs will be freed anyway.

So... which smaller systems you're talking about?

Well yes. Ok. Embedded stuff still (like my d-link router).  Currently it's
running 2.4 kernel, and there's no initrd/initramfs there, -- it boots off
a directly-addressible flash memory, jffs.  If there will be no code to
mount root in the kernel, initramfs will be needed, and the smaller it is,
the better (because flas space is also limited, here it's only 4mb).  And
there, maybe very small set of utils linked with klibc or dietlibc will
help (hopefully it all will not be much larger than current in-kernel
code).  But this sort of devices is special (usually requires alot of 3rd
party kernel patches for custom hardware), and the amount of utils needed
is so small.. oh well.  I suspect initramfs will be custom-built in such
cases.

What I'm trying to say, and tried to say several times already, is:
once all that code is removed from kernel space, and initramfs (either
"internal" or "external", ie, built as part of kernel or elsewhere)
becomes mandatory, there's little reason to have all that stuff inside
the kernel sources.  Except one: backward compatibility, so someone who
did not use initramfs explicitly will not use it with new kernel too
(which I personally don't see as a big issue, since almost all major
kernel change requires some new tools/infrastructure anyway).

Ie, most distros are already using initrd/initramfs (and some already
don't use in-kernel code), and the fact that kernel now supplies something
similar does not matter anymore, because "our (distro) initramfs", which
already worked for quite some time, and our users are used to it etc,
already does all what we need (either with glibc or something else).
So there's no need for them to use libc provided inside kernel, it
only makes things worse.

Worse because.  As you mentioned, klibc keeps compatibility cruft
at minimum, ie, some more recent kernel will need different klibc,
which, in turn, will not work on another kernel.  So.. how many
copies of the same utility is to keep?  Or maybe require sources
of every utility used during boot time to be here when compiling
the kernel, to recompile it with the klibc which goes with this
kernel?  And bundle all mdadm, lvm, iscsi etc stuff into kernel
rpm/deb package (without an ability to have custom user-supplied
executables in initramfs) ??

Yes, it'd be nice to have somehow standartized boot process.  But
umm..  that will require half an operating system to go with kernel
(eg, mdadm with its config file, which is /etc/mdadm/mdadm.conf on
Debian and /etc/mdadm.conf on other systems; and I do prefer to have
mdadm instead of mdassemble because it's impossible to do anything
with the latter if something goes wrong).

Kernel provides good (simple and clean) infrastructure for booting.
cpio archive, you just build it, by adding all the tools you think
are needed there, create /init, and voila.  It's enouth.  Yes some
tools are needed to be there, like kinit and parts of it, but even
kinit isn't really necessary, because the other tools providing
the same functionality already exists - there's almost(*) nothing
special in initramfs compared with regular root.

So the whole thing, as I see it, is just for backwards compatibility
for people who do NOT use initrd/initramfs.  And all the discussions
so far made this my opinion stronger...  So now I'm even thinking
about kinit (and parts thereof) as a compatibility layer, not only
klibc as before (if included into kernel source, that is.  I'm not
at all arguing against them being separate projects).

(*) One tiny thing which always bothered me: logging.  I'd love to
have all the boot messages (from initramfs) logged somewhere.  klibc
implements syslog() as writing to kernel log buffer, which partially
solves this.  It'd be better IMHO to have whole console redirected
(or tee'd) into that log buffer instead, up to some explicit knob
is hit, or by using some daemon which grabs the console and is able
to return it all (and terminate) when requested.  It's not only
initramfs issue, but early "regular" boot procedure is also affected
(everything before syslogd is started).  Some distros solves this
prob (eg bootlogd (if memory serves me right) on RedHat), but quite
often in some.. klugy way.  But that's another story.

/mjt

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

* Re: klibc and what's the next step?
  2006-06-30 18:11   ` Pavel Machek
@ 2006-06-30 23:04     ` Michael Tokarev
  2006-06-30 23:15       ` H. Peter Anvin
  2006-06-30 23:32       ` Pavel Machek
  0 siblings, 2 replies; 95+ messages in thread
From: Michael Tokarev @ 2006-06-30 23:04 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Roman Zippel, H. Peter Anvin, linux-kernel, klibc, torvalds

Pavel Machek wrote:
[klibc/kinit in kernel]
> I'd like to eventually move swsusp out of kernel, and klibc means I
> may be able to do that without affecting users. Being in kinit is good
> enough, because I can actually share single source between kinit
> version and suspend.sf.net version.

Heh.  Take a look at anyone who's using real initramfs for their boot
process.  Not initrd, not kernel-without-any-preboot-fs, but real
initramfs.  For them, if kinit/klibc will be in kernel, nothing changes,
because their initramfs *replaces* in-kernel code and future supplied-
with-kernel-klibc-based-kinit.  So if you'll move swsusp into kinit,
it WILL break setups for those users!.. ;)

And with time, amount of such users increases.  Because everyone's
switching from initrd to initramfs; or because everyone's starting
using initramfs (not initrd as "obsolete") since their systems now
require some sort of custom stuff while mounting root (like firmware
loading, or device-mapper setup for sata pseudo-raids, or whatever).

Oh well.

/mjt

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

* Re: klibc and what's the next step?
  2006-06-30 23:04     ` Michael Tokarev
@ 2006-06-30 23:15       ` H. Peter Anvin
  2006-07-01 10:56         ` [klibc] " Jeff Bailey
  2006-06-30 23:32       ` Pavel Machek
  1 sibling, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-06-30 23:15 UTC (permalink / raw)
  To: Michael Tokarev; +Cc: Pavel Machek, Roman Zippel, linux-kernel, klibc, torvalds

Michael Tokarev wrote:
> Pavel Machek wrote:
> [klibc/kinit in kernel]
>> I'd like to eventually move swsusp out of kernel, and klibc means I
>> may be able to do that without affecting users. Being in kinit is good
>> enough, because I can actually share single source between kinit
>> version and suspend.sf.net version.
> 
> Heh.  Take a look at anyone who's using real initramfs for their boot
> process.  Not initrd, not kernel-without-any-preboot-fs, but real
> initramfs.  For them, if kinit/klibc will be in kernel, nothing changes,
> because their initramfs *replaces* in-kernel code and future supplied-
> with-kernel-klibc-based-kinit.  So if you'll move swsusp into kinit,
> it WILL break setups for those users!.. ;)
> 

There are two ways to deal with this.

Either the kernel can unconditionally invoke /kinit, which then would 
invoke the users /init if present, or the swsusp can be a separate 
initramfs binary which the user's initramfs gets to invoke (the second 
is arguably neater, but requires minor changes to the users initramfs.)

Either way, it's a trivial problem to solve.

	-hpa


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

* Re: klibc and what's the next step?
  2006-06-30 23:04     ` Michael Tokarev
  2006-06-30 23:15       ` H. Peter Anvin
@ 2006-06-30 23:32       ` Pavel Machek
  1 sibling, 0 replies; 95+ messages in thread
From: Pavel Machek @ 2006-06-30 23:32 UTC (permalink / raw)
  To: Michael Tokarev
  Cc: Roman Zippel, H. Peter Anvin, linux-kernel, klibc, torvalds

On Sat 2006-07-01 03:04:55, Michael Tokarev wrote:
> Pavel Machek wrote:
> [klibc/kinit in kernel]
> > I'd like to eventually move swsusp out of kernel, and klibc means I
> > may be able to do that without affecting users. Being in kinit is good
> > enough, because I can actually share single source between kinit
> > version and suspend.sf.net version.
> 
> Heh.  Take a look at anyone who's using real initramfs for their boot
> process.  Not initrd, not kernel-without-any-preboot-fs, but real
> initramfs.  For them, if kinit/klibc will be in kernel, nothing changes,
> because their initramfs *replaces* in-kernel code and future supplied-
> with-kernel-klibc-based-kinit.  So if you'll move swsusp into kinit,
> it WILL break setups for those users!.. ;)

Distros will probably want to use "real" code from swsusp.sf.net, not
stripped down version, provided for back compatibility with kernel.

								Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [klibc] klibc and what's the next step?
  2006-06-30 23:15       ` H. Peter Anvin
@ 2006-07-01 10:56         ` Jeff Bailey
  2006-07-01 15:05           ` Theodore Tso
                             ` (2 more replies)
  0 siblings, 3 replies; 95+ messages in thread
From: Jeff Bailey @ 2006-07-01 10:56 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Michael Tokarev, Roman Zippel, torvalds, klibc, linux-kernel,
	Pavel Machek

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

Le vendredi 30 juin 2006 à 16:15 -0700, H. Peter Anvin a écrit :
> Michael Tokarev wrote:
> > Pavel Machek wrote:
> > [klibc/kinit in kernel]
> >> I'd like to eventually move swsusp out of kernel, and klibc means I
> >> may be able to do that without affecting users. Being in kinit is good
> >> enough, because I can actually share single source between kinit
> >> version and suspend.sf.net version.
> > 
> > Heh.  Take a look at anyone who's using real initramfs for their boot
> > process.  Not initrd, not kernel-without-any-preboot-fs, but real
> > initramfs.  For them, if kinit/klibc will be in kernel, nothing changes,
> > because their initramfs *replaces* in-kernel code and future supplied-
> > with-kernel-klibc-based-kinit.  So if you'll move swsusp into kinit,
> > it WILL break setups for those users!.. ;)
> Either the kernel can unconditionally invoke /kinit, which then would 
> invoke the users /init if present, or the swsusp can be a separate 
> initramfs binary which the user's initramfs gets to invoke (the second 
> is arguably neater, but requires minor changes to the users initramfs.)

The Ubuntu initramfs doesn't use kinit, and it would be nice if we
weren't forced to.  We do a number of things in our initramfs (like a
userspace bootsplace) which we need done before most of the things kinit
wants to do take place.

kinit is a nice default tool but longer term, I almost imagine it as a
busybox type of setup.  Either you say "go" and it brings up the system,
or you call it with an argument, change argv[0] or something to get just
the functionality asked for.

Tks,
Jeff Bailey

-- 
* Canonical Ltd * Ubuntu Service and Support * +1 514 691 7221 *

Linux for Human Beings.

[-- Attachment #2: Ceci est une partie de message numériquement signée --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

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

* Re: [klibc] klibc and what's the next step?
  2006-07-01 10:56         ` [klibc] " Jeff Bailey
@ 2006-07-01 15:05           ` Theodore Tso
  2006-07-01 20:08             ` Linus Torvalds
                               ` (3 more replies)
  2006-07-01 15:22           ` H. Peter Anvin
  2006-07-01 15:47           ` Jeff Garzik
  2 siblings, 4 replies; 95+ messages in thread
From: Theodore Tso @ 2006-07-01 15:05 UTC (permalink / raw)
  To: Jeff Bailey
  Cc: H. Peter Anvin, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel, Pavel Machek

On Sat, Jul 01, 2006 at 06:56:57AM -0400, Jeff Bailey wrote:
> 
> The Ubuntu initramfs doesn't use kinit, and it would be nice if we
> weren't forced to.  We do a number of things in our initramfs (like a
> userspace bootsplace) which we need done before most of the things kinit
> wants to do take place.
> 

This is going to be a problem given that people are hell-bent at
chucking functionality out of the kernel into userspace.  If various
distributions insist on having their own initramfs/initrd, we're going
to have a maintenance headache where future kernel versions won't work
on distro kernels, which is going to be painful for kernel developers
that want to stay on the bleeding edge.  We are already seeing the
beginnings of this, where the the fact that modern kernels expect the
distro initramfs will wait for the SCSI probe to finish after loading
modules and trying to mount the root filesystem has caused RHEL4
system to be incompatible with modern kernels.  

Fortunately there is a workaround by not building the MPT Fusion
device driver as a module, but if Pavel succeeds in ejecting software
suspend into userspace, and preventing suspend2 from getting merged,
*and* distro's insist on doing their own thing with initramfs, we are
going to be headed for a major trainwreck.

Personally, I would be happier with keeping things like suspend2 in
the kernel, since I don't think the hellish compatibility problems
with non-reviewed kernel functionality that has been ejected into
userspace is really worth it --- but if we *are* going to go down the
route pushing everything into userspace, it is going to be critical
that distro's buy into using a kernel initialization system which is
shipped with the kernel, and can be updated without being tied a
particular distro's non-standard "value add".  Maybe that means we
need to have hooks so that the distro's can add their non-standard
"value add" without breaking the ability for users to upgrade to newer
kernels.  But either way, we're going to have to decide which way
we're going to go, and if we're going to go down the blind
in-userspace-good-in-kernel-bad approach, the distro's are going to
have to cooperate or it's going to be a mess.

						- Ted

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

* Re: [klibc] klibc and what's the next step?
  2006-07-01 10:56         ` [klibc] " Jeff Bailey
  2006-07-01 15:05           ` Theodore Tso
@ 2006-07-01 15:22           ` H. Peter Anvin
  2006-07-01 15:47           ` Jeff Garzik
  2 siblings, 0 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-01 15:22 UTC (permalink / raw)
  To: Jeff Bailey
  Cc: Michael Tokarev, Roman Zippel, torvalds, klibc, linux-kernel,
	Pavel Machek

Jeff Bailey wrote:
>> Either the kernel can unconditionally invoke /kinit, which then would 
>> invoke the users /init if present, or the swsusp can be a separate 
>> initramfs binary which the user's initramfs gets to invoke (the second 
>> is arguably neater, but requires minor changes to the users initramfs.)
> 
> The Ubuntu initramfs doesn't use kinit, and it would be nice if we
> weren't forced to.  We do a number of things in our initramfs (like a
> userspace bootsplace) which we need done before most of the things kinit
> wants to do take place.
> 
> kinit is a nice default tool but longer term, I almost imagine it as a
> busybox type of setup.  Either you say "go" and it brings up the system,
> or you call it with an argument, change argv[0] or something to get just
> the functionality asked for.

Modularity is good; in general I think the busybox model of one 
overgrown binary is probably not the right idea, but it depends of 
course on the specifics of the problem.

	-hpa


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

* Re: [klibc] klibc and what's the next step?
  2006-07-01 10:56         ` [klibc] " Jeff Bailey
  2006-07-01 15:05           ` Theodore Tso
  2006-07-01 15:22           ` H. Peter Anvin
@ 2006-07-01 15:47           ` Jeff Garzik
  2 siblings, 0 replies; 95+ messages in thread
From: Jeff Garzik @ 2006-07-01 15:47 UTC (permalink / raw)
  To: Jeff Bailey
  Cc: H. Peter Anvin, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel, Pavel Machek

Jeff Bailey wrote:
> The Ubuntu initramfs doesn't use kinit, and it would be nice if we
> weren't forced to.  We do a number of things in our initramfs (like a
> userspace bootsplace) which we need done before most of the things kinit
> wants to do take place.

You would be required to perform the same duties as kinit (is the list 
of steps documented?), but not strictly required to use hpa's 
incarnation of kinit+klibc.

	Jeff



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

* Re: [klibc] klibc and what's the next step?
  2006-07-01 15:05           ` Theodore Tso
@ 2006-07-01 20:08             ` Linus Torvalds
  2006-07-01 21:58               ` Al Viro
                                 ` (2 more replies)
  2006-07-01 22:22             ` H. Peter Anvin
                               ` (2 subsequent siblings)
  3 siblings, 3 replies; 95+ messages in thread
From: Linus Torvalds @ 2006-07-01 20:08 UTC (permalink / raw)
  To: Theodore Tso
  Cc: Jeff Bailey, H. Peter Anvin, Michael Tokarev, Roman Zippel,
	klibc, linux-kernel, Pavel Machek



On Sat, 1 Jul 2006, Theodore Tso wrote:
> 
> This is going to be a problem given that people are hell-bent at
> chucking functionality out of the kernel into userspace.

Btw, I'm not necessarily one of those people.

There _are_ some things that can be better done in user space, but on the 
other hand, other things really are better off in the kernel.

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.

For example, the old pcmcia layer in user space was crap, crap, crap, and 
at least I fount it was MUCH harder to debug than the all-in-kernel code.

			Linus

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

* Re: [klibc] klibc and what's the next step?
  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
  2 siblings, 0 replies; 95+ messages in thread
From: Al Viro @ 2006-07-01 21:58 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Theodore Tso, Jeff Bailey, H. Peter Anvin, Michael Tokarev,
	Roman Zippel, klibc, linux-kernel, Pavel Machek

On Sat, Jul 01, 2006 at 01:08:17PM -0700, Linus Torvalds wrote:
> 
> 
> On Sat, 1 Jul 2006, Theodore Tso wrote:
> > 
> > This is going to be a problem given that people are hell-bent at
> > chucking functionality out of the kernel into userspace.
> 
> Btw, I'm not necessarily one of those people.
> 
> There _are_ some things that can be better done in user space, but on the 
> other hand, other things really are better off in the kernel.
> 
> 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.

True.  However, that depends on the interfaces being used.  Sure, when
a twit "moves things to userland" by marshalling stuff through sysfs,
the only thing it achieves is more sysfs crap *and* more internal kernel
APIs being cast in stone.

However, when the code really is a series of normal syscalls (on the level
of "all we call is sys_something()"), it makes a lot of sense to take the
damn thing to userland and leave it there...

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

* Re: [klibc] klibc and what's the next step?
  2006-07-01 15:05           ` Theodore Tso
  2006-07-01 20:08             ` Linus Torvalds
@ 2006-07-01 22:22             ` H. Peter Anvin
  2006-07-03  7:23             ` Gerd Hoffmann
  2006-07-03 21:36             ` Pavel Machek
  3 siblings, 0 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-01 22:22 UTC (permalink / raw)
  To: Theodore Tso, Jeff Bailey, H. Peter Anvin, Michael Tokarev,
	Roman Zippel, torvalds, klibc, linux-kernel, Pavel Machek

Theodore Tso wrote:
> 
> Personally, I would be happier with keeping things like suspend2 in
> the kernel, since I don't think the hellish compatibility problems
> with non-reviewed kernel functionality that has been ejected into
> userspace is really worth it --- but if we *are* going to go down the
> route pushing everything into userspace, it is going to be critical
> that distro's buy into using a kernel initialization system which is
> shipped with the kernel, and can be updated without being tied a
> particular distro's non-standard "value add".  Maybe that means we
> need to have hooks so that the distro's can add their non-standard
> "value add" without breaking the ability for users to upgrade to newer
> kernels.

That would be my feeling.  The ability to overlay initramfs is essential 
for that.

 > But either way, we're going to have to decide which way
> we're going to go, and if we're going to go down the blind
> in-userspace-good-in-kernel-bad approach, the distro's are going to
> have to cooperate or it's going to be a mess.

Of course.

	-hpa


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

* Re: [klibc] klibc and what's the next step?
  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
  2 siblings, 0 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-01 22:31 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Theodore Tso, Jeff Bailey, Michael Tokarev, Roman Zippel, klibc,
	linux-kernel, Pavel Machek

Linus Torvalds wrote:
> 
> On Sat, 1 Jul 2006, Theodore Tso wrote:
>> This is going to be a problem given that people are hell-bent at
>> chucking functionality out of the kernel into userspace.
> 
> Btw, I'm not necessarily one of those people.
> 
> There _are_ some things that can be better done in user space, but on the 
> other hand, other things really are better off in the kernel.
> 
> 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.
>

Indeed.  The stuff that have been moved to userspace in the first cut of 
klibc are stuff which can largely be tested independently, usually just 
from the normal command line.  This is incredibly powerful, but it is 
not -- and shouldn't be -- universally applied just because it can; it 
should be applied if and when it makes sense.

> For example, the old pcmcia layer in user space was crap, crap, crap, and 
> at least I fount it was MUCH harder to debug than the all-in-kernel code.

I have my own share of debugging shared kernel space/user space 
applications, mainly autofs, and if done properly, it can be quite sane. 
  If done *improperly*, it's a nightmare.  Personally, I find that if 
one can:

- Run something as a separate component in userspace, and/or
- Can leverage strace(1) to get more insight

then one can usually get a lot of debugging help.  Otherwise, probably not.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  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
  2 siblings, 1 reply; 95+ messages in thread
From: Theodore Tso @ 2006-07-02  0:05 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Jeff Bailey, H. Peter Anvin, Michael Tokarev, Roman Zippel,
	klibc, linux-kernel, Pavel Machek

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.  

						- Ted

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

* Re: [klibc] klibc and what's the next step?
  2006-07-02  0:05               ` Theodore Tso
@ 2006-07-02  0:17                 ` H. Peter Anvin
  2006-07-02  0:38                   ` Theodore Tso
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-02  0:17 UTC (permalink / raw)
  To: Theodore Tso, Linus Torvalds, Jeff Bailey, H. Peter Anvin,
	Michael Tokarev, Roman Zippel, klibc, linux-kernel, Pavel Machek

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

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

* Re: [klibc] klibc and what's the next step?
  2006-07-02  0:17                 ` H. Peter Anvin
@ 2006-07-02  0:38                   ` Theodore Tso
  2006-07-02  0:50                     ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Theodore Tso @ 2006-07-02  0:38 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Linus Torvalds, Jeff Bailey, Michael Tokarev, Roman Zippel,
	klibc, linux-kernel, Pavel Machek

On Sat, Jul 01, 2006 at 05:17:17PM -0700, H. Peter Anvin wrote:
> 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.

Well, I wouldn't be one of those folks.  In fact, how big is dash and
some select set of shell utilities?  If they aren't that big, it might
make sense to include them all the time so that a simple command-line
option on boot is all that's necessary in order to break into a
pre-kinit interactive shell.  That would make the resulting system
more debuggable by definition.  Then all we will would have to do is
make sure the distro's use the kernel-supplied kinit solution, instead
of rolling their own non-standard version.

						- Ted

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

* Re: [klibc] klibc and what's the next step?
  2006-07-02  0:38                   ` Theodore Tso
@ 2006-07-02  0:50                     ` H. Peter Anvin
  0 siblings, 0 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-02  0:50 UTC (permalink / raw)
  To: Theodore Tso, H. Peter Anvin, Linus Torvalds, Jeff Bailey,
	Michael Tokarev, Roman Zippel, klibc, linux-kernel, Pavel Machek

Theodore Tso wrote:
> 
> Well, I wouldn't be one of those folks.  In fact, how big is dash and
> some select set of shell utilities?  If they aren't that big, it might
> make sense to include them all the time so that a simple command-line
> option on boot is all that's necessary in order to break into a
> pre-kinit interactive shell.  That would make the resulting system
> more debuggable by definition.  Then all we will would have to do is
> make sure the distro's use the kernel-supplied kinit solution, instead
> of rolling their own non-standard version.
> 

Shared binaries, x86-64 (i386 is about 20-25% smaller):

-rwxrwxr-x 1 hpa hpa 58544 Jul  1 11:41 usr/dash/sh.shared*
-rwxrwxr-x 1 hpa hpa  2760 Jul  1 11:41 cat*
-rwxrwxr-x 1 hpa hpa   888 Jul  1 11:41 chroot*
-rwxrwxr-x 1 hpa hpa  4000 Jul  1 11:41 dd*
-rwxrwxr-x 1 hpa hpa   680 Jul  1 11:41 false*
-rwxrwxr-x 3 hpa hpa  1072 Jul  1 11:41 halt*
-rwxrwxr-x 1 hpa hpa  1664 Jul  1 11:41 insmod*
-rwxrwxr-x 1 hpa hpa  1336 Jul  1 11:41 ln*
-rwxrwxr-x 1 hpa hpa  5000 Jul  1 11:41 minips*
-rwxrwxr-x 1 hpa hpa  1984 Jul  1 11:41 mkdir*
-rwxrwxr-x 1 hpa hpa  1704 Jul  1 11:41 mkfifo*
-rwxrwxr-x 1 hpa hpa  1712 Jul  1 11:41 mknod*
-rwxrwxr-x 1 hpa hpa  2184 Jul  1 11:41 mount
-rwxrwxr-x 1 hpa hpa  1320 Jul  1 11:41 nuke*
-rwxrwxr-x 1 hpa hpa   856 Jul  1 11:41 pivot_root*
-rwxrwxr-x 3 hpa hpa  1072 Jul  1 11:41 poweroff*
-rwxrwxr-x 3 hpa hpa  1072 Jul  1 11:41 reboot*
-rwxrwxr-x 1 hpa hpa   864 Jul  1 11:41 sleep*
-rwxrwxr-x 1 hpa hpa   672 Jul  1 11:41 true*
-rwxrwxr-x 1 hpa hpa  1056 Jul  1 11:41 umount*
-rwxrwxr-x 1 hpa hpa  1952 Jul  1 11:41 uname*
-rw-rw-r-- 2 hpa hpa 71016 Jul  1 11:40 
usr/klibc/klibc-Yy9wepARlc-x17pdZDwU1YCOiMQ.so
-rwxrwxr-x 1 hpa hpa 35664 Jul  1 17:48 usr/kinit/kinit.shared*

... totalling about 193K if you include everything.  For comparison, 
static kinit by itself is 67K (which includes ipconfig, nfsroot, etc.) 
For an "include everything" variant, it would probably make more sense 
to port busybox, and/or add more tools as dash builtins.

All of these are uncompressed sizes.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  2006-07-01 15:05           ` Theodore Tso
  2006-07-01 20:08             ` Linus Torvalds
  2006-07-01 22:22             ` H. Peter Anvin
@ 2006-07-03  7:23             ` Gerd Hoffmann
  2006-07-03 21:36             ` Pavel Machek
  3 siblings, 0 replies; 95+ messages in thread
From: Gerd Hoffmann @ 2006-07-03  7:23 UTC (permalink / raw)
  To: Theodore Tso, Jeff Bailey, H. Peter Anvin, Michael Tokarev,
	Roman Zippel, torvalds, klibc, linux-kernel, Pavel Machek

> particular distro's non-standard "value add".  Maybe that means we
> need to have hooks so that the distro's can add their non-standard
> "value add" without breaking the ability for users to upgrade to newer
> kernels.

Sure we need that.  Not only for distro's "value add", but basically for
everything which depends on utilities not shipped with the kernel
(rootfs-on-lvm for example, udev & /dev setup, ...).  It's probably also
very handy for users and hackers to have a standard way to add stuff to
the initramfs during normal kernel build, without having to build their own.

cheers,

  Gerd

-- 
Gerd Hoffmann <kraxel@suse.de>
http://www.suse.de/~kraxel/julika-dora.jpeg

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

* Re: klibc and what's the next step?
  2006-06-29  0:04             ` Roman Zippel
@ 2006-07-03 18:30               ` Rob Landley
  2006-07-03 18:46                 ` [klibc] " maximilian attems
  0 siblings, 1 reply; 95+ messages in thread
From: Rob Landley @ 2006-07-03 18:30 UTC (permalink / raw)
  To: Roman Zippel
  Cc: H. Peter Anvin, Andi Kleen, Jeff Garzik, linux-kernel, klibc, torvalds

On Wednesday 28 June 2006 8:04 pm, Roman Zippel wrote:
> If you are concerned about this simply keep the whole thing optional.
> Embedded application usually know their boot device and they don't need no
> fancy initramfs.

Actually, a lot of embedded applications like initramfs because it saves 
memory (a ram block device, a filesystem driver, and filesystem overhead.)  
Don't use embedded applications as a reason _not_ to do this!

BusyBox has had explicit support for initramfs (switch_root) for several 
versions now.  I pestered HPA about building a subset of BusyBox against 
klibc (and cross-compiling klibc for non-x86 platforms) at the Consumer 
Electronics Linux Forum, but haven't had time to follow up yet.

Rob
-- 
Never bet against the cheap plastic solution.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-03 18:30               ` Rob Landley
@ 2006-07-03 18:46                 ` maximilian attems
  2006-07-04  1:36                   ` Jeff Bailey
  0 siblings, 1 reply; 95+ messages in thread
From: maximilian attems @ 2006-07-03 18:46 UTC (permalink / raw)
  To: Rob Landley
  Cc: Roman Zippel, klibc, Jeff Garzik, linux-kernel, Andi Kleen,
	torvalds, H. Peter Anvin

On Mon, Jul 03, 2006 at 02:30:45PM -0400, Rob Landley wrote:
> On Wednesday 28 June 2006 8:04 pm, Roman Zippel wrote:
> > If you are concerned about this simply keep the whole thing optional.
> > Embedded application usually know their boot device and they don't need no
> > fancy initramfs.
> 
> Actually, a lot of embedded applications like initramfs because it saves 
> memory (a ram block device, a filesystem driver, and filesystem overhead.)  
> Don't use embedded applications as a reason _not_ to do this!
> 
> BusyBox has had explicit support for initramfs (switch_root) for several 
> versions now.  I pestered HPA about building a subset of BusyBox against 
> klibc (and cross-compiling klibc for non-x86 platforms) at the Consumer 
> Electronics Linux Forum, but haven't had time to follow up yet.
> 
> Rob

well but busybox is big nowadays and generally compiled against glibc.
i'm quite eager to kick busybox out of default Debian initramfs-tools
to have an klibc only default initramfs. those tools are needed atm,
and there is not enough yet. afaik suse adds sed on klibc with a minimal
patch and we'd liked to have stat, kill and readlink on klibc-utils.

how about busybox on klibc?

--
maks

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

* Re: [klibc] klibc and what's the next step?
  2006-07-01 15:05           ` Theodore Tso
                               ` (2 preceding siblings ...)
  2006-07-03  7:23             ` Gerd Hoffmann
@ 2006-07-03 21:36             ` Pavel Machek
  3 siblings, 0 replies; 95+ messages in thread
From: Pavel Machek @ 2006-07-03 21:36 UTC (permalink / raw)
  To: Theodore Tso, Jeff Bailey, H. Peter Anvin, Michael Tokarev,
	Roman Zippel, torvalds, klibc, linux-kernel

Hi!

> Fortunately there is a workaround by not building the MPT Fusion
> device driver as a module, but if Pavel succeeds in ejecting software
> suspend into userspace, and preventing suspend2 from getting merged,
> *and* distro's insist on doing their own thing with initramfs, we are
> going to be headed for a major trainwreck.

Well, uswsusp kernel <-> user interface should be stable (and is
already in 2.6.17)... So I'd in fact _like_ distros to use their own
versions of suspend/resume tools -- so they can get nice splash
screens, compression and encryption.

Version bundled with kernel will _not_ have those features... it
should be simple to get working, but will provide bare-bones
functionality.

(But as ABI is stable, there should be no problem).
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [klibc] klibc and what's the next step?
  2006-07-03 18:46                 ` [klibc] " maximilian attems
@ 2006-07-04  1:36                   ` Jeff Bailey
  2006-07-04  2:02                     ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Jeff Bailey @ 2006-07-04  1:36 UTC (permalink / raw)
  To: maximilian attems
  Cc: Rob Landley, klibc, Jeff Garzik, Roman Zippel, linux-kernel,
	Andi Kleen, torvalds, H. Peter Anvin

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

Le lundi 03 juillet 2006 à 20:46 +0200, maximilian attems a écrit :
> well but busybox is big nowadays and generally compiled against glibc.
> i'm quite eager to kick busybox out of default Debian initramfs-tools
> to have an klibc only default initramfs. those tools are needed atm,
> and there is not enough yet. afaik suse adds sed on klibc with a minimal
> patch and we'd liked to have stat, kill and readlink on klibc-utils.
> 
> how about busybox on klibc?

I made a brief attempt to do busybox on klibc before klcc was working
right for me.  I should try that again.  In Ubuntu, we already do a
separate build pass of busybox to get just the features that we want, it
would be easy to play with this.

I'll let you know.  It'll take me a couple days - between travelling and
the long weekend, I'm a bit behind.

Tks,
Jeff Bailey

-- 
* Canonical Ltd * Ubuntu Service and Support * +1 514 691 7221 *

Linux for Human Beings.

[-- Attachment #2: Ceci est une partie de message numériquement signée --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [klibc] klibc and what's the next step?
  2006-07-04  1:36                   ` Jeff Bailey
@ 2006-07-04  2:02                     ` H. Peter Anvin
  0 siblings, 0 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-04  2:02 UTC (permalink / raw)
  To: Jeff Bailey
  Cc: maximilian attems, Rob Landley, klibc, Jeff Garzik, Roman Zippel,
	linux-kernel, Andi Kleen, torvalds

Jeff Bailey wrote:
> Le lundi 03 juillet 2006 à 20:46 +0200, maximilian attems a écrit :
>> well but busybox is big nowadays and generally compiled against glibc.
>> i'm quite eager to kick busybox out of default Debian initramfs-tools
>> to have an klibc only default initramfs. those tools are needed atm,
>> and there is not enough yet. afaik suse adds sed on klibc with a minimal
>> patch and we'd liked to have stat, kill and readlink on klibc-utils.
>>
>> how about busybox on klibc?
> 
> I made a brief attempt to do busybox on klibc before klcc was working
> right for me.  I should try that again.  In Ubuntu, we already do a
> separate build pass of busybox to get just the features that we want, it
> would be easy to play with this.
> 
> I'll let you know.  It'll take me a couple days - between travelling and
> the long weekend, I'm a bit behind.
> 

I think the main things that aren't in klibc are the userid and the 
network databases.  They should be reasonably easy to stub out.

	-hpa

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

* Re: klibc and what's the next step?
  2006-06-27 13:12 ` klibc and what's the next step? Roman Zippel
                     ` (4 preceding siblings ...)
  2006-06-30 18:11   ` Pavel Machek
@ 2006-07-11  4:48   ` Olaf Hering
  2006-07-11 10:29     ` Michael Tokarev
                       ` (4 more replies)
  5 siblings, 5 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-11  4:48 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Roman Zippel, linux-kernel, klibc, torvalds

On Tue, Jun 27, 2006 at 03:12:53PM +0200, Roman Zippel wrote:

> So anyone who likes to see klibc merged, because it will solve some kind 
> of problem for him, please speak up now. Without this information it's 
> hard to judge whether we're going to solve the right problems.

I do not want to see kinit merged.
It (the merge into linux-2.6.XY) doesnt solve any real problem in the long term.
Instead, make a kinit distribution. Let it install itself into an obvious
location on the development box (/usr/lib/kinit/* or whatever), remove all
code behind prepare_namespace() and put a disclaimer into the Linux 2.6.XY
releasenote stating where to grab and build a kinit binary:
make && sudo make install
It can even provide its own CONFIG_INITRAMFS_SOURCE file, so that would
be the only required change to the used .config.

The rationale is that there are essentially 2 kind of consumers:

One is the kind that builds static kernels and uses no initrd of any kind.
For those people, the code and interfaces behind prepare_namespace() has
not changed in a long time.
They will install that kinit binary once and it will continue to work with
kernels from 2.6.6 and later, when "/init" support was merged. Or rather
from 2.6.1x when CONFIG_INITRAMFS_SOURCE was introduced.

The other group is the one that uses some sort of initrd (loop mount or cpio),
created with tools from their distribution.
Again, they should install that kinit binary as well because kinit emulates
the loop mount handling of /initrd.image. This is for older distributions
that still create a loop mounted initrd.
A distribution that uses a cpio archive (SuSE does that since 2.6.5 in SLES9,
and since 2.6.13 in 10.0) has no need for the kinit. mkinitrd creates a
suitable cpio archive and the contained "/init" executable does all the 
hard work (as stated in the comment in init/main.c:init())


In earlier mails you stated that having kinit/klibc in the kernel sources
would make it easier to keep up with interface changes.
What interface changes did you have in mind, and can you name any relevant
interface changes that were made after 2.6.0 which would break an external
kinit?

24-klibc-basic-build-infrastructure.patch forces the klibc build, even for
setups where it is not required. CONFIG_KLIBC, if it ever gets merged, should
be optional. usr/initramfs.default as example has a hard requirement.
If CONFIG_KLIBC is off, only /dev, /dev/console and /root should be part of
the cpio archive in the .init.ramfs ELF section. The exectuables come from
the cpio initrd.
I once looked briefly for a patch that would introduce something like 
CONFIG_OBSOLETE_PREPARE_NAMESPACE which will make all code behind
prepare_namespace() optional. For SuSE, this dead code just wastes build time,
and it increases the vmlinux file size. While looking for ROOT_DEV users,
it wasnt obvious to me what requirements mtd has, so I postponed that attempt.
I'm sure ROOT_DEV can go as well in your patch named
29-remove-in-kernel-root-mounting-code.patch
All can be done outside the kernel code, and there is the root= cmdline option.


As others have stated in this thread, the code behind prepare_namespace() is 
very simple. It doesnt know anything abould lvm etc, nor about mount by
filesystem UUID/LABEL nor does it know how to deal with properly with new
technologies like iSCSI, evms, persistant storage device names, usb-storage,
sbp2 or async device probing.
Should all that knowledge end up in the kernel source on day?
An external kinit for such features sounds more logical.
If there are no plans to add these features, that just means that kinit
is real static functionality-wise. So having it as external binary makes
even more sense, given the amount of build time to spent for every new kernel.

Not really related to kinit per se:
There is also not much distribution specific inside initramfs (beside the file
locations to actually create a suitable cpio archive). There is still the
boundary between "/init" and the real init on the final root filesystem.
Otherwise static kernels would not be usable on these distributions.
I'm sure a mkinitrd that works for every distribution out there is possible.

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

* Re: klibc and what's the next step?
  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 10:51     ` Sam Ravnborg
                       ` (3 subsequent siblings)
  4 siblings, 1 reply; 95+ messages in thread
From: Michael Tokarev @ 2006-07-11 10:29 UTC (permalink / raw)
  To: Olaf Hering; +Cc: H. Peter Anvin, Roman Zippel, linux-kernel, klibc, torvalds

Olaf Hering wrote:
> On Tue, Jun 27, 2006 at 03:12:53PM +0200, Roman Zippel wrote:
> 
>> So anyone who likes to see klibc merged, because it will solve some kind 
>> of problem for him, please speak up now. Without this information it's 
>> hard to judge whether we're going to solve the right problems.
> 
> I do not want to see kinit merged.
> It (the merge into linux-2.6.XY) doesnt solve any real problem in the long term.
> Instead, make a kinit distribution. Let it install itself into an obvious
> location on the development box (/usr/lib/kinit/* or whatever), remove all
> code behind prepare_namespace() and put a disclaimer into the Linux 2.6.XY
> releasenote stating where to grab and build a kinit binary:

kinit SHOULD go with kernel. To stay compatible, to be able to move some more
stuff to it from kernelspace with time, and so on.

The question was about klibc, not kinit.

> The rationale is that there are essentially 2 kind of consumers:
> 
> One is the kind that builds static kernels and uses no initrd of any kind.
> For those people, the code and interfaces behind prepare_namespace() has
> not changed in a long time.
> They will install that kinit binary once and it will continue to work with
> kernels from 2.6.6 and later, when "/init" support was merged. Or rather
> from 2.6.1x when CONFIG_INITRAMFS_SOURCE was introduced.

And stuff will break on them after eg uswsusp move into kinit etc.

> The other group is the one that uses some sort of initrd (loop mount or cpio),
> created with tools from their distribution.
> Again, they should install that kinit binary as well because kinit emulates
> the loop mount handling of /initrd.image. This is for older distributions
> that still create a loop mounted initrd.

There's no need for loop-mounting of any initrd.images.  Initramfs (cpio image,
possible gzipped) works just fine, and it will NOT go away because something
should do the unpacking/loading of that image so that kinit &Co will run.
There's no need for old initrd+pivot_root at all.  Only the ones who are,
for some reason, didn't switch to initramfs yet.  And I personally see no
reasons not to switch - initramfs (rootfs) concept is much more clean and
easy to handle and gives more possibilities than initrd.

> A distribution that uses a cpio archive (SuSE does that since 2.6.5 in SLES9,
> and since 2.6.13 in 10.0) has no need for the kinit. mkinitrd creates a
> suitable cpio archive and the contained "/init" executable does all the 
> hard work (as stated in the comment in init/main.c:init())

It does need that.  At least partially.  Or, it should provide compatible
replacement for the next kernel you compile -- See above, with more stuff
moved from kernel to kinit (or utils based on it), the more tricky it will
be to maintain such a beast outside of the kernel.

> In earlier mails you stated that having kinit/klibc in the kernel sources
> would make it easier to keep up with interface changes.
> What interface changes did you have in mind, and can you name any relevant
> interface changes that were made after 2.6.0 which would break an external
> kinit?

Ok.  To be fair, except of swsusp (which i don't use anyway, as it does not
work on VIA C3-based boxes), I can't think of anything more.  The rest (like
dhcp (kernel-level IP autoconfig), etc) is already in kinit, and it should
be compatible with future kernels.

So hmm.  Maybe my arguments above are wrong.

Once that same swsusp is moved to kinit, the latter should be updated --
that's basically all.

> 24-klibc-basic-build-infrastructure.patch forces the klibc build, even for
> setups where it is not required. CONFIG_KLIBC, if it ever gets merged, should
> be optional. usr/initramfs.default as example has a hard requirement.
> If CONFIG_KLIBC is off, only /dev, /dev/console and /root should be part of
> the cpio archive in the .init.ramfs ELF section. The exectuables come from
> the cpio initrd.

Agreed 100%.

> I once looked briefly for a patch that would introduce something like 
> CONFIG_OBSOLETE_PREPARE_NAMESPACE which will make all code behind
> prepare_namespace() optional. For SuSE, this dead code just wastes build time,
> and it increases the vmlinux file size. While looking for ROOT_DEV users,
> it wasnt obvious to me what requirements mtd has, so I postponed that attempt.
> I'm sure ROOT_DEV can go as well in your patch named
> 29-remove-in-kernel-root-mounting-code.patch
> All can be done outside the kernel code, and there is the root= cmdline option.
> 
> 
> As others have stated in this thread, the code behind prepare_namespace() is 
> very simple. It doesnt know anything abould lvm etc, nor about mount by
> filesystem UUID/LABEL nor does it know how to deal with properly with new
> technologies like iSCSI, evms, persistant storage device names, usb-storage,
> sbp2 or async device probing.
> Should all that knowledge end up in the kernel source on day?
> An external kinit for such features sounds more logical.
> If there are no plans to add these features, that just means that kinit
> is real static functionality-wise. So having it as external binary makes
> even more sense, given the amount of build time to spent for every new kernel.

Nod.

/mjt

> Not really related to kinit per se:
> There is also not much distribution specific inside initramfs (beside the file
> locations to actually create a suitable cpio archive). There is still the
> boundary between "/init" and the real init on the final root filesystem.
> Otherwise static kernels would not be usable on these distributions.
> I'm sure a mkinitrd that works for every distribution out there is possible.


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

* Re: [klibc] klibc and what's the next step?
  2006-07-11  4:48   ` Olaf Hering
  2006-07-11 10:29     ` Michael Tokarev
@ 2006-07-11 10:51     ` Sam Ravnborg
  2006-07-11 13:45     ` Theodore Tso
                       ` (2 subsequent siblings)
  4 siblings, 0 replies; 95+ messages in thread
From: Sam Ravnborg @ 2006-07-11 10:51 UTC (permalink / raw)
  To: Olaf Hering; +Cc: H. Peter Anvin, Roman Zippel, torvalds, klibc, linux-kernel

On Tue, Jul 11, 2006 at 06:48:34AM +0200, Olaf Hering wrote:
> 
> 24-klibc-basic-build-infrastructure.patch forces the klibc build, even for
> setups where it is not required. CONFIG_KLIBC, if it ever gets merged, should
> be optional.

Thats a 10 linier to usr/Kconfig - not a big deal to fix.
And agreed it shall not be compiled if not used/necessary.

So this part is more of a 'we shall fix' issue, and has nothing to do
with the direction of the future.

	Sam

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 10:29     ` Michael Tokarev
@ 2006-07-11 11:27       ` Olaf Hering
  2006-07-11 16:24         ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 11:27 UTC (permalink / raw)
  To: Michael Tokarev
  Cc: Roman Zippel, torvalds, klibc, linux-kernel, H. Peter Anvin

 On Tue, Jul 11, Michael Tokarev wrote:

> kinit SHOULD go with kernel. To stay compatible, to be able to move some more
> stuff to it from kernelspace with time, and so on.

compatible with what? What changes do you expect that will break kinit
as we have it right now?

> The question was about klibc, not kinit.

klibc without user is really pointless.

> > The rationale is that there are essentially 2 kind of consumers:
> > 
> > One is the kind that builds static kernels and uses no initrd of any kind.
> > For those people, the code and interfaces behind prepare_namespace() has
> > not changed in a long time.
> > They will install that kinit binary once and it will continue to work with
> > kernels from 2.6.6 and later, when "/init" support was merged. Or rather
> > from 2.6.1x when CONFIG_INITRAMFS_SOURCE was introduced.
> 
> And stuff will break on them after eg uswsusp move into kinit etc.

Why? If they want that new feature:
download kinit-2.0, make && make install. That concept is not new.
kinit-2.0 will surely be compatible with what is required for last years
kernel because its not maintained by the-average-udev-developer kind of
people.

> > The other group is the one that uses some sort of initrd (loop mount or cpio),
> > created with tools from their distribution.
> > Again, they should install that kinit binary as well because kinit emulates
> > the loop mount handling of /initrd.image. This is for older distributions
> > that still create a loop mounted initrd.
> 
> There's no need for loop-mounting of any initrd.images.  Initramfs (cpio image,
> possible gzipped) works just fine, and it will NOT go away because something
> should do the unpacking/loading of that image so that kinit &Co will run.
> There's no need for old initrd+pivot_root at all.  Only the ones who are,
> for some reason, didn't switch to initramfs yet.  And I personally see no
> reasons not to switch - initramfs (rootfs) concept is much more clean and
> easy to handle and gives more possibilities than initrd.

Are you saying that everyone now suddenly is forced to use a cpio image?
Why did hpa add the loop mount code to kinit?
So if you force people who build kernels to use newer tools, one more
external binary will surely not hurt.

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

* Re: klibc and what's the next step?
  2006-07-11  4:48   ` Olaf Hering
  2006-07-11 10:29     ` 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 14:32     ` Rene Herman
  2006-07-13 11:58     ` Pavel Machek
  4 siblings, 2 replies; 95+ messages in thread
From: Theodore Tso @ 2006-07-11 13:45 UTC (permalink / raw)
  To: Olaf Hering; +Cc: H. Peter Anvin, Roman Zippel, linux-kernel, klibc, torvalds

On Tue, Jul 11, 2006 at 06:48:34AM +0200, Olaf Hering wrote:
> One is the kind that builds static kernels and uses no initrd of any kind.
> For those people, the code and interfaces behind prepare_namespace() has
> not changed in a long time.
> They will install that kinit binary once and it will continue to work with
> kernels from 2.6.6 and later, when "/init" support was merged. Or rather
> from 2.6.1x when CONFIG_INITRAMFS_SOURCE was introduced.
> 
> The other group is the one that uses some sort of initrd (loop mount or cpio),
> created with tools from their distribution.
> Again, they should install that kinit binary as well because kinit emulates
> the loop mount handling of /initrd.image. This is for older distributions
> that still create a loop mounted initrd.

Kinit SHOULD be merged into the kernel, and the responsibility of
creating the initrd/initramfs image should be moved from the
distribution into the kernel build process.  There can and should be a
way for distro's to add their own "value add specials" into the
initrd/initramfs image, but we have to take over creating the base
initial userspace environment.  It's not just uswsusp (still not
convinced it's a good idea, but if we're going to do it we have to
wrest control of the initramfs away from the distro's), but finding
and mounting iSCSI disks, LVM setup, etc.

> In earlier mails you stated that having kinit/klibc in the kernel sources
> would make it easier to keep up with interface changes.
> What interface changes did you have in mind, and can you name any relevant
> interface changes that were made after 2.6.0 which would break an external
> kinit?

When you load a SCSI driver (the one that bit me was the MPT Fusion
driver), it no longer waits for SCSI bus probe to finish before
returning.  So the RHEL4 initrd fails to find the root filesystem, and
bombs out.  This change was definitely made after 2.6.0, and is an
example of the sort of change which wouldn't have happened if kinit
was under the kernel sources and not supplied by the distro.

> As others have stated in this thread, the code behind prepare_namespace() is 
> very simple. It doesnt know anything abould lvm etc, nor about mount by
> filesystem UUID/LABEL nor does it know how to deal with properly with new
> technologies like iSCSI, evms, persistant storage device names, usb-storage,
> sbp2 or async device probing.
> Should all that knowledge end up in the kernel source on day?

Some of this will probably need to be farmed out into files provided
by external packages, but I **hope** that they are true upstream
external packages, and not distro-specific specials, which is one of
the reasons why the current initrd/initramfs situation is
so.... unsatisfactory.  Clearly some kernel-mandated interface for
other packages to insert scripts and binaries during the early-boot
process would be a good thing; but the core initramfs functionality
should IMHO belong to the kernel.

						- Ted

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

* Re: klibc and what's the next step?
  2006-07-11 13:45     ` Theodore Tso
@ 2006-07-11 14:28       ` Michael Tokarev
  2006-07-11 15:13       ` [klibc] " Olaf Hering
  1 sibling, 0 replies; 95+ messages in thread
From: Michael Tokarev @ 2006-07-11 14:28 UTC (permalink / raw)
  To: Theodore Tso, Olaf Hering, H. Peter Anvin, Roman Zippel,
	linux-kernel, klibc, torvalds

Theodore Tso wrote:
> On Tue, Jul 11, 2006 at 06:48:34AM +0200, Olaf Hering wrote:
[]
> Kinit SHOULD be merged into the kernel, and the responsibility of
> creating the initrd/initramfs image should be moved from the
> distribution into the kernel build process.  There can and should be a

Hmm.

> way for distro's to add their own "value add specials" into the
> initrd/initramfs image, but we have to take over creating the base
> initial userspace environment.  It's not just uswsusp (still not
> convinced it's a good idea, but if we're going to do it we have to
> wrest control of the initramfs away from the distro's), but finding
> and mounting iSCSI disks, LVM setup, etc.
> 
>> In earlier mails you stated that having kinit/klibc in the kernel sources
>> would make it easier to keep up with interface changes.
>> What interface changes did you have in mind, and can you name any relevant
>> interface changes that were made after 2.6.0 which would break an external
>> kinit?
> 
> When you load a SCSI driver (the one that bit me was the MPT Fusion
> driver), it no longer waits for SCSI bus probe to finish before
> returning.  So the RHEL4 initrd fails to find the root filesystem, and
> bombs out.  This change was definitely made after 2.6.0, and is an
> example of the sort of change which wouldn't have happened if kinit
> was under the kernel sources and not supplied by the distro.

How kinit is involved in loading drivers, and how it will know
that it should wait for certain things after doing something?

Nowadays, udev+modprobe are responsible for loading drivers, not kinit.
If you suggesting kinit should do that, well.. it becomes bigger at
least.

And oh, determining which modules to include into initramfs...
it's definitely NOT part of kernel BUILD process, but, so to say,
kernel package install process (note I for one often build initramfses
for OTHER machines - something most mkinitrd solutions are unable to
do - by specifying eg alternative root filesystem, or different set
of modules etc).

[]
> Some of this will probably need to be farmed out into files provided
> by external packages, but I **hope** that they are true upstream
> external packages, and not distro-specific specials, which is one of
> the reasons why the current initrd/initramfs situation is
> so.... unsatisfactory.  Clearly some kernel-mandated interface for
> other packages to insert scripts and binaries during the early-boot
> process would be a good thing; but the core initramfs functionality
> should IMHO belong to the kernel.

The main reason why the situation is so unsatisfactory (yes it definitely
is), IMHO, is that it's at least difficult to discover which stuff should
be included into early userspace (initramfs).  For example, having a list
of drivers and their modaliases, I'd like to be able to get a list of
modules in *new* kernel for those devices (based on whatever currently
running kernel sees in PCI etc).  Another examples include stuff like
already mentioned softraid, lvm and iSCSI - that things should be provided
by upstream packages (mdadm, lvmtools etc), as hooks to initramfs creation
(as, for example, Debian and Ubunto currently tries to do, for their
home-grown initramfs-tools package).

I can give another example.  Somewhere between 2.6.11 and 2.6.14,
softraid module has been renamed from md.ko to md-mod.ko.  So my
home-grown (yes, yet another :) mkinitramfs broke.  So now it
contains something like
  if included "md-mod|md" CONFIG_RAID then
     ...
and later,
  modprobe md-mod || modprobe md
for root-on-md-device.  But the same should be done in mdadm
initscript as well so.. kinit does not help here again.
Ditto for various ide-mod, ide-generic/generic renames
(including distro-specific mods), and especially for - seems
to be upcoming - ide=>pata conversion (which has quite alot
of other side effects, since all sdXX devices will move and
hdXX will gone).

But that's all beyong the point really.  I mean, there's really nothing
which requires kinit to be in kernel.  The argument above - about waiting
for mptfusion to settle - is moot just because kinit does not (currently
anyway) provide that functionality.

(And oh... I really dislike udev being in initramfs... just like the whole
udev stuff in the first place... but that's entirely different topic ;)

/mjt

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11  4:48   ` Olaf Hering
                       ` (2 preceding siblings ...)
  2006-07-11 13:45     ` Theodore Tso
@ 2006-07-11 14:32     ` Rene Herman
  2006-07-12 15:23       ` David Lang
  2006-07-13 11:58     ` Pavel Machek
  4 siblings, 1 reply; 95+ messages in thread
From: Rene Herman @ 2006-07-11 14:32 UTC (permalink / raw)
  To: Olaf Hering; +Cc: H. Peter Anvin, Roman Zippel, torvalds, klibc, linux-kernel

Olaf Hering wrote:

 > I do not want to see kinit merged.

For what it's worth -- I as a user am violently opposed to kinit not 
being in the source tree, if _anything_ is merged.

Given that's it's intended to take over kernel functionality, kinit 
would be a tightly coupled piece of software and a number of problems 
2.6 has seen are with tightly coupled software (udev, alsa-lib) getting 
out of sync with the kernel. I believe someone from redhat complained 
about it last. Adding another tightly coupled external app to the mix is 
just going to worsen the situation. Please don't do that.

And yes, then there's the issue of keeping distributions all using the 
same thing which I saw someone else remark on as well. If klibc/kinit is 
the way forward, please make sure kinit is in the kernel source tree.

Rene.


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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 13:45     ` Theodore Tso
  2006-07-11 14:28       ` Michael Tokarev
@ 2006-07-11 15:13       ` Olaf Hering
  2006-07-11 15:30         ` Adrian Bunk
  2006-07-11 16:21         ` Alan Cox
  1 sibling, 2 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 15:13 UTC (permalink / raw)
  To: Theodore Tso, H. Peter Anvin, Roman Zippel, linux-kernel, klibc,
	torvalds

 On Tue, Jul 11, Theodore Tso wrote:

> > In earlier mails you stated that having kinit/klibc in the kernel sources
> > would make it easier to keep up with interface changes.
> > What interface changes did you have in mind, and can you name any relevant
> > interface changes that were made after 2.6.0 which would break an external
> > kinit?
> 
> When you load a SCSI driver (the one that bit me was the MPT Fusion
> driver), it no longer waits for SCSI bus probe to finish before
> returning.  So the RHEL4 initrd fails to find the root filesystem, and
> bombs out.  This change was definitely made after 2.6.0, and is an
> example of the sort of change which wouldn't have happened if kinit
> was under the kernel sources and not supplied by the distro.

Was RHEL4 designed for 2.6?


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

* Re: [klibc] klibc and what's the next step?
  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
  1 sibling, 1 reply; 95+ messages in thread
From: Adrian Bunk @ 2006-07-11 15:30 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Theodore Tso, H. Peter Anvin, Roman Zippel, linux-kernel, klibc,
	torvalds

On Tue, Jul 11, 2006 at 05:13:47PM +0200, Olaf Hering wrote:
>  On Tue, Jul 11, Theodore Tso wrote:
> 
> > > In earlier mails you stated that having kinit/klibc in the kernel sources
> > > would make it easier to keep up with interface changes.
> > > What interface changes did you have in mind, and can you name any relevant
> > > interface changes that were made after 2.6.0 which would break an external
> > > kinit?
> > 
> > When you load a SCSI driver (the one that bit me was the MPT Fusion
> > driver), it no longer waits for SCSI bus probe to finish before
> > returning.  So the RHEL4 initrd fails to find the root filesystem, and
> > bombs out.  This change was definitely made after 2.6.0, and is an
> > example of the sort of change which wouldn't have happened if kinit
> > was under the kernel sources and not supplied by the distro.
> 
> Was RHEL4 designed for 2.6?

Yes (it uses 2.6.9).

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 15:30         ` Adrian Bunk
@ 2006-07-11 15:47           ` Olaf Hering
  0 siblings, 0 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 15:47 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Theodore Tso, H. Peter Anvin, Roman Zippel, linux-kernel, klibc,
	torvalds

 On Tue, Jul 11, Adrian Bunk wrote:

> On Tue, Jul 11, 2006 at 05:13:47PM +0200, Olaf Hering wrote:
> >  On Tue, Jul 11, Theodore Tso wrote:
> > 
> > > > In earlier mails you stated that having kinit/klibc in the kernel sources
> > > > would make it easier to keep up with interface changes.
> > > > What interface changes did you have in mind, and can you name any relevant
> > > > interface changes that were made after 2.6.0 which would break an external
> > > > kinit?
> > > 
> > > When you load a SCSI driver (the one that bit me was the MPT Fusion
> > > driver), it no longer waits for SCSI bus probe to finish before
> > > returning.  So the RHEL4 initrd fails to find the root filesystem, and
> > > bombs out.  This change was definitely made after 2.6.0, and is an
> > > example of the sort of change which wouldn't have happened if kinit
> > > was under the kernel sources and not supplied by the distro.
> > 
> > Was RHEL4 designed for 2.6?
> 
> Yes (it uses 2.6.9).

Ok, I suspect RHEL9 doesnt work with root on usb-storage or sbp2 either?
If so, not a big deal. in-kernel kinit wouldnt work any better if it lacks
support for async probing. But I dont know the details about the mpt failure.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 15:13       ` [klibc] " Olaf Hering
  2006-07-11 15:30         ` Adrian Bunk
@ 2006-07-11 16:21         ` Alan Cox
  1 sibling, 0 replies; 95+ messages in thread
From: Alan Cox @ 2006-07-11 16:21 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Theodore Tso, H. Peter Anvin, Roman Zippel, linux-kernel, klibc,
	torvalds

Ar Maw, 2006-07-11 am 17:13 +0200, ysgrifennodd Olaf Hering:
>  On Tue, Jul 11, Theodore Tso wrote:
> 
> Was RHEL4 designed for 2.6?

RHEL4 is 2.6.9 based, with a lot of bugs then fixed.


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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 11:27       ` [klibc] " Olaf Hering
@ 2006-07-11 16:24         ` H. Peter Anvin
  2006-07-11 16:40           ` Olaf Hering
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 16:24 UTC (permalink / raw)
  To: Olaf Hering; +Cc: Michael Tokarev, Roman Zippel, torvalds, klibc, linux-kernel

Olaf Hering wrote:
> 
>>> The other group is the one that uses some sort of initrd (loop mount or cpio),
>>> created with tools from their distribution.
>>> Again, they should install that kinit binary as well because kinit emulates
>>> the loop mount handling of /initrd.image. This is for older distributions
>>> that still create a loop mounted initrd.
>> There's no need for loop-mounting of any initrd.images.  Initramfs (cpio image,
>> possible gzipped) works just fine, and it will NOT go away because something
>> should do the unpacking/loading of that image so that kinit &Co will run.
>> There's no need for old initrd+pivot_root at all.  Only the ones who are,
>> for some reason, didn't switch to initramfs yet.  And I personally see no
>> reasons not to switch - initramfs (rootfs) concept is much more clean and
>> easy to handle and gives more possibilities than initrd.
> 
> Are you saying that everyone now suddenly is forced to use a cpio image?
> Why did hpa add the loop mount code to kinit?
> So if you force people who build kernels to use newer tools, one more
> external binary will surely not hurt.

When you say "loop mount code" I presume you mean legacy initrd support 
(which doesn't use loop mounting.)  Legacy initrd support is provided to 
be as compatible as possible, obviously.

And yes, it should be a configurable.  Chopping kinit into configurable 
pieces is on my short list.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  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:46             ` Michael Tokarev
  0 siblings, 2 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 16:40 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Michael Tokarev, Roman Zippel, torvalds, klibc, linux-kernel

 On Tue, Jul 11, H. Peter Anvin wrote:

> When you say "loop mount code" I presume you mean legacy initrd support 
> (which doesn't use loop mounting.)  Legacy initrd support is provided to 
> be as compatible as possible, obviously.

Yes.
To create the initrd you needed a loop file, at least for ext2, minix etc.

But so far, the arguments are not convincing that kinit has to be in the
kernel tree.

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

* Re: [klibc] klibc and what's the next step?
  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:55               ` Michael Tokarev
  2006-07-11 17:46             ` Michael Tokarev
  1 sibling, 2 replies; 95+ messages in thread
From: Jeff Garzik @ 2006-07-11 17:05 UTC (permalink / raw)
  To: Olaf Hering
  Cc: H. Peter Anvin, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

Olaf Hering wrote:
>  On Tue, Jul 11, H. Peter Anvin wrote:
> 
>> When you say "loop mount code" I presume you mean legacy initrd support 
>> (which doesn't use loop mounting.)  Legacy initrd support is provided to 
>> be as compatible as possible, obviously.
> 
> Yes.
> To create the initrd you needed a loop file, at least for ext2, minix etc.
> 
> But so far, the arguments are not convincing that kinit has to be in the
> kernel tree.

Two are IMO fairly plain:

* Makes sure you can boot the kernel you just built.

* Makes it easier to move stuff between kernel and userspace.



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

* Re: [klibc] klibc and what's the next step?
  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 18:03                 ` H. Peter Anvin
  2006-07-11 17:55               ` Michael Tokarev
  1 sibling, 2 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 17:16 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: H. Peter Anvin, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

 On Tue, Jul 11, Jeff Garzik wrote:

> Two are IMO fairly plain:
> 
> * Makes sure you can boot the kernel you just built.

There is always some sort of prereq when new features get added.
Documentation/Changes has a long list. Some setup need more updates,
some need fewer updates. No idea what your experience is.
Old klibc was trivial to build (modulo that kernel header mess), and I
expect that kinit handles old kernels.

> * Makes it easier to move stuff between kernel and userspace.

What do you have in mind here?
Once prepare_namespace is gone, there is no userspace code left.

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

* Re: [klibc] klibc and what's the next step?
  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 18:03                 ` H. Peter Anvin
  1 sibling, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 17:23 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

Olaf Hering wrote:
>  On Tue, Jul 11, Jeff Garzik wrote:
> 
>> Two are IMO fairly plain:
>>
>> * Makes sure you can boot the kernel you just built.
> 
> There is always some sort of prereq when new features get added.
> Documentation/Changes has a long list. Some setup need more updates,
> some need fewer updates. No idea what your experience is.
> Old klibc was trivial to build (modulo that kernel header mess), and I
> expect that kinit handles old kernels.
> 

"Old klibc" still exists and is the same code out of the same source tree.

>> * Makes it easier to move stuff between kernel and userspace.
> 
> What do you have in mind here?
> Once prepare_namespace is gone, there is no userspace code left.

Things that have been bandied about, for example:

	- suspend/resume
	- partition discovery

I'm sure there is more.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 17:23                 ` H. Peter Anvin
@ 2006-07-11 17:30                   ` Olaf Hering
  2006-07-11 17:46                     ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 17:30 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

 On Tue, Jul 11, H. Peter Anvin wrote:

> "Old klibc" still exists and is the same code out of the same source tree.

I meant more the "easy to build" part.

> >>* Makes it easier to move stuff between kernel and userspace.
> >
> >What do you have in mind here?
> >Once prepare_namespace is gone, there is no userspace code left.
> 
> Things that have been bandied about, for example:
> 
> 	- suspend/resume
> 	- partition discovery
> 
> I'm sure there is more.

Do you plan to share source files betweek kernel and kinit? Or how is it
harder for external kinit to handle that?

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 16:40           ` Olaf Hering
  2006-07-11 17:05             ` Jeff Garzik
@ 2006-07-11 17:46             ` Michael Tokarev
  2006-07-11 17:52               ` Olaf Hering
  1 sibling, 1 reply; 95+ messages in thread
From: Michael Tokarev @ 2006-07-11 17:46 UTC (permalink / raw)
  To: Olaf Hering; +Cc: H. Peter Anvin, Roman Zippel, torvalds, klibc, linux-kernel

Olaf Hering wrote:
[]
> To create the initrd you needed a loop file, at least for ext2, minix etc.

It's just damn trivial to pack your files into cpio archive and gzip it.
No need for any filesystem code in kernel, be it ext2, minix or other.

initrd => initramfs conversion (what you said I "force" on users) is
to switch from loop+whatever-fs-du-jur to plain dirrectory and cpio,
and to add the final mount+run_init into the initrd script.  And after
that's done, everything becomes good... ;)

> But so far, the arguments are not convincing that kinit has to be in the
> kernel tree.

Here, I agree.

/mjt

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 17:30                   ` Olaf Hering
@ 2006-07-11 17:46                     ` H. Peter Anvin
  2006-07-11 18:01                       ` Olaf Hering
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 17:46 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

Olaf Hering wrote:
>  On Tue, Jul 11, H. Peter Anvin wrote:
> 
>> "Old klibc" still exists and is the same code out of the same source tree.
> 
> I meant more the "easy to build" part.
> 
>>>> * Makes it easier to move stuff between kernel and userspace.
>>> What do you have in mind here?
>>> Once prepare_namespace is gone, there is no userspace code left.
>> Things that have been bandied about, for example:
>>
>> 	- suspend/resume
>> 	- partition discovery
>>
>> I'm sure there is more.
> 
> Do you plan to share source files betweek kernel and kinit? Or how is it
> harder for external kinit to handle that?

It's a deployment problem, arguably especially for people who 
cross-compile.  You have two major pieces of code (kernel and klibc) 
which have to be changed at the same time, with different maintainers 
and reviewers.

	-hpa


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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 17:46             ` Michael Tokarev
@ 2006-07-11 17:52               ` Olaf Hering
  2006-07-11 18:02                 ` Michael Tokarev
  0 siblings, 1 reply; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 17:52 UTC (permalink / raw)
  To: Michael Tokarev
  Cc: H. Peter Anvin, Roman Zippel, torvalds, klibc, linux-kernel

 On Tue, Jul 11, Michael Tokarev wrote:

> Olaf Hering wrote:
> []
> > To create the initrd you needed a loop file, at least for ext2, minix etc.
> 
> It's just damn trivial to pack your files into cpio archive and gzip it.

The point is not how trivial it is. The point is how much has to change
that you can run 2.6.42 on an 42 year old installation with the tools
that were available at that time.
Obiviously you cant be bothered to install newer packages, like kinit.rpm.
Basic backwards compatibilty. Its not a term from the klingon dictionary.

Btw, kinit is already taken, some kerberos thing.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 17:05             ` Jeff Garzik
  2006-07-11 17:16               ` Olaf Hering
@ 2006-07-11 17:55               ` Michael Tokarev
  1 sibling, 0 replies; 95+ messages in thread
From: Michael Tokarev @ 2006-07-11 17:55 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Olaf Hering, H. Peter Anvin, Roman Zippel, torvalds, klibc, linux-kernel

Jeff Garzik wrote:
[]
>> But so far, the arguments are not convincing that kinit has to be in the
>> kernel tree.
> 
> Two are IMO fairly plain:
> 
> * Makes sure you can boot the kernel you just built.

Nowadays, less and less setups will Just Work without additional
help.  softraid/lvm (yes I know about raid-autodetect, which should
DIE better sooner than later, due to its brokeness), firmware loading,
DSDT table updates, iSCSI and what not.

So, by just moving stuff to kinit and providing it with kernel
solves nothing in this area.

Yes, there's a very tiny difference between in-kernel kinit and
external kinit: I mean, external kinit has a >< bit more chances
to be incompatible with new kernel than kernel-supplied one.
But so are other tools and libraries, listed in Documentation/Changes.

> * Makes it easier to move stuff between kernel and userspace.

Again, not an argument to have kinit to be supplied by kernel.
Or, rarther, not strong argument.

It'd be much easier to "test" some stuff and to shuffle things
between kernel and user spaces if kinit is a part of kernel.
Like, move things to kinit, discover it does not quite work,
move some stuff back, etc.  With external kinit that will not
be easy, and kinit will grow indefinitely, accumulating all
the various compatibility/testing cruft.

But that's not how things should be done IMHO.  Testing/planning,
that is...

And again, how much stuff it's possible to shuffle this way?
How many new concepts *can* be moved from kernel to kinit,
anyway?  Uswsusp has been mentioned.  Anything else?

/mjt


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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 17:46                     ` H. Peter Anvin
@ 2006-07-11 18:01                       ` Olaf Hering
  2006-07-11 18:04                         ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 18:01 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

 On Tue, Jul 11, H. Peter Anvin wrote:

> It's a deployment problem, arguably especially for people who 
> cross-compile.  You have two major pieces of code (kernel and klibc) 
> which have to be changed at the same time, with different maintainers 
> and reviewers.

Why is that a problem? You cant rip code from the kernel before the main
kinit has support for that removed feature. Thats obvious.
I dont use suspend, so I dont know how the existing in-kernel code has to
look in kinit.
But for the partition discovery (the ROOT_DEV users) its likely less than
100 lines of code. And after all, root= exists. Probably not a big loss if
that code just disappears.

I dont get your point.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 17:52               ` Olaf Hering
@ 2006-07-11 18:02                 ` Michael Tokarev
  0 siblings, 0 replies; 95+ messages in thread
From: Michael Tokarev @ 2006-07-11 18:02 UTC (permalink / raw)
  To: Olaf Hering; +Cc: H. Peter Anvin, Roman Zippel, torvalds, klibc, linux-kernel

Olaf Hering wrote:
>  On Tue, Jul 11, Michael Tokarev wrote:
> 
>> Olaf Hering wrote:
>> []
>>> To create the initrd you needed a loop file, at least for ext2, minix etc.
>> It's just damn trivial to pack your files into cpio archive and gzip it.
> 
> The point is not how trivial it is. The point is how much has to change
> that you can run 2.6.42 on an 42 year old installation with the tools
> that were available at that time.

I'd say you've ZERO chance to run just new kernel.  You will need more
recent glibc, never softraid tools, you will discover that /dev/hdXX are
all gone, and so on.

> Obiviously you cant be bothered to install newer packages, like kinit.rpm.
> Basic backwards compatibilty. Its not a term from the klingon dictionary.

Well.  I'd say it's not that obvious.  For example, I can't boot redhat-6.0
system with current 2.6 kernel (I once tried that, probably with 2.6.9 or
something - there were quite.. some problems.  Upgrading several packages,
including glibc compiled against 2.6 kernel, solved that. Some stuff was
still broken, but I didn't try hard).  BTW, devfs is just one example...
try to boot a one-year-old gentoo distro (not 42, but 1) with current
2.6 without devfs... ;)

Another point is: why the heck you want to boot such 42-years-old system
with current "best, grestest" kernel, anyway?

> Btw, kinit is already taken, some kerberos thing.

Heh. Yes it is.

/mjt

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 17:16               ` Olaf Hering
  2006-07-11 17:23                 ` 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
  1 sibling, 2 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 18:03 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

Olaf Hering wrote:
> 
> There is always some sort of prereq when new features get added.
> Documentation/Changes has a long list. Some setup need more updates,
> some need fewer updates. No idea what your experience is.
> Old klibc was trivial to build (modulo that kernel header mess), and I
> expect that kinit handles old kernels.
> 

One more thing on this subject... "modulo that kernel header mess" is 
just as much a reflection of the fact that the Linux ABI really isn't 
particularly stable.  glibc contains a huge amount of code to deal with 
different kernel versions.  klibc will not be doing this; in general old 
klibcs should continue to work (but may not compile against a newer 
kernel), but a newer klibc may not work on an older kernel.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 18:01                       ` Olaf Hering
@ 2006-07-11 18:04                         ` H. Peter Anvin
  2006-07-11 18:10                           ` Olaf Hering
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 18:04 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

Olaf Hering wrote:
> But for the partition discovery (the ROOT_DEV users) its likely less than
> 100 lines of code. And after all, root= exists. Probably not a big loss if
> that code just disappears.

Partition discovery is not "the ROOT_DEV users".  It's the mapping of 
certain chunks of disk to partitions.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 18:03                 ` H. Peter Anvin
@ 2006-07-11 18:06                   ` Michael Tokarev
  2006-07-11 18:15                   ` Olaf Hering
  1 sibling, 0 replies; 95+ messages in thread
From: Michael Tokarev @ 2006-07-11 18:06 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Olaf Hering, Jeff Garzik, Roman Zippel, torvalds, klibc, linux-kernel

H. Peter Anvin wrote:
> Olaf Hering wrote:
[]
> [...] in general old
> klibcs should continue to work (but may not compile against a newer
> kernel), but a newer klibc may not work on an older kernel.

Heh.  Olaf says about "basic backwards compatibilty", referring to
the klingon dictionary...

(please don't treat this as an offense - just.. funny)

/mjt

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 18:04                         ` H. Peter Anvin
@ 2006-07-11 18:10                           ` Olaf Hering
  2006-07-11 18:17                             ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 18:10 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

 On Tue, Jul 11, H. Peter Anvin wrote:

> Olaf Hering wrote:
> >But for the partition discovery (the ROOT_DEV users) its likely less than
> >100 lines of code. And after all, root= exists. Probably not a big loss if
> >that code just disappears.
> 
> Partition discovery is not "the ROOT_DEV users".  It's the mapping of 
> certain chunks of disk to partitions.

Now I'm confused.
Is the kernel partition code supposed to go at some point?
Some people suggested that, but Linus was not convinced.

If you mean just 'interpreting the partition table', thats not hard
either. I just poked at such code in yaboot a few weeks ago.

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

* Re: [klibc] klibc and what's the next step?
  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
  1 sibling, 1 reply; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 18:15 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

 On Tue, Jul 11, H. Peter Anvin wrote:

> Olaf Hering wrote:
> >
> >There is always some sort of prereq when new features get added.
> >Documentation/Changes has a long list. Some setup need more updates,
> >some need fewer updates. No idea what your experience is.
> >Old klibc was trivial to build (modulo that kernel header mess), and I
> >expect that kinit handles old kernels.
> >
> 
> One more thing on this subject... "modulo that kernel header mess" is 
> just as much a reflection of the fact that the Linux ABI really isn't 
> particularly stable.  glibc contains a huge amount of code to deal with 
> different kernel versions.  klibc will not be doing this; in general old 
> klibcs should continue to work (but may not compile against a newer 
> kernel), but a newer klibc may not work on an older kernel.

"It would be nice if ..." someone can build a list of things that
changed over time. Say from 2.0.0 to 2.6.18. Just struct layouts and defines.

I havent tried it, but one would hope that the /bin/ls from SuSE 5.3 still
works today.  Guess its time for me to actually try that the next days.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 18:10                           ` Olaf Hering
@ 2006-07-11 18:17                             ` H. Peter Anvin
  2006-07-11 19:15                               ` Olaf Hering
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 18:17 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

Olaf Hering wrote:
> Now I'm confused.
> Is the kernel partition code supposed to go at some point?
> Some people suggested that, but Linus was not convinced.

It's a proposal, and I personally think it makes sense.  If done, it is 
obviously very important that it doesn't change the overall operation of 
the system.

> If you mean just 'interpreting the partition table', thats not hard
> either. I just poked at such code in yaboot a few weeks ago.

It's not hard; any of the partition table stuff, but we have quite a 
proliferation of them.  It'd be even easier in userspace.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  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 20:06                       ` Olaf Hering
  0 siblings, 2 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 18:22 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

Olaf Hering wrote:
> "It would be nice if ..." someone can build a list of things that
> changed over time. Say from 2.0.0 to 2.6.18. Just struct layouts and defines.
> 
> I havent tried it, but one would hope that the /bin/ls from SuSE 5.3 still
> works today.  Guess its time for me to actually try that the next days.

You know how much code there is in glibc to make your /bin/ls still work?

That being said, it in general isn't a problem to continue to use the 
same exact sets of system calls, but that also means skipping any new 
functionality.  In recent memory that includes things like 64-bit file 
offsets and high signals, even more recently it means things like 
openat() and splice().  A full-blown libc also has to deal with 
LinuxThreads version NPTL.  Etc.

Again, I fully expect that klibc-0.1 still works on the current kernels, 
but current klibc wouldn't work on 2.4 kernels.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 18:53                       ` Alan Cox
@ 2006-07-11 18:46                         ` H. Peter Anvin
  0 siblings, 0 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 18:46 UTC (permalink / raw)
  To: Alan Cox
  Cc: Olaf Hering, Jeff Garzik, Michael Tokarev, Roman Zippel,
	torvalds, klibc, linux-kernel

Alan Cox wrote:
> Ar Maw, 2006-07-11 am 11:22 -0700, ysgrifennodd H. Peter Anvin:
>> You know how much code there is in glibc to make your /bin/ls still work?
> 
> A static linked pre libc 2.2 (thats libc not glibc) ls works fine today,
> as does a 0.98.5 era built rogue binary

Didn't work when I tried it, although that was a shared binary (and yes, 
I had the library there.)  I assumed mostly that ZMAGIC support had 
bitrotted -- even back in '95 there was a lot of problems with ZMAGIC 
binaries when ext2 block size was > 1K.

	-hpa


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

* Re: [klibc] klibc and what's the next step?
  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
  1 sibling, 1 reply; 95+ messages in thread
From: Alan Cox @ 2006-07-11 18:53 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Olaf Hering, Jeff Garzik, Michael Tokarev, Roman Zippel,
	torvalds, klibc, linux-kernel

Ar Maw, 2006-07-11 am 11:22 -0700, ysgrifennodd H. Peter Anvin:
> You know how much code there is in glibc to make your /bin/ls still work?

A static linked pre libc 2.2 (thats libc not glibc) ls works fine today,
as does a 0.98.5 era built rogue binary


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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 18:17                             ` H. Peter Anvin
@ 2006-07-11 19:15                               ` Olaf Hering
  2006-07-11 19:29                                 ` Linus Torvalds
  0 siblings, 1 reply; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 19:15 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

 On Tue, Jul 11, H. Peter Anvin wrote:

> Olaf Hering wrote:
> >Now I'm confused.
> >Is the kernel partition code supposed to go at some point?
> >Some people suggested that, but Linus was not convinced.
> 
> It's a proposal, and I personally think it makes sense.  If done, it is 
> obviously very important that it doesn't change the overall operation of 
> the system.

I think you can have that today, parted uses BLKPG to add and remoe
things. No idea what the benefit would be, but thats not relavant for
kinit or no kinit.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 19:15                               ` Olaf Hering
@ 2006-07-11 19:29                                 ` Linus Torvalds
  2006-07-11 19:38                                   ` H. Peter Anvin
  0 siblings, 1 reply; 95+ messages in thread
From: Linus Torvalds @ 2006-07-11 19:29 UTC (permalink / raw)
  To: Olaf Hering
  Cc: H. Peter Anvin, Jeff Garzik, Michael Tokarev, Roman Zippel,
	klibc, linux-kernel



On Tue, 11 Jul 2006, Olaf Hering wrote:
> > 
> > It's a proposal, and I personally think it makes sense.  If done, it is 
> > obviously very important that it doesn't change the overall operation of 
> > the system.
> 
> I think you can have that today, parted uses BLKPG to add and remoe
> things. No idea what the benefit would be, but thats not relavant for
> kinit or no kinit.

The notion that the kernel itself should do no partition parsing at all 
was advocated by Andries Brouwer. I violently disagree. Anything that the 
lack of which makes a normal system basically unusable should go into the 
kernel.

Yes, the kernel rules are heuristics, but so would inevitably any 
user-level rules be too, so I don't want to move partition detection to 
initrd or similar.

		Linus

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 19:29                                 ` Linus Torvalds
@ 2006-07-11 19:38                                   ` H. Peter Anvin
  2006-07-11 19:51                                     ` Linus Torvalds
  0 siblings, 1 reply; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 19:38 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Olaf Hering, Jeff Garzik, Michael Tokarev, Roman Zippel, klibc,
	linux-kernel

Linus Torvalds wrote:
> 
> On Tue, 11 Jul 2006, Olaf Hering wrote:
>>> It's a proposal, and I personally think it makes sense.  If done, it is 
>>> obviously very important that it doesn't change the overall operation of 
>>> the system.
>> I think you can have that today, parted uses BLKPG to add and remoe
>> things. No idea what the benefit would be, but thats not relavant for
>> kinit or no kinit.
> 
> The notion that the kernel itself should do no partition parsing at all 
> was advocated by Andries Brouwer. I violently disagree. Anything that the 
> lack of which makes a normal system basically unusable should go into the 
> kernel.
> 

Does that mean "in kernel space", "in the kernel distribution" or "in 
memory completely under the control by the kernel?"  That is really what 
this is about.

There could be a klibc-build binary in rootfs, build at the time the 
kernel was built, that can be invoked by the kernel in parallel with 
/sbin/hotplug.

> Yes, the kernel rules are heuristics, but so would inevitably any 
> user-level rules be too, so I don't want to move partition detection to 
> initrd or similar.

The whole point of putting klibc in the kernel tree is so we can do this 
kind of stuff without breaking the stock kernel build as a 
self-contained entity.  Without that objective, Olaf is right that it is 
not necessary.

	-hpa

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 19:38                                   ` H. Peter Anvin
@ 2006-07-11 19:51                                     ` Linus Torvalds
  2006-07-11 19:59                                       ` Jeff Garzik
                                                         ` (3 more replies)
  0 siblings, 4 replies; 95+ messages in thread
From: Linus Torvalds @ 2006-07-11 19:51 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Olaf Hering, Jeff Garzik, Michael Tokarev, Roman Zippel, klibc,
	linux-kernel



On Tue, 11 Jul 2006, H. Peter Anvin wrote:
> 
> Does that mean "in kernel space", "in the kernel distribution" or "in memory
> completely under the control by the kernel?"  That is really what this is
> about.

I think it's all about kernel space.

Moving the default parsing to user space would add exactly _zero_ 
advantage, and would add totally unnecessary complexity (ie now we need to 
make sure that hotplug does it right - and the hotplug routines suddenly 
change between the boot phase and the actual install).

		Linus

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 19:51                                     ` Linus Torvalds
@ 2006-07-11 19:59                                       ` Jeff Garzik
  2006-07-11 20:01                                       ` Theodore Tso
                                                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 95+ messages in thread
From: Jeff Garzik @ 2006-07-11 19:59 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: H. Peter Anvin, Olaf Hering, Michael Tokarev, Roman Zippel,
	klibc, linux-kernel

Linus Torvalds wrote:
> 
> On Tue, 11 Jul 2006, H. Peter Anvin wrote:
>> Does that mean "in kernel space", "in the kernel distribution" or "in memory
>> completely under the control by the kernel?"  That is really what this is
>> about.
> 
> I think it's all about kernel space.
> 
> Moving the default parsing to user space would add exactly _zero_ 
> advantage, and would add totally unnecessary complexity (ie now we need to 
> make sure that hotplug does it right - and the hotplug routines suddenly 
> change between the boot phase and the actual install).

With LVM (default RHEL and Fedora installs encourage you in that 
direction) and EVMS (device mapper), these issues already exist.

Today's default install has "partition" parsing in both the kernel and 
userspace...  talk about complexity :)

	Jeff



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

* Re: [klibc] klibc and what's the next step?
  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
  3 siblings, 0 replies; 95+ messages in thread
From: Theodore Tso @ 2006-07-11 20:01 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: H. Peter Anvin, Olaf Hering, Jeff Garzik, Michael Tokarev,
	Roman Zippel, klibc, linux-kernel

On Tue, Jul 11, 2006 at 12:51:31PM -0700, Linus Torvalds wrote:
> On Tue, 11 Jul 2006, H. Peter Anvin wrote:
> > 
> > Does that mean "in kernel space", "in the kernel distribution" or "in memory
> > completely under the control by the kernel?"  That is really what this is
> > about.
> 
> I think it's all about kernel space.
> 
> Moving the default parsing to user space would add exactly _zero_ 
> advantage, and would add totally unnecessary complexity (ie now we need to 
> make sure that hotplug does it right - and the hotplug routines suddenly 
> change between the boot phase and the actual install).

While you're at it, do you think you'd be willing to opine about doing
whether it makes sense to chuck out the guts of suspend-to-disk so
that it must be done in userspace?  

						- Ted

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 18:22                     ` H. Peter Anvin
  2006-07-11 18:53                       ` Alan Cox
@ 2006-07-11 20:06                       ` Olaf Hering
  2006-07-11 20:22                         ` Olaf Hering
  2006-07-11 21:22                         ` Greg KH
  1 sibling, 2 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 20:06 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

 On Tue, Jul 11, H. Peter Anvin wrote:

> Olaf Hering wrote:
> >"It would be nice if ..." someone can build a list of things that
> >changed over time. Say from 2.0.0 to 2.6.18. Just struct layouts and 
> >defines.
> >
> >I havent tried it, but one would hope that the /bin/ls from SuSE 5.3 still
> >works today.  Guess its time for me to actually try that the next days.
> 
> You know how much code there is in glibc to make your /bin/ls still work?

I heard about that, but did never inspect that code.

My point is:
I see all day that people use some fixed distro for kernel development,
thats their stable base. In my case, 2.4.19 based SLES8 for 2.6
development. 2.6.5 based SLES9 for todays kernel. In a few weeks, they
will move on to 2.6.16 based SLES10. Same thing with other distros.

This means their tools continue to work, eventually they have to upgrade
a few things to test newly added features. Thats what everyone on this
list does all day. It means also that regression testing is possible.
One can even boot a 2.4 kernel in SLES9 to try things out, despite the
fact that many boot scripts rely on sysfs. So I dont see why a kinit
that knows about a range of kernels should not be possible. No idea how
hairy device-mapper, lvm or evms support is, the "standard" tools
appearently cope with interface changes.
If you decide to drop support for 2.6.16 in 3 years, thats ok. But not
in 3 months please.

And to give a negative example for great regression test opportunities:
You guessed it, SLES10 has a udev that cant handle kernels before 2.6.15.
Great job. I could slap them all day...

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

* Re: [klibc] klibc and what's the next step?
  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
  3 siblings, 0 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 20:11 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: H. Peter Anvin, Jeff Garzik, Michael Tokarev, Roman Zippel,
	klibc, linux-kernel

 On Tue, Jul 11, Linus Torvalds wrote:

> 
> 
> On Tue, 11 Jul 2006, H. Peter Anvin wrote:
> > 
> > Does that mean "in kernel space", "in the kernel distribution" or "in memory
> > completely under the control by the kernel?"  That is really what this is
> > about.
> 
> I think it's all about kernel space.
> 
> Moving the default parsing to user space would add exactly _zero_ 
> advantage, and would add totally unnecessary complexity (ie now we need to 
> make sure that hotplug does it right - and the hotplug routines suddenly 
> change between the boot phase and the actual install).

It depends what the benefit for such a change is. I cant come up with a
good guess. Maybe someone should write a paper and present it at OLS.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 20:06                       ` Olaf Hering
@ 2006-07-11 20:22                         ` Olaf Hering
  2006-07-11 21:22                         ` Greg KH
  1 sibling, 0 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-11 20:22 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Jeff Garzik, Michael Tokarev, Roman Zippel, torvalds, klibc,
	linux-kernel

 On Tue, Jul 11, Olaf Hering wrote:

> My point is:

Of course thats not the only one.
If nothing changes in userspace, it still has to be build with every new
kernel no matter how many other kernel changes were just added.
I remember it took some time to build klibc-0.123.
And if klibc really depends on kernel headers, and I do git-bisect on a
slower box, thats a waste of time. That really asks for an external
binary. Or CONFIG_KLIBC=n, if thats not convincing.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 19:51                                     ` Linus Torvalds
                                                         ` (2 preceding siblings ...)
  2006-07-11 20:11                                       ` Olaf Hering
@ 2006-07-11 20:57                                       ` H. Peter Anvin
  3 siblings, 0 replies; 95+ messages in thread
From: H. Peter Anvin @ 2006-07-11 20:57 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Olaf Hering, Jeff Garzik, Michael Tokarev, Roman Zippel, klibc,
	linux-kernel

Linus Torvalds wrote:
> 
> On Tue, 11 Jul 2006, H. Peter Anvin wrote:
>> Does that mean "in kernel space", "in the kernel distribution" or "in memory
>> completely under the control by the kernel?"  That is really what this is
>> about.
> 
> I think it's all about kernel space.
> 
> Moving the default parsing to user space would add exactly _zero_ 
> advantage, and would add totally unnecessary complexity (ie now we need to 
> make sure that hotplug does it right - and the hotplug routines suddenly 
> change between the boot phase and the actual install).
> 

There is no reason the hotplug routines should change between the boot 
phase and actual install.  Please note that I didn't say "instead of 
/sbin/hotplug", I said in rootfs in addition to /sbin/hotplug.

If it adds complexity, it's The Wrong Thing.  However, it seems very 
strange to me to draw the boundary at the kernel-space boundary.

	-hpa


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

* Re: [klibc] klibc and what's the next step?
  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
  1 sibling, 1 reply; 95+ messages in thread
From: Greg KH @ 2006-07-11 21:22 UTC (permalink / raw)
  To: Olaf Hering
  Cc: H. Peter Anvin, klibc, Jeff Garzik, Roman Zippel,
	Michael Tokarev, linux-kernel, torvalds

On Tue, Jul 11, 2006 at 10:06:40PM +0200, Olaf Hering wrote:
> And to give a negative example for great regression test opportunities:
> You guessed it, SLES10 has a udev that cant handle kernels before 2.6.15.
> Great job. I could slap them all day...

Just to be specific, the udev in SLES10 can handle older kernels than
2.6.15 just fine, it's just the boot scripts around it are not written
to do so.

Other distros happily run newer udev versions on older kernels just
fine, so don't try blaming the main udev program on this please...

thanks,

greg k-h

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

* Re: [klibc] klibc and what's the next step?
  2006-07-11 14:32     ` Rene Herman
@ 2006-07-12 15:23       ` David Lang
  0 siblings, 0 replies; 95+ messages in thread
From: David Lang @ 2006-07-12 15:23 UTC (permalink / raw)
  To: Rene Herman
  Cc: Olaf Hering, H. Peter Anvin, Roman Zippel, torvalds, klibc, linux-kernel

On Tue, 11 Jul 2006, Rene Herman wrote:

> Olaf Hering wrote:
>
>> I do not want to see kinit merged.
>
> For what it's worth -- I as a user am violently opposed to kinit not being in 
> the source tree, if _anything_ is merged.
>
> Given that's it's intended to take over kernel functionality, kinit would be 
> a tightly coupled piece of software and a number of problems 2.6 has seen are 
> with tightly coupled software (udev, alsa-lib) getting out of sync with the 
> kernel. I believe someone from redhat complained about it last. Adding 
> another tightly coupled external app to the mix is just going to worsen the 
> situation. Please don't do that.
>
> And yes, then there's the issue of keeping distributions all using the same 
> thing which I saw someone else remark on as well. If klibc/kinit is the way 
> forward, please make sure kinit is in the kernel source tree.

I first started useing linux in the 0.88 days, and have been useing it heavily 
for the last 10 years (with custom kernels throughout, first due to the need, 
later for other reasons). During all of that time I have avoided useing 
initramfs or initrd on the several hundred machines I have managed over that 
time.

I personally don't like the idea of booting stuff out of the kernel into a 
userspace 'thing' that needs to be built and maintained in addition to the 
kernel (for that matter I have almost entirely avoided the use of modules as 
well).

however, if kinit/klibc are included with the kernel and a make && make install 
(or similar) will end up createing a blob that will boot, I won't care if the 
blob is entirely kernel or is kernel+initrd with some functionality in 
userspace.

Ted makes a good point that distros will want to further tweak the boot process 
and that the right way is to give them hooks to add their custom stuff. we don't 
want every distro to throw out the thing that the kernel compiles to put in 
their own.

David Lang

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

* Re: [klibc] klibc and what's the next step?
  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 21:36                             ` Greg KH
  0 siblings, 2 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-12 16:54 UTC (permalink / raw)
  To: Greg KH
  Cc: H. Peter Anvin, klibc, Jeff Garzik, Roman Zippel,
	Michael Tokarev, linux-kernel, torvalds

 On Tue, Jul 11, Greg KH wrote:

> On Tue, Jul 11, 2006 at 10:06:40PM +0200, Olaf Hering wrote:
> > And to give a negative example for great regression test opportunities:
> > You guessed it, SLES10 has a udev that cant handle kernels before 2.6.15.
> > Great job. I could slap them all day...
> 
> Just to be specific, the udev in SLES10 can handle older kernels than
> 2.6.15 just fine, it's just the boot scripts around it are not written
> to do so.

What difference does that make exactly? "It doesnt work."

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

* Re: [klibc] klibc and what's the next step?
  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
  1 sibling, 1 reply; 95+ messages in thread
From: Arjan van de Ven @ 2006-07-12 16:58 UTC (permalink / raw)
  To: Olaf Hering
  Cc: Greg KH, H. Peter Anvin, klibc, Jeff Garzik, Roman Zippel,
	Michael Tokarev, linux-kernel, torvalds

On Wed, 2006-07-12 at 18:54 +0200, Olaf Hering wrote:
>  On Tue, Jul 11, Greg KH wrote:
> 
> > On Tue, Jul 11, 2006 at 10:06:40PM +0200, Olaf Hering wrote:
> > > And to give a negative example for great regression test opportunities:
> > > You guessed it, SLES10 has a udev that cant handle kernels before 2.6.15.
> > > Great job. I could slap them all day...
> > 
> > Just to be specific, the udev in SLES10 can handle older kernels than
> > 2.6.15 just fine, it's just the boot scripts around it are not written
> > to do so.
> 
> What difference does that make exactly? "It doesnt work."
> -

who cares?

You're talking about compatibility in the wrong direction. You don't
expect to be able to run a 2.2 kernel on SLES10 either. A distro
expecting the kernel to be at least of the version that comes with it
imo is entirely justified and even required to use new features in an
integrated way without overbloating the distro with never used and
undertested compatibility junk.

Running a NEWER kernel.. that's where people have a point.
Now, arguably some of the enterprise distros are not designed with that
in mind (unlike most community distributions), but it's not entirely
unreasonable to expect to be able to do this at least for a while.

Greetings,
   Arjan van de Ven


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

* Re: [klibc] klibc and what's the next step?
  2006-07-12 16:58                             ` Arjan van de Ven
@ 2006-07-12 17:01                               ` Olaf Hering
  0 siblings, 0 replies; 95+ messages in thread
From: Olaf Hering @ 2006-07-12 17:01 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Greg KH, H. Peter Anvin, klibc, Jeff Garzik, Roman Zippel,
	Michael Tokarev, linux-kernel, torvalds

 On Wed, Jul 12, Arjan van de Ven wrote:

> On Wed, 2006-07-12 at 18:54 +0200, Olaf Hering wrote:
> >  On Tue, Jul 11, Greg KH wrote:
> > 
> > > On Tue, Jul 11, 2006 at 10:06:40PM +0200, Olaf Hering wrote:
> > > > And to give a negative example for great regression test opportunities:
> > > > You guessed it, SLES10 has a udev that cant handle kernels before 2.6.15.
> > > > Great job. I could slap them all day...
> > > 
> > > Just to be specific, the udev in SLES10 can handle older kernels than
> > > 2.6.15 just fine, it's just the boot scripts around it are not written
> > > to do so.
> > 
> > What difference does that make exactly? "It doesnt work."
> > -
> 
> who cares?

I do damnit. Its just a udevstart away...
Anyway, offtopic.

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

* Re: [klibc] klibc and what's the next step?
  2006-07-12 16:54                           ` Olaf Hering
  2006-07-12 16:58                             ` Arjan van de Ven
@ 2006-07-12 21:36                             ` Greg KH
  1 sibling, 0 replies; 95+ messages in thread
From: Greg KH @ 2006-07-12 21:36 UTC (permalink / raw)
  To: Olaf Hering
  Cc: H. Peter Anvin, klibc, Jeff Garzik, Roman Zippel,
	Michael Tokarev, linux-kernel, torvalds

On Wed, Jul 12, 2006 at 06:54:23PM +0200, Olaf Hering wrote:
>  On Tue, Jul 11, Greg KH wrote:
> 
> > On Tue, Jul 11, 2006 at 10:06:40PM +0200, Olaf Hering wrote:
> > > And to give a negative example for great regression test opportunities:
> > > You guessed it, SLES10 has a udev that cant handle kernels before 2.6.15.
> > > Great job. I could slap them all day...
> > 
> > Just to be specific, the udev in SLES10 can handle older kernels than
> > 2.6.15 just fine, it's just the boot scripts around it are not written
> > to do so.
> 
> What difference does that make exactly? "It doesnt work."

Then say "the boot scripts are causing older kernels not to work", not
"udev can't handle kernels before 2.6.15", which is not true.

pedantically,

greg k-h

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

* Re: klibc and what's the next step?
  2006-07-11  4:48   ` Olaf Hering
                       ` (3 preceding siblings ...)
  2006-07-11 14:32     ` Rene Herman
@ 2006-07-13 11:58     ` Pavel Machek
  4 siblings, 0 replies; 95+ messages in thread
From: Pavel Machek @ 2006-07-13 11:58 UTC (permalink / raw)
  To: Olaf Hering; +Cc: H. Peter Anvin, Roman Zippel, linux-kernel, klibc, torvalds

Hi!
> > So anyone who likes to see klibc merged, because it will solve some kind 
> > of problem for him, please speak up now. Without this information it's 
> > hard to judge whether we're going to solve the right problems.
> 
> I do not want to see kinit merged.
> It (the merge into linux-2.6.XY) doesnt solve any real problem in the long term.
> Instead, make a kinit distribution. Let it install itself into an obvious
> location on the development box (/usr/lib/kinit/* or whatever), remove all
> code behind prepare_namespace() and put a disclaimer into the Linux 2.6.XY
> releasenote stating where to grab and build a kinit binary:
> make && sudo make install
> It can even provide its own CONFIG_INITRAMFS_SOURCE file, so that would
> be the only required change to the used .config.
> 
> The rationale is that there are essentially 2 kind of consumers:
> 
> One is the kind that builds static kernels and uses no initrd of any kind.
> For those people, the code and interfaces behind prepare_namespace() has
> not changed in a long time.
> They will install that kinit binary once and it will continue to work with

That is the problem... kernel did not use to depend on kinit, and this
is considered stable series. So if kernel wants to depend on kinit, it
needs to ship it itself.
								Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

end of thread, other threads:[~2006-07-13 11:58 UTC | newest]

Thread overview: 95+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).