* bzImage ~ 900K with i386 test11-pre2
@ 2000-11-10 23:37 Robert Lynch
2000-11-10 23:47 ` H. Peter Anvin
2000-11-11 5:47 ` Peter Samuelson
0 siblings, 2 replies; 42+ messages in thread
From: Robert Lynch @ 2000-11-10 23:37 UTC (permalink / raw)
To: linux-kernel
I've been regularly building kernels in the testXX series, and
they have been coming out ~ 600K; test10-final and test11-pre1:
-rw-r--r-- 1 root root 610503 Oct 31 18:39
vmlinuz-t10
-rw-r--r-- 1 root root 610568 Nov 7 20:26
vmlinuz-t11p01
test11-pre2 comes out ~ 900K:
-rw-r--r-- 1 root root 926345 Nov 10 10:16
vmlinuz-t11p02
and is thus unusable.
I believe I am following all the same steps, nothing new, make
dep bzImage modules modules_install.
Bob L.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-10 23:37 bzImage ~ 900K with i386 test11-pre2 Robert Lynch
@ 2000-11-10 23:47 ` H. Peter Anvin
2000-11-11 2:25 ` Max Inux
2000-11-11 5:47 ` Peter Samuelson
1 sibling, 1 reply; 42+ messages in thread
From: H. Peter Anvin @ 2000-11-10 23:47 UTC (permalink / raw)
To: linux-kernel
Followup to: <3A0C86B3.62DA04A2@best.com>
By author: Robert Lynch <rmlynch@best.com>
In newsgroup: linux.dev.kernel
>
> I've been regularly building kernels in the testXX series, and
> they have been coming out ~ 600K; test10-final and test11-pre1:
>
> -rw-r--r-- 1 root root 610503 Oct 31 18:39
> vmlinuz-t10
> -rw-r--r-- 1 root root 610568 Nov 7 20:26
> vmlinuz-t11p01
>
> test11-pre2 comes out ~ 900K:
>
> -rw-r--r-- 1 root root 926345 Nov 10 10:16
> vmlinuz-t11p02
>
> and is thus unusable.
>
> I believe I am following all the same steps, nothing new, make
> dep bzImage modules modules_install.
>
Different compile options?
Why is a 900K kernel unusable?
-hpa
--
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-10 23:47 ` H. Peter Anvin
@ 2000-11-11 2:25 ` Max Inux
2000-11-11 3:03 ` H. Peter Anvin
0 siblings, 1 reply; 42+ messages in thread
From: Max Inux @ 2000-11-11 2:25 UTC (permalink / raw)
To: H. Peter Anvin; +Cc: linux-kernel
On 10 Nov 2000, H. Peter Anvin wrote:
>Different compile options?
>
>Why is a 900K kernel unusable?
>
> -hpa
My guess would be it not actually bzipping the kernel. Id run make
bzImage again and making sure it is bzipping it.
On x86 machines there is a size limitation on booting. Though I thought
it was 1024K as the max, 900K should be fine.
William Tiemann
wtiemann@openpgp.net
http://www.OpenPGP.Net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 2:25 ` Max Inux
@ 2000-11-11 3:03 ` H. Peter Anvin
2000-11-11 5:28 ` Chmouel Boudjnah
` (3 more replies)
0 siblings, 4 replies; 42+ messages in thread
From: H. Peter Anvin @ 2000-11-11 3:03 UTC (permalink / raw)
To: Max Inux; +Cc: H. Peter Anvin, linux-kernel
Max Inux wrote:
>
> On 10 Nov 2000, H. Peter Anvin wrote:
> >Different compile options?
> >
> >Why is a 900K kernel unusable?
> >
> > -hpa
>
> My guess would be it not actually bzipping the kernel. Id run make
> bzImage again and making sure it is bzipping it.
>
gzip, actually. I can verify here "make bzImage" does the expected thing
and it looks normal-sized to me.
>
> On x86 machines there is a size limitation on booting. Though I thought
> it was 1024K as the max, 900K should be fine.
>
No, there isn't. There used to be, but it has been fixed.
-hpa
--
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 3:03 ` H. Peter Anvin
@ 2000-11-11 5:28 ` Chmouel Boudjnah
2000-11-11 11:27 ` Max Inux
` (2 subsequent siblings)
3 siblings, 0 replies; 42+ messages in thread
From: Chmouel Boudjnah @ 2000-11-11 5:28 UTC (permalink / raw)
To: H. Peter Anvin; +Cc: Max Inux, H. Peter Anvin, linux-kernel
"H. Peter Anvin" <hpa@transmeta.com> writes:
> > On x86 machines there is a size limitation on booting. Though I thought
> > it was 1024K as the max, 900K should be fine.
> No, there isn't. There used to be, but it has been fixed.
the main problem is for us distribution if we want to fit this on a
disk with a couple of modules for our installation process.
--
MandrakeSoft Inc http://www.chmouel.org
--Chmouel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-10 23:37 bzImage ~ 900K with i386 test11-pre2 Robert Lynch
2000-11-10 23:47 ` H. Peter Anvin
@ 2000-11-11 5:47 ` Peter Samuelson
2000-11-11 14:30 ` Andi Kleen
1 sibling, 1 reply; 42+ messages in thread
From: Peter Samuelson @ 2000-11-11 5:47 UTC (permalink / raw)
To: Robert Lynch; +Cc: linux-kernel
[Robert Lynch]
> I've been regularly building kernels in the testXX series, and
> they have been coming out ~ 600K; test10-final and test11-pre1:
>
> -rw-r--r-- 1 root root 610503 Oct 31 18:39 vmlinuz-t10
> -rw-r--r-- 1 root root 610568 Nov 7 20:26 vmlinuz-t11p01
>
> test11-pre2 comes out ~ 900K:
>
> -rw-r--r-- 1 root root 926345 Nov 10 10:16 vmlinuz-t11p02
Track it down yourself:
1) The sizes of your two 'vmlinux' files: do they differ wildly as well?
2a) If no, check the make logs between the vmlinux link line and bzImage
creation. Compare the two and note any significant differences.
2b) If yes, write a perl script to compute symbol sizes from each
System.map file. (Symbol size == address of next symbol minus
address of this symbol.) Sort numerically, then compare old vs new
for symbols that have grown a lot, or large new symbols.
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 3:03 ` H. Peter Anvin
2000-11-11 5:28 ` Chmouel Boudjnah
@ 2000-11-11 11:27 ` Max Inux
2000-11-11 11:28 ` Jan Niehusmann
` (3 more replies)
2000-11-11 11:36 ` Tigran Aivazian
2000-11-11 16:05 ` Andrzej Krzysztofowicz
3 siblings, 4 replies; 42+ messages in thread
From: Max Inux @ 2000-11-11 11:27 UTC (permalink / raw)
To: H Peter Anvin; +Cc: Linux Kernel
>gzip, actually. I can verify here "make bzImage" does the expected thing
>and it looks normal-sized to me.
I believe there is zImage (gzip) and bzImage (bzip2). (Or is it compress
vs gzip, but then why bzImage vs gzImage?)
>> On x86 machines there is a size limitation on booting. Though I thought
>> it was 1024K as the max, 900K should be fine.
>>
>
>No, there isn't. There used to be, but it has been fixed.
Ok then, I was on crank, and apparently so is he =)
William Tiemann
<wtiemann@openpgp.net>
http://www.OpenPGP.Net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 11:27 ` Max Inux
@ 2000-11-11 11:28 ` Jan Niehusmann
2000-11-11 11:38 ` bzImage ~ 900K with i386 test11-pre2, I stand corrected Max Inux
` (2 subsequent siblings)
3 siblings, 0 replies; 42+ messages in thread
From: Jan Niehusmann @ 2000-11-11 11:28 UTC (permalink / raw)
To: Max Inux; +Cc: Linux Kernel
On Sat, Nov 11, 2000 at 03:27:36AM -0800, Max Inux wrote:
> >gzip, actually. I can verify here "make bzImage" does the expected thing
> >and it looks normal-sized to me.
>
> I believe there is zImage (gzip) and bzImage (bzip2). (Or is it compress
> vs gzip, but then why bzImage vs gzImage?)
IMHO bzImage means something like 'big zImage', it uses the same compression
but a different loader. IIRC bzImage became necessary when the (uncompressed)
kernel grew above 1MB.
Jan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 3:03 ` H. Peter Anvin
2000-11-11 5:28 ` Chmouel Boudjnah
2000-11-11 11:27 ` Max Inux
@ 2000-11-11 11:36 ` Tigran Aivazian
2000-11-11 11:38 ` Tigran Aivazian
` (3 more replies)
2000-11-11 16:05 ` Andrzej Krzysztofowicz
3 siblings, 4 replies; 42+ messages in thread
From: Tigran Aivazian @ 2000-11-11 11:36 UTC (permalink / raw)
To: H. Peter Anvin; +Cc: Max Inux, H. Peter Anvin, linux-kernel
On Fri, 10 Nov 2000, H. Peter Anvin wrote:
> >
> > On x86 machines there is a size limitation on booting. Though I thought
> > it was 1024K as the max, 900K should be fine.
> >
>
> No, there isn't. There used to be, but it has been fixed.
>
Are you sure? I thought the fix was to build 2 page tables for 0-8M
instead of 1 page table for 0-4M. So, we still cannot boot a bzImage more
than 2.5M which roughly corresponds to 8M. Is this incorrect? Are you
saying I should be able to boot a bzImage corresponding to an ELF object
vmlinux of 4G or more?
I tried it and it failed (a few weeks ago) so at least reasonably recently
what you are saying was not true. I will now check if it suddenly became
true now.
Regards,
Tigran
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 11:36 ` Tigran Aivazian
@ 2000-11-11 11:38 ` Tigran Aivazian
2000-11-11 11:52 ` Max Inux
` (2 subsequent siblings)
3 siblings, 0 replies; 42+ messages in thread
From: Tigran Aivazian @ 2000-11-11 11:38 UTC (permalink / raw)
To: H. Peter Anvin; +Cc: Max Inux, H. Peter Anvin, linux-kernel
On Sat, 11 Nov 2000, Tigran Aivazian wrote:
> On Fri, 10 Nov 2000, H. Peter Anvin wrote:
> > >
> > > On x86 machines there is a size limitation on booting. Though I thought
> > > it was 1024K as the max, 900K should be fine.
> > >
> >
> > No, there isn't. There used to be, but it has been fixed.
> >
>
> Are you sure? I thought the fix was to build 2 page tables for 0-8M
> instead of 1 page table for 0-4M. So, we still cannot boot a bzImage more
> than 2.5M which roughly corresponds to 8M. Is this incorrect? Are you
> saying I should be able to boot a bzImage corresponding to an ELF object
> vmlinux of 4G or more?
>
> I tried it and it failed (a few weeks ago) so at least reasonably recently
> what you are saying was not true. I will now check if it suddenly became
> true now.
Just to clarify -- I always eat words on the first round -- of course I
know that there is no limit at 1M, that is obvious -- what I do _not_ know
if there is no limit at 2.5M -- this is non-obvious and requires proof.
Regards,
Tigran
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2, I stand corrected.
2000-11-11 11:27 ` Max Inux
2000-11-11 11:28 ` Jan Niehusmann
@ 2000-11-11 11:38 ` Max Inux
2000-11-11 13:49 ` bzImage ~ 900K with i386 test11-pre2 James A. Sutherland
2000-11-11 20:08 ` H. Peter Anvin
3 siblings, 0 replies; 42+ messages in thread
From: Max Inux @ 2000-11-11 11:38 UTC (permalink / raw)
To: Max Inux; +Cc: H Peter Anvin, Linux Kernel
Mike Harris corrected me, which puts life back where it started reading
other replies. bzimage = Big zImage removing the 640K limitation. I
have not upgraded to 2.4.0-test11-pre2 from test10, when I do I will see
if I get simmilar results.
Sorry,
William Tiemann
<wtiemann@openpgp.net>
http://www.OpenPGP.Net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 11:36 ` Tigran Aivazian
2000-11-11 11:38 ` Tigran Aivazian
@ 2000-11-11 11:52 ` Max Inux
2000-11-11 14:42 ` Andrea Arcangeli
2000-11-11 20:09 ` H. Peter Anvin
3 siblings, 0 replies; 42+ messages in thread
From: Max Inux @ 2000-11-11 11:52 UTC (permalink / raw)
To: Tigran Aivazian; +Cc: H. Peter Anvin, linux-kernel
May I recomend a read of Documentation/i386/boot.txt, it explains exactly
what is done
Protocol 2.02: (Kernel 2.4.0-test3-pre3) New command line protocol.
Lower the conventional memory ceiling. No overwrite
of the traditional setup area, thus making booting
safe for systems which use the EBDA from SMM or 32-bit
BIOS entry points. zImage deprecated but still
supported.
2.01 may have had the issue you speak of, looks like this fixes it.
William Tiemann
<wtiemann@openpgp.net>
http://www.OpenPGP.Net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 11:27 ` Max Inux
2000-11-11 11:28 ` Jan Niehusmann
2000-11-11 11:38 ` bzImage ~ 900K with i386 test11-pre2, I stand corrected Max Inux
@ 2000-11-11 13:49 ` James A. Sutherland
2000-11-11 20:08 ` H. Peter Anvin
3 siblings, 0 replies; 42+ messages in thread
From: James A. Sutherland @ 2000-11-11 13:49 UTC (permalink / raw)
To: Max Inux, H Peter Anvin; +Cc: Linux Kernel
On Sat, 11 Nov 2000, Max Inux wrote:
> >gzip, actually. I can verify here "make bzImage" does the expected thing
> >and it looks normal-sized to me.
>
> I believe there is zImage (gzip) and bzImage (bzip2). (Or is it compress
> vs gzip, but then why bzImage vs gzImage?)
Neither. They are both compressed the same way (gzip, IIRC) - the difference is
in how they are loaded. bzImage (= BIG zImage) has a loader which can handle
>1Mb RAM; zImage has to be loaded into normal DOS memory, so it has a size
limitation.
> >> On x86 machines there is a size limitation on booting. Though I thought
> >> it was 1024K as the max, 900K should be fine.
> >>
> >
> >No, there isn't. There used to be, but it has been fixed.
>
> Ok then, I was on crank, and apparently so is he =)
ROFL! What is this "crank" stuff, BTW - some sort of auto lubricant, or ...?
James.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 5:47 ` Peter Samuelson
@ 2000-11-11 14:30 ` Andi Kleen
2000-11-11 15:43 ` Thomas Köhler
2000-11-11 18:03 ` Robert Lynch
0 siblings, 2 replies; 42+ messages in thread
From: Andi Kleen @ 2000-11-11 14:30 UTC (permalink / raw)
To: Peter Samuelson; +Cc: Robert Lynch, linux-kernel
On Fri, Nov 10, 2000 at 11:47:50PM -0600, Peter Samuelson wrote:
> 2b) If yes, write a perl script to compute symbol sizes from each
> System.map file. (Symbol size == address of next symbol minus
> address of this symbol.) Sort numerically, then compare old vs new
> for symbols that have grown a lot, or large new symbols.
No need to write one: ftp.firstfloor.org:/pub/ak/perl/bloat-o-meter
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 11:36 ` Tigran Aivazian
2000-11-11 11:38 ` Tigran Aivazian
2000-11-11 11:52 ` Max Inux
@ 2000-11-11 14:42 ` Andrea Arcangeli
2000-11-11 14:51 ` Tigran Aivazian
2000-11-11 20:09 ` H. Peter Anvin
3 siblings, 1 reply; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-11 14:42 UTC (permalink / raw)
To: Tigran Aivazian; +Cc: H. Peter Anvin, Max Inux, H. Peter Anvin, linux-kernel
On Sat, Nov 11, 2000 at 11:36:00AM +0000, Tigran Aivazian wrote:
> Are you sure? I thought the fix was to build 2 page tables for 0-8M
Paging is disabled at that point.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 14:42 ` Andrea Arcangeli
@ 2000-11-11 14:51 ` Tigran Aivazian
2000-11-11 16:26 ` Andrea Arcangeli
0 siblings, 1 reply; 42+ messages in thread
From: Tigran Aivazian @ 2000-11-11 14:51 UTC (permalink / raw)
To: Andrea Arcangeli; +Cc: H. Peter Anvin, Max Inux, H. Peter Anvin, linux-kernel
On Sat, 11 Nov 2000, Andrea Arcangeli wrote:
> On Sat, Nov 11, 2000 at 11:36:00AM +0000, Tigran Aivazian wrote:
> > Are you sure? I thought the fix was to build 2 page tables for 0-8M
>
> Paging is disabled at that point.
>
Yes, Andrea, I know that paging is disabled at the point of loading the
image but I was talking about the inability to boot (boot == complete
booting, i.e. at least reach start_kernel()) a kernel with very large
.data or .bss segments because of various reasons -- one of which,
probably,is the inadequacy of those pg0 and pg1 page tables set up in
head.S
So, what is still a bit unclear is -- if the only way to create a huge
bzImage is by having huge .text or .data or .bss, what is the combination
of the limits? I.e. which limit do we hit first -- the one on bzImage
(which Peter says is infinite?) or the ones on .text/.data/.bss (and what
exactly are they?)? See my question now?
Regards,
Tigran
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 14:30 ` Andi Kleen
@ 2000-11-11 15:43 ` Thomas Köhler
2000-11-11 18:03 ` Robert Lynch
1 sibling, 0 replies; 42+ messages in thread
From: Thomas Köhler @ 2000-11-11 15:43 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 983 bytes --]
On Sat, Nov 11, 2000 at 03:30:36PM +0100,
Andi Kleen <ak@suse.de> wrote:
>
> On Fri, Nov 10, 2000 at 11:47:50PM -0600, Peter Samuelson wrote:
> > 2b) If yes, write a perl script to compute symbol sizes from each
> > System.map file. (Symbol size == address of next symbol minus
> > address of this symbol.) Sort numerically, then compare old vs new
> > for symbols that have grown a lot, or large new symbols.
>
> No need to write one: ftp.firstfloor.org:/pub/ak/perl/bloat-o-meter
Would be good if you added a notice under which licence you put all
these nice perl scripts... Are they GPL'ed? Under a BSD-style licence?
Something else?
> -Andi
CU,
Thomas
--
Thomas Köhler Email: jean-luc@picard.franken.de | LCARS - Linux
<>< WWW: http://jeanluc-picard.de | for Computers
IRC: jeanluc | on All Real
PGP public key available from Homepage! | Starships
[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 3:03 ` H. Peter Anvin
` (2 preceding siblings ...)
2000-11-11 11:36 ` Tigran Aivazian
@ 2000-11-11 16:05 ` Andrzej Krzysztofowicz
2000-11-11 17:27 ` Jeff Garzik
2000-11-14 14:02 ` Werner Almesberger
3 siblings, 2 replies; 42+ messages in thread
From: Andrzej Krzysztofowicz @ 2000-11-11 16:05 UTC (permalink / raw)
To: H. Peter Anvin; +Cc: Max Inux, kufel!vger.kernel.org!linux-kernel
> Max Inux wrote:
> > On x86 machines there is a size limitation on booting. Though I thought
> > it was 1024K as the max, 900K should be fine.
>
> No, there isn't. There used to be, but it has been fixed.
>
> -hpa
Except the simple boot loader. You cannot boot kernel >=1024KB directly
from floppy...
Andrzej
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 14:51 ` Tigran Aivazian
@ 2000-11-11 16:26 ` Andrea Arcangeli
2000-11-11 16:46 ` Tigran Aivazian
0 siblings, 1 reply; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-11 16:26 UTC (permalink / raw)
To: Tigran Aivazian; +Cc: H. Peter Anvin, Max Inux, H. Peter Anvin, linux-kernel
On Sat, Nov 11, 2000 at 02:51:21PM +0000, Tigran Aivazian wrote:
> Yes, Andrea, I know that paging is disabled at the point of loading the
> image but I was talking about the inability to boot (boot == complete
> booting, i.e. at least reach start_kernel()) a kernel with very large
> .data or .bss segments because of various reasons -- one of which,
> probably,is the inadequacy of those pg0 and pg1 page tables set up in
> head.S
Ah ok, I thought you were talking about bootloader.
About the initial pagetable setup on i386 port there's certainly a 3M limit on
the size of the kernel image, but it's trivial to enlarge it. BTW, exactly for
that kernel size limit reasons in x86-64 I defined a 40Mbyte mapping where we
currently have a 4M mapping and that's even simpler to enlarge since they're 2M
PAE like pagetables.
Basically as far as the kernel can get loaded in memory correctly we have
no problem :)
> (which Peter says is infinite?) or the ones on .text/.data/.bss (and what
> exactly are they?)? See my question now?
We sure hit the 3M limit on the .bss clearing right now.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 16:26 ` Andrea Arcangeli
@ 2000-11-11 16:46 ` Tigran Aivazian
2000-11-11 18:47 ` Andrea Arcangeli
2000-11-11 19:35 ` Eric W. Biederman
0 siblings, 2 replies; 42+ messages in thread
From: Tigran Aivazian @ 2000-11-11 16:46 UTC (permalink / raw)
To: Andrea Arcangeli
Cc: Tigran Aivazian, H. Peter Anvin, Max Inux, H. Peter Anvin,
linux-kernel
On Sat, 11 Nov 2000, Andrea Arcangeli wrote:
> On Sat, Nov 11, 2000 at 02:51:21PM +0000, Tigran Aivazian wrote:
> > Yes, Andrea, I know that paging is disabled at the point of loading the
> > image but I was talking about the inability to boot (boot == complete
> > booting, i.e. at least reach start_kernel()) a kernel with very large
> > .data or .bss segments because of various reasons -- one of which,
> > probably,is the inadequacy of those pg0 and pg1 page tables set up in
> > head.S
>
> Ah ok, I thought you were talking about bootloader.
>
> About the initial pagetable setup on i386 port there's certainly a 3M limit on
> the size of the kernel image, but it's trivial to enlarge it. BTW, exactly for
> that kernel size limit reasons in x86-64 I defined a 40Mbyte mapping where we
> currently have a 4M mapping and that's even simpler to enlarge since they're 2M
> PAE like pagetables.
>
> Basically as far as the kernel can get loaded in memory correctly we have
> no problem :)
>
> > (which Peter says is infinite?) or the ones on .text/.data/.bss (and what
> > exactly are they?)? See my question now?
>
> We sure hit the 3M limit on the .bss clearing right now.
>
I understand and agree with what you say except the number 4M. It is not
4M but 8M, imho. See arch/i386/kernel/head.S
/*
* The page tables are initialized to only 8MB here - the final page
* tables are set up later depending on memory size.
*/
.org 0x2000
ENTRY(pg0)
.org 0x3000
ENTRY(pg1)
/*
* empty_zero_page must immediately follow the page tables ! (The
* initialization loop counts until empty_zero_page)
*/
.org 0x4000
ENTRY(empty_zero_page)
(the comment next to pg0 in asm/pgtable.h is misleading, whilst the
comment above paging_init() is plain wrong -- I sent a patch to Linus
yesterday but perhaps "wrong comment" is not a critical 2.4 issue :)
Regards,
Tigran
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 16:05 ` Andrzej Krzysztofowicz
@ 2000-11-11 17:27 ` Jeff Garzik
2000-11-14 14:02 ` Werner Almesberger
1 sibling, 0 replies; 42+ messages in thread
From: Jeff Garzik @ 2000-11-11 17:27 UTC (permalink / raw)
To: Andrzej Krzysztofowicz; +Cc: Linux Kernel Mailing List
Andrzej Krzysztofowicz wrote:
> Except the simple boot loader. You cannot boot kernel >=1024KB directly
> from floppy...
That doesn't really matter much though... You have proceded beyond the
'simple' case. :)
You can always use a tiny bootloader like hpa's syslinux. I am
currently typing on a kernel booted from a standard 3 1/2" floppy:
> [jgarzik@rum linux_2_4]$ make bzImage
> [...]
> System is 1612 kB
> [jgarzik@rum g]$ dmesg|less
> [...]
> Memory: 124388k/131060k available (2876k kernel code, 6284k reserved, 367k data, 448k init, 0k highmem)
(...with /dev/fd0u1722, 1.44M floppies becomes 1.722M floppies...)
--
Jeff Garzik |
Building 1024 | Would you like a Twinkie?
MandrakeSoft |
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 14:30 ` Andi Kleen
2000-11-11 15:43 ` Thomas Köhler
@ 2000-11-11 18:03 ` Robert Lynch
2000-11-11 18:30 ` Andi Kleen
1 sibling, 1 reply; 42+ messages in thread
From: Robert Lynch @ 2000-11-11 18:03 UTC (permalink / raw)
To: linux-kernel; +Cc: Peter Samuelson, Andi Kleen
Peter Samuelson wrote:
> [Robert Lynch] wrote:
> > I've been regularly building kernels in the testXX series, and
> > they have been coming out ~ 600K; test10-final and test11-pre1:
> >
> > -rw-r--r-- 1 root root 610503 Oct 31 18:39 vmlinuz-t10
> > -rw-r--r-- 1 root root 610568 Nov 7 20:26 vmlinuz-t11p01
> >
> > test11-pre2 comes out ~ 900K:
> >
> > -rw-r--r-- 1 root root 926345 Nov 10 10:16 vmlinuz-t11p02
>
> Track it down yourself:
>
> 1) The sizes of your two 'vmlinux' files: do they differ wildly as well?
Wildly; compare test11-pre1 and testll-pre2 sizes:
-rwxr-xr-x 1 root root 1789457 Nov 7 20:26
vmlinux-t11p01
-rwxr-xr-x 1 root root 2625016 Nov 10 10:15
vmlinux-t11p02
> 2a) If no, check the make logs between the vmlinux link line and bzImage
> creation. Compare the two and note any significant differences.
>
> 2b) If yes, write a perl script to compute symbol sizes from each
> System.map file. (Symbol size == address of next symbol minus
> address of this symbol.) Sort numerically, then compare old vs new
> for symbols that have grown a lot, or large new symbols.
>
> Peter
Whence Andi Kleen chipped in:
> No need to write one: ftp.firstfloor.org:/pub/ak/perl/bloat-o-meter
>
> -Andi
Running:
perl bloat-o-meter /boot/vmlinux-t11p01 /boot/vmlinux-t11p02 >
/tmp/bloat.out
looking at the output, the large positive changes seem to be
(doing it by eye, might have skipped and/or missed something):
Symbol Old size New size Delta Change (%)
slabinfo_write_proc 8 340 332 +4150.0
show_buffers 24 368 344 +1433.3
sys_nfsservctl 80 1060 980 +1225.0
dump_extended_fpu 8 84 76 +950.00
get_fpregs 36 372 336 +933.33
schedule_tail 16 144 128 +800.00
set_fpregs 36 272 236 +655.56
tty_release 16 108 92 +575.00
ext2_write_inode 20 108 88 +440.00
...
I have surpressed my momentary urge to post the whole thing, so
as not to arouse the legendary ire of this list. :)
Bob L.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 18:03 ` Robert Lynch
@ 2000-11-11 18:30 ` Andi Kleen
2000-11-11 18:57 ` Robert Lynch
0 siblings, 1 reply; 42+ messages in thread
From: Andi Kleen @ 2000-11-11 18:30 UTC (permalink / raw)
To: Robert Lynch; +Cc: linux-kernel, Peter Samuelson, Andi Kleen
On Sat, Nov 11, 2000 at 10:03:35AM -0800, Robert Lynch wrote:
> sys_nfsservctl 80 1060 980 +1225.0
> dump_extended_fpu 8 84 76 +950.00
> get_fpregs 36 372 336 +933.33
> schedule_tail 16 144 128 +800.00
> set_fpregs 36 272 236 +655.56
> tty_release 16 108 92 +575.00
> ext2_write_inode 20 108 88 +440.00
> ...
>
> I have surpressed my momentary urge to post the whole thing, so
> as not to arouse the legendary ire of this list. :)
Ordering by byte delta is more useful than by Change to get the real
pigs, because Change gives high values even for relatively small changes
(like 8 -> 84)
Also note that some of the output is bogus due to inaccurate nm output
(bloat-o-meter relies on nm)
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 16:46 ` Tigran Aivazian
@ 2000-11-11 18:47 ` Andrea Arcangeli
2000-11-11 19:35 ` Eric W. Biederman
1 sibling, 0 replies; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-11 18:47 UTC (permalink / raw)
To: Tigran Aivazian
Cc: Tigran Aivazian, H. Peter Anvin, Max Inux, H. Peter Anvin,
linux-kernel
On Sat, Nov 11, 2000 at 04:46:09PM +0000, Tigran Aivazian wrote:
> I understand and agree with what you say except the number 4M. It is not
> 4M but 8M, imho. See arch/i386/kernel/head.S
You're reading 2.4.x, I was reading 2.2.x.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 18:30 ` Andi Kleen
@ 2000-11-11 18:57 ` Robert Lynch
2000-11-11 20:35 ` Andi Kleen
0 siblings, 1 reply; 42+ messages in thread
From: Robert Lynch @ 2000-11-11 18:57 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-kernel, Peter Samuelson
Andi Kleen wrote:
>
> On Sat, Nov 11, 2000 at 10:03:35AM -0800, Robert Lynch wrote:
> > sys_nfsservctl 80 1060 980 +1225.0
> > dump_extended_fpu 8 84 76 +950.00
> > get_fpregs 36 372 336 +933.33
> > schedule_tail 16 144 128 +800.00
> > set_fpregs 36 272 236 +655.56
> > tty_release 16 108 92 +575.00
> > ext2_write_inode 20 108 88 +440.00
> > ...
> >
> > I have surpressed my momentary urge to post the whole thing, so
> > as not to arouse the legendary ire of this list. :)
>
> Ordering by byte delta is more useful than by Change to get the real
> pigs, because Change gives high values even for relatively small changes
> (like 8 -> 84)
>
> Also note that some of the output is bogus due to inaccurate nm output
> (bloat-o-meter relies on nm)
>
> -Andi
Yer right, here's a biggie I missed:
stext_lock 4344 29395 25051 +576.68
Bob L.
--
Robert Lynch-Berkeley CA USA-rmlynch@best.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 16:46 ` Tigran Aivazian
2000-11-11 18:47 ` Andrea Arcangeli
@ 2000-11-11 19:35 ` Eric W. Biederman
2000-11-12 11:29 ` Andrea Arcangeli
1 sibling, 1 reply; 42+ messages in thread
From: Eric W. Biederman @ 2000-11-11 19:35 UTC (permalink / raw)
To: Tigran Aivazian
Cc: Andrea Arcangeli, Tigran Aivazian, H. Peter Anvin, Max Inux,
H. Peter Anvin, linux-kernel
Tigran Aivazian <tigran@aivazian.fsnet.co.uk> writes:
> On Sat, 11 Nov 2000, Andrea Arcangeli wrote:
>
> > On Sat, Nov 11, 2000 at 02:51:21PM +0000, Tigran Aivazian wrote:
> > > Yes, Andrea, I know that paging is disabled at the point of loading the
> > > image but I was talking about the inability to boot (boot == complete
> > > booting, i.e. at least reach start_kernel()) a kernel with very large
> > > .data or .bss segments because of various reasons -- one of which,
> > > probably,is the inadequacy of those pg0 and pg1 page tables set up in
> > > head.S
> >
> > Ah ok, I thought you were talking about bootloader.
> >
> > About the initial pagetable setup on i386 port there's certainly a 3M limit on
>
> > the size of the kernel image, but it's trivial to enlarge it. BTW, exactly
> for
>
> > that kernel size limit reasons in x86-64 I defined a 40Mbyte mapping where we
> > currently have a 4M mapping and that's even simpler to enlarge since they're
> 2M
>
> > PAE like pagetables.
> >
> > Basically as far as the kernel can get loaded in memory correctly we have
> > no problem :)
> >
> > > (which Peter says is infinite?) or the ones on .text/.data/.bss (and what
> > > exactly are they?)? See my question now?
> >
> > We sure hit the 3M limit on the .bss clearing right now.
> >
With respect to .bss issues we should clear it before we set up page tables.
That way we have no hardlimit short of 4GB which.
We also do stupid things like set segment registers before setting up
a GDT. Yes we set them in setup.S but it is still a stupid non-obvious
dependency. We we can do it in setup.S
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 11:27 ` Max Inux
` (2 preceding siblings ...)
2000-11-11 13:49 ` bzImage ~ 900K with i386 test11-pre2 James A. Sutherland
@ 2000-11-11 20:08 ` H. Peter Anvin
3 siblings, 0 replies; 42+ messages in thread
From: H. Peter Anvin @ 2000-11-11 20:08 UTC (permalink / raw)
To: Max Inux; +Cc: Linux Kernel
Max Inux wrote:
>
> >gzip, actually. I can verify here "make bzImage" does the expected thing
> >and it looks normal-sized to me.
>
> I believe there is zImage (gzip) and bzImage (bzip2). (Or is it compress
> vs gzip, but then why bzImage vs gzImage?)
>
b is "big". They are both gzip compressed. zImage has a size limit
which bzImage doesn't. zImage is pretty much obsolete.
-hpa
--
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 11:36 ` Tigran Aivazian
` (2 preceding siblings ...)
2000-11-11 14:42 ` Andrea Arcangeli
@ 2000-11-11 20:09 ` H. Peter Anvin
2000-11-12 16:22 ` Andrea Arcangeli
3 siblings, 1 reply; 42+ messages in thread
From: H. Peter Anvin @ 2000-11-11 20:09 UTC (permalink / raw)
To: Tigran Aivazian; +Cc: Max Inux, H. Peter Anvin, linux-kernel
Tigran Aivazian wrote:
>
> On Fri, 10 Nov 2000, H. Peter Anvin wrote:
> > >
> > > On x86 machines there is a size limitation on booting. Though I thought
> > > it was 1024K as the max, 900K should be fine.
> > >
> >
> > No, there isn't. There used to be, but it has been fixed.
> >
>
> Are you sure? I thought the fix was to build 2 page tables for 0-8M
> instead of 1 page table for 0-4M. So, we still cannot boot a bzImage more
> than 2.5M which roughly corresponds to 8M. Is this incorrect? Are you
> saying I should be able to boot a bzImage corresponding to an ELF object
> vmlinux of 4G or more?
>
> I tried it and it failed (a few weeks ago) so at least reasonably recently
> what you are saying was not true. I will now check if it suddenly became
> true now.
>
That wasn't the fix in question (there was a 1 MB *compressed* limit for
a while), but you're right, for now the limit is 8 MB *uncompressed.*
-hpa
--
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 18:57 ` Robert Lynch
@ 2000-11-11 20:35 ` Andi Kleen
0 siblings, 0 replies; 42+ messages in thread
From: Andi Kleen @ 2000-11-11 20:35 UTC (permalink / raw)
To: Robert Lynch; +Cc: Andi Kleen, linux-kernel, Peter Samuelson
On Sat, Nov 11, 2000 at 10:57:20AM -0800, Robert Lynch wrote:
> Andi Kleen wrote:
> >
> > On Sat, Nov 11, 2000 at 10:03:35AM -0800, Robert Lynch wrote:
> > > sys_nfsservctl 80 1060 980 +1225.0
> > > dump_extended_fpu 8 84 76 +950.00
> > > get_fpregs 36 372 336 +933.33
> > > schedule_tail 16 144 128 +800.00
> > > set_fpregs 36 272 236 +655.56
> > > tty_release 16 108 92 +575.00
> > > ext2_write_inode 20 108 88 +440.00
> > > ...
> > >
> > > I have surpressed my momentary urge to post the whole thing, so
> > > as not to arouse the legendary ire of this list. :)
> >
> > Ordering by byte delta is more useful than by Change to get the real
> > pigs, because Change gives high values even for relatively small changes
> > (like 8 -> 84)
> >
> > Also note that some of the output is bogus due to inaccurate nm output
> > (bloat-o-meter relies on nm)
> >
> > -Andi
>
> Yer right, here's a biggie I missed:
That is the slow path of the spinlocks needed for fine grained SMP
locking. Not really surprising that that it bloated a bit, given all
the locking work that went into 2.4.
>From looking at my UP configuration (where vmlinux's text segment has bloated
by about 500K between 2.2 and 2.4) there are no obvious big pigs, just lots of
small stuff that adds together.
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 19:35 ` Eric W. Biederman
@ 2000-11-12 11:29 ` Andrea Arcangeli
2000-11-12 13:14 ` Eric W. Biederman
0 siblings, 1 reply; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-12 11:29 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Tigran Aivazian, Tigran Aivazian, H. Peter Anvin, Max Inux,
H. Peter Anvin, linux-kernel
On Sat, Nov 11, 2000 at 12:35:46PM -0700, Eric W. Biederman wrote:
> With respect to .bss issues we should clear it before we set up page tables.
We could sure do that but that's a minor win since we still need a
large mapping (more than 1 pagetable) for the bootmem allocator. (and we need
at least 1 pagetable setup as ident mapping at 0x100000 for the instruction
where we enable paging)
> We also do stupid things like set segment registers before setting up
> a GDT. Yes we set them in setup.S but it is still a stupid non-obvious
^^^^
I think you meant: we set "it" (gdt_48) up.
> dependency. We we can do it in setup.S
I removed that dependency in x86-64.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 11:29 ` Andrea Arcangeli
@ 2000-11-12 13:14 ` Eric W. Biederman
2000-11-12 15:37 ` Andrea Arcangeli
0 siblings, 1 reply; 42+ messages in thread
From: Eric W. Biederman @ 2000-11-12 13:14 UTC (permalink / raw)
To: Andrea Arcangeli
Cc: Tigran Aivazian, Tigran Aivazian, H. Peter Anvin, Max Inux,
H. Peter Anvin, linux-kernel
Andrea Arcangeli <andrea@suse.de> writes:
> On Sat, Nov 11, 2000 at 12:35:46PM -0700, Eric W. Biederman wrote:
> > With respect to .bss issues we should clear it before we set up page tables.
>
> We could sure do that but that's a minor win since we still need a
> large mapping (more than 1 pagetable) for the bootmem allocator. (and we need
> at least 1 pagetable setup as ident mapping at 0x100000 for the instruction
> where we enable paging)
>
> > We also do stupid things like set segment registers before setting up
> > a GDT. Yes we set them in setup.S but it is still a stupid non-obvious
> ^^^^
> I think you meant: we set "it" (gdt_48) up.
I was thinking segment descriptors.
>
> > dependency. We we can do it in setup.S
>
> I removed that dependency in x86-64.
Maniacal cackle....
x86-64 doesn't load the segment registers at all before use.
This is BAD BAD BAD!!!!!!!
I can tell you don't have real hardware. The non obviousness
of correct operation tripped you up as well.
So while you load the gdt before you set a segment register later,
which is good the more important part was still missed.
O.k. on monday I'll dig up my patch and that clears this up.
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 13:14 ` Eric W. Biederman
@ 2000-11-12 15:37 ` Andrea Arcangeli
2000-11-12 15:44 ` Andi Kleen
` (2 more replies)
0 siblings, 3 replies; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-12 15:37 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Tigran Aivazian, Tigran Aivazian, H. Peter Anvin, Max Inux,
H. Peter Anvin, linux-kernel
On Sun, Nov 12, 2000 at 06:14:36AM -0700, Eric W. Biederman wrote:
> x86-64 doesn't load the segment registers at all before use.
Yes, before switching to 64bit long mode we never do any data access. We do a
stack access to clear eflags only while we still run in legacy mode with paging
disabled and so we only rely on ss to be valid when the bootloader jumps at
0x100000 for executing the head.S code (and not anymore on the gdt_48 layout).
> I can tell you don't have real hardware. The non obviousness
Current code definitely works fine on the simnow simulator so if current code
shouldn't work because it's buggy then at least the simulator is sure buggy as
well (and that isn't going to be the case as its behaviour is in full sync with
the specs as far I can see).
> So while you load the gdt before you set a segment register later,
> which is good the more important part was still missed.
Sorry but I don't see the missing part. Are you sure you're not missing this
part of the x86-64 specs?
Data and Stack Segments:
In 64-bit mode, the contents of the ES, DS, and SS segment registers
are ignored. All fields (base, limit, and attribute) in the
corresponding segment descriptor registers (hidden part) are also
ignored.
Address calculations in 64-bit mode that reference the ES, DS, or SS
segments, are treated as if the segment base is zero. Rather than
perform limit checks, the processor instead checks that all
virtual-address references are in canonical form.
You'll find the above at the top of page 42 of the specs.
Basically in 64bit long mode only CS matters and basically only to specify
CS.L=1 and CS.D=0.
The only subtle case is during iret where we need a valid data segment for some
subtle reason (but that's unrelated to head.S that instead only needs to
switch to 64bit mode and jump into head64.c where we do the rest of the work
like clearing bss in C). Infact we need only 1 32bit compatibility mode data
segment in the gdt.
> O.k. on monday I'll dig up my patch and that clears this up.
Sure, go ahead if you weren't missing that basic part of the long mode specs.
Thanks.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 15:37 ` Andrea Arcangeli
@ 2000-11-12 15:44 ` Andi Kleen
2000-11-12 16:33 ` Andrea Arcangeli
2000-11-12 18:57 ` Eric W. Biederman
2000-11-12 19:20 ` Eric W. Biederman
2 siblings, 1 reply; 42+ messages in thread
From: Andi Kleen @ 2000-11-12 15:44 UTC (permalink / raw)
To: Andrea Arcangeli
Cc: Eric W. Biederman, Tigran Aivazian, Tigran Aivazian,
H. Peter Anvin, Max Inux, H. Peter Anvin, linux-kernel
On Sun, Nov 12, 2000 at 04:37:05PM +0100, Andrea Arcangeli wrote:
> > I can tell you don't have real hardware. The non obviousness
>
> Current code definitely works fine on the simnow simulator so if current code
> shouldn't work because it's buggy then at least the simulator is sure buggy as
> well (and that isn't going to be the case as its behaviour is in full sync with
> the specs as far I can see).
The current simulator seems to be buggy in that it checks the SS,DS segments
that were pushed as part of the interrupt stack on iretd (which it
IMHO shouldn't according to the spec). We currently need to have a valid kernel
DS to make the interrupts work.
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 20:09 ` H. Peter Anvin
@ 2000-11-12 16:22 ` Andrea Arcangeli
0 siblings, 0 replies; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-12 16:22 UTC (permalink / raw)
To: H. Peter Anvin; +Cc: Tigran Aivazian, Max Inux, H. Peter Anvin, linux-kernel
On Sat, Nov 11, 2000 at 12:09:41PM -0800, H. Peter Anvin wrote:
> a while), but you're right, for now the limit is 8 MB *uncompressed.*
s/8/7/ (kernel starts at 1M)
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 15:44 ` Andi Kleen
@ 2000-11-12 16:33 ` Andrea Arcangeli
0 siblings, 0 replies; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-12 16:33 UTC (permalink / raw)
To: Andi Kleen
Cc: Eric W. Biederman, Tigran Aivazian, Tigran Aivazian,
H. Peter Anvin, Max Inux, H. Peter Anvin, linux-kernel
On Sun, Nov 12, 2000 at 04:44:17PM +0100, Andi Kleen wrote:
> The current simulator seems to be buggy in that it checks the SS,DS segments
>that were pushed as part of the interrupt stack on iretd [..]
That's the first thing I thought too indeed 8), but it maybe because at
iret time the CPU doesn't know if it will have to return to compatibility mode
or not. If we feed the ss/ds with a 32bit compatibility mode data segment all
should work right as well (this should be verified on the simulator though).
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 15:37 ` Andrea Arcangeli
2000-11-12 15:44 ` Andi Kleen
@ 2000-11-12 18:57 ` Eric W. Biederman
2000-11-12 19:33 ` Andi Kleen
2000-11-12 22:30 ` Andrea Arcangeli
2000-11-12 19:20 ` Eric W. Biederman
2 siblings, 2 replies; 42+ messages in thread
From: Eric W. Biederman @ 2000-11-12 18:57 UTC (permalink / raw)
To: Andrea Arcangeli
Cc: Tigran Aivazian, Tigran Aivazian, H. Peter Anvin, Max Inux,
H. Peter Anvin, linux-kernel
Andrea Arcangeli <andrea@suse.de> writes:
> On Sun, Nov 12, 2000 at 06:14:36AM -0700, Eric W. Biederman wrote:
> > x86-64 doesn't load the segment registers at all before use.
>
> Yes, before switching to 64bit long mode we never do any data access. We do a
> stack access to clear eflags only while we still run in legacy mode with paging
> disabled and so we only rely on ss to be valid when the bootloader jumps at
> 0x100000 for executing the head.S code (and not anymore on the gdt_48 layout).
Nope you rely on cs & ds as well. cs is just a duh the codes running
so it must be valid. But ds is needed for lgdt.
> > I can tell you don't have real hardware. The non obviousness
I need to retract this a bit. You are still building a compressed image,
and the code in the boot/compressed/head.S remains unchanged and loads
segment registers, so it works by luck. If you didn't build a
compressed image you would be in trouble.
> Current code definitely works fine on the simnow simulator so if current code
> shouldn't work because it's buggy then at least the simulator is sure buggy as
> well (and that isn't going to be the case as its behaviour is in full sync with
> the specs as far I can see).
Add a target for a noncompressed image and then build. It should be
interesting to watch.
>
> > So while you load the gdt before you set a segment register later,
> > which is good the more important part was still missed.
>
> Sorry but I don't see the missing part. Are you sure you're not missing this
> part of the x86-64 specs?
Nope because what I was complaining about is in 32 bit mode. :)
> Data and Stack Segments:
>
> In 64-bit mode, the contents of the ES, DS, and SS segment registers
> are ignored. All fields (base, limit, and attribute) in the
> corresponding segment descriptor registers (hidden part) are also
> ignored.
Hmm. I'll have to look and see if FS & GS are also ignored.
> Address calculations in 64-bit mode that reference the ES, DS, or SS
> segments, are treated as if the segment base is zero. Rather than
> perform limit checks, the processor instead checks that all
> virtual-address references are in canonical form.
Cool I like this bit. The segments are finally dead.
> > O.k. on monday I'll dig up my patch and that clears this up.
>
> Sure, go ahead if you weren't missing that basic part of the long mode specs.
> Thanks.
Nope. Though I suspect we should do the switch to 64bit mode in
setup.S and not have these issues pollute head.S at all.
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 15:37 ` Andrea Arcangeli
2000-11-12 15:44 ` Andi Kleen
2000-11-12 18:57 ` Eric W. Biederman
@ 2000-11-12 19:20 ` Eric W. Biederman
2000-11-12 23:03 ` Andrea Arcangeli
2 siblings, 1 reply; 42+ messages in thread
From: Eric W. Biederman @ 2000-11-12 19:20 UTC (permalink / raw)
To: Andrea Arcangeli
Cc: Tigran Aivazian, Tigran Aivazian, H. Peter Anvin, Max Inux,
H. Peter Anvin, linux-kernel
Andrea Arcangeli <andrea@suse.de> writes:
> On Sun, Nov 12, 2000 at 06:14:36AM -0700, Eric W. Biederman wrote:
> > x86-64 doesn't load the segment registers at all before use.
>
> Yes, before switching to 64bit long mode we never do any data access. We do a
> stack access to clear eflags only while we still run in legacy mode with paging
> disabled and so we only rely on ss to be valid when the bootloader jumps at
> 0x100000 for executing the head.S code (and not anymore on the gdt_48 layout).
Actually it just occurred to me that this stack assess is buggy. You haven't
set up a stack yet so. Only the boot/compressed/head.S did and that location isn't
safe to use.
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 18:57 ` Eric W. Biederman
@ 2000-11-12 19:33 ` Andi Kleen
2000-11-16 17:43 ` Eric W. Biederman
2000-11-12 22:30 ` Andrea Arcangeli
1 sibling, 1 reply; 42+ messages in thread
From: Andi Kleen @ 2000-11-12 19:33 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Andrea Arcangeli, Tigran Aivazian, Tigran Aivazian,
H. Peter Anvin, Max Inux, H. Peter Anvin, linux-kernel
[This is quite a bizarre discussion, but I'll answer anyways. I am not exactly
sure what your point is]
On Sun, Nov 12, 2000 at 11:57:15AM -0700, Eric W. Biederman wrote:
>
> > > I can tell you don't have real hardware. The non obviousness
>
> I need to retract this a bit. You are still building a compressed image,
> and the code in the boot/compressed/head.S remains unchanged and loads
> segment registers, so it works by luck. If you didn't build a
> compressed image you would be in trouble.
boot/compressed/head.S does run in 32bit legacy mode, where you of course
need segment registers. After you got into long mode segments are only
needed to jump between 32/64bit code segments and and for a the data segment
of the 32bit emulation (+ the iretd bug currently which I hope will be fixed
in final hardware)
Also note that boot/compressed/* currently does not even link, because the
x86-64 toolchain cannot generate relocated 32bit code ATM (the linker chokes
on the 32bit relocations) The tests we did so far used a precompiled
relocated binary compressed/{head,misc}.o from a IA32 build.
> > In 64-bit mode, the contents of the ES, DS, and SS segment registers
> > are ignored. All fields (base, limit, and attribute) in the
> > corresponding segment descriptor registers (hidden part) are also
> > ignored.
>
> Hmm. I'll have to look and see if FS & GS are also ignored.
They are not, you to fully use them you need privileged MSRs.
Their limit is ignored.
> > Sure, go ahead if you weren't missing that basic part of the long mode specs.
> > Thanks.
>
> Nope. Though I suspect we should do the switch to 64bit mode in
> setup.S and not have these issues pollute head.S at all.
I see no advantage in doing it there instead of in head.S
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 18:57 ` Eric W. Biederman
2000-11-12 19:33 ` Andi Kleen
@ 2000-11-12 22:30 ` Andrea Arcangeli
1 sibling, 0 replies; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-12 22:30 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Tigran Aivazian, Tigran Aivazian, H. Peter Anvin, Max Inux,
H. Peter Anvin, linux-kernel
On Sun, Nov 12, 2000 at 11:57:15AM -0700, Eric W. Biederman wrote:
> Nope you rely on cs & ds as well. cs is just a duh the codes running
> so it must be valid. But ds is needed for lgdt.
Right. The ds just needs to be valid as cs and ss needs to be valid
as well (for obvious reasons I didn't even mentioned cs needs to be valid).
i386 instead has the dependency to have the selectors in desc.h to be the same
as used by the decompression code, we only need valid ones instead. I think
relying on the decompression code to provide sane segment selectors isn't as
ugly as being dependent on its own private gdt layout.
If I don't want to rely on the ds to be valid to do the lgdt, then I need to
rely on even more stuff dependent on the decompression as i386 does infact,
see? I just prefer to require the decompression code to provide a sane ds/ss
(and cs). I know decompression code returns valid ds/ss and I think current
requirement is the cleaner one and I don't see any problem in doing that.
> I need to retract this a bit. You are still building a compressed image,
Sure, not compressed images aren't supported (not sure it even worth to support
uncompressed images in the long run as those machines will have _enough_ memory
to decompress the kernel, even my dragonball based PDA has btw :). And
anyways at this point in time what we really care is that a bzImage boots from
floppy at the moment and that works just fine (definitely not by luck).
> Nope. Though I suspect we should do the switch to 64bit mode in
> setup.S and not have these issues pollute head.S at all.
Only point of head.S is to switch to 64bit with minimal pagetable setup in
place and then to jump in kernel virtual address space to run 64bit C code.
If we do the switch to 64bit in setup.S then we have to change the
decompression code and then the decompression code wouldn't work anymore with
other x86 bootloaders that are not been changed in their "setup.S". So
I'd cosndier it a very bad thing.
Also current head.S has much less pollution than the i386 one IMHO as it's been
rewritten to do only the minimal stuff in asm and a new head64.c is been
created to fixup all the rest in C so that's readable and maintainable and I
hope you enjoy this too ;).
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 19:20 ` Eric W. Biederman
@ 2000-11-12 23:03 ` Andrea Arcangeli
0 siblings, 0 replies; 42+ messages in thread
From: Andrea Arcangeli @ 2000-11-12 23:03 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Tigran Aivazian, Tigran Aivazian, H. Peter Anvin, Max Inux,
H. Peter Anvin, linux-kernel
On Sun, Nov 12, 2000 at 12:20:19PM -0700, Eric W. Biederman wrote:
> Actually it just occurred to me that this stack assess is buggy. You haven't
> set up a stack yet so. [..]
Yes, ss and esp are inherit from the decompression code right now.
> [..] Only the boot/compressed/head.S did and that location
> isn't safe to use.
It's 0x90000 here and that's safe. However I see it should been something like
0x1037a0 instead and it would overwrite 4 bytes of decompressed image, not
sure why it happens to be safe right now hmm.
About ss I'd still depend on the decompression code to give back the sane
segmented environment.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-11 16:05 ` Andrzej Krzysztofowicz
2000-11-11 17:27 ` Jeff Garzik
@ 2000-11-14 14:02 ` Werner Almesberger
1 sibling, 0 replies; 42+ messages in thread
From: Werner Almesberger @ 2000-11-14 14:02 UTC (permalink / raw)
To: Andrzej Krzysztofowicz; +Cc: linux-kernel
BTW, the checks after line 153 in linux/arch/i386/boot/tools/build.c
reflect all those limitations.
- Werner
--
_________________________________________________________________________
/ Werner Almesberger, ICA, EPFL, CH Werner.Almesberger@epfl.ch /
/_IN_N_032__Tel_+41_21_693_6621__Fax_+41_21_693_6610_____________________/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: bzImage ~ 900K with i386 test11-pre2
2000-11-12 19:33 ` Andi Kleen
@ 2000-11-16 17:43 ` Eric W. Biederman
0 siblings, 0 replies; 42+ messages in thread
From: Eric W. Biederman @ 2000-11-16 17:43 UTC (permalink / raw)
To: Andi Kleen
Cc: Andrea Arcangeli, Tigran Aivazian, Tigran Aivazian,
H. Peter Anvin, Max Inux, H. Peter Anvin, linux-kernel
Andi Kleen <ak@suse.de> writes:
> [This is quite a bizarre discussion, but I'll answer anyways. I am not exactly
> sure what your point is]
Let me step aside a second and explain where I'm coming from. As a spin
off of the work of the linuxBIOS project I have implemented a system
call that implements exec functionality at the kernel level. Essentially
allowing you to warm boot linux from linux. To get this to work no
bios calls are involved, so I'm not using setup.S. This also has the
interesting side effect of allowing a boot loader to be written that
will work on all linux platforms. (I have currently just begun my
port to alpha).
In the process of the above I have learned quite a bit about how
the current boot loader works. And want eventually to convert linux
to not need wrapper code to use my bootloader.
Booting vmlinux is fun :)
> On Sun, Nov 12, 2000 at 11:57:15AM -0700, Eric W. Biederman wrote:
> >
> > > > I can tell you don't have real hardware. The non obviousness
> >
> > I need to retract this a bit. You are still building a compressed image,
> > and the code in the boot/compressed/head.S remains unchanged and loads
> > segment registers, so it works by luck. If you didn't build a
> > compressed image you would be in trouble.
>
> boot/compressed/head.S does run in 32bit legacy mode, where you of course
> need segment registers. After you got into long mode segments are only
> needed to jump between 32/64bit code segments and and for a the data segment
> of the 32bit emulation (+ the iretd bug currently which I hope will be fixed
> in final hardware)
>
> Also note that boot/compressed/* currently does not even link, because the
> x86-64 toolchain cannot generate relocated 32bit code ATM (the linker chokes
> on the 32bit relocations) The tests we did so far used a precompiled
> relocated binary compressed/{head,misc}.o from a IA32 build.
...
> > > Sure, go ahead if you weren't missing that basic part of the long mode
> specs.
>
> > > Thanks.
> >
> > Nope. Though I suspect we should do the switch to 64bit mode in
> > setup.S and not have these issues pollute head.S at all.
>
> I see no advantage in doing it there instead of in head.S
After reading through the long mode specs I now agree. If you could
be in long mode with the mmu disabled that would be a different story
but you can't and it isn't.
I was thinking of symmetry with the x86 and how much easier everything
is if you only use one processor mode for the initial boot strap. No
need for super assemblers etc. Oh well.
On x86 there are some real advantages to moving the segment loads into
setup.S from the various head.S's and they still apply (although to a
lesser extent) to x86-64. This causes less code confusion.
For my kexec stuff I now need to think really hard how I want
to handle x86-64. What I was thinking would work well in general
is to start the processor it's native/optimal mode with the mmu
disabled. With x86-64 I can't do this unfortunately :(
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 42+ messages in thread
end of thread, other threads:[~2000-11-16 20:01 UTC | newest]
Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-11-10 23:37 bzImage ~ 900K with i386 test11-pre2 Robert Lynch
2000-11-10 23:47 ` H. Peter Anvin
2000-11-11 2:25 ` Max Inux
2000-11-11 3:03 ` H. Peter Anvin
2000-11-11 5:28 ` Chmouel Boudjnah
2000-11-11 11:27 ` Max Inux
2000-11-11 11:28 ` Jan Niehusmann
2000-11-11 11:38 ` bzImage ~ 900K with i386 test11-pre2, I stand corrected Max Inux
2000-11-11 13:49 ` bzImage ~ 900K with i386 test11-pre2 James A. Sutherland
2000-11-11 20:08 ` H. Peter Anvin
2000-11-11 11:36 ` Tigran Aivazian
2000-11-11 11:38 ` Tigran Aivazian
2000-11-11 11:52 ` Max Inux
2000-11-11 14:42 ` Andrea Arcangeli
2000-11-11 14:51 ` Tigran Aivazian
2000-11-11 16:26 ` Andrea Arcangeli
2000-11-11 16:46 ` Tigran Aivazian
2000-11-11 18:47 ` Andrea Arcangeli
2000-11-11 19:35 ` Eric W. Biederman
2000-11-12 11:29 ` Andrea Arcangeli
2000-11-12 13:14 ` Eric W. Biederman
2000-11-12 15:37 ` Andrea Arcangeli
2000-11-12 15:44 ` Andi Kleen
2000-11-12 16:33 ` Andrea Arcangeli
2000-11-12 18:57 ` Eric W. Biederman
2000-11-12 19:33 ` Andi Kleen
2000-11-16 17:43 ` Eric W. Biederman
2000-11-12 22:30 ` Andrea Arcangeli
2000-11-12 19:20 ` Eric W. Biederman
2000-11-12 23:03 ` Andrea Arcangeli
2000-11-11 20:09 ` H. Peter Anvin
2000-11-12 16:22 ` Andrea Arcangeli
2000-11-11 16:05 ` Andrzej Krzysztofowicz
2000-11-11 17:27 ` Jeff Garzik
2000-11-14 14:02 ` Werner Almesberger
2000-11-11 5:47 ` Peter Samuelson
2000-11-11 14:30 ` Andi Kleen
2000-11-11 15:43 ` Thomas Köhler
2000-11-11 18:03 ` Robert Lynch
2000-11-11 18:30 ` Andi Kleen
2000-11-11 18:57 ` Robert Lynch
2000-11-11 20:35 ` Andi Kleen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox