From: "John Z. Bohach" <jzb@aexorsyst.com>
To: linux-kernel@vger.kernel.org
Subject: Re: BIOS causes (exposes?) modprobe (load_module) kernel oops
Date: Wed, 22 Mar 2006 19:48:00 -0800 [thread overview]
Message-ID: <200603221948.00568.jzb@aexorsyst.com> (raw)
In-Reply-To: <1143018365.2955.49.camel@laptopd505.fenrus.org>
On Wednesday 22 March 2006 01:06, Arjan van de Ven wrote:
> On Tue, 2006-03-21 at 20:05 -0800, John Z. Bohach wrote:
> > Linux 2.6.14.2, yeah, I know, and sorry if this has been fixed...but read
> > on, please, this is a new take...
>
> at least enable CONFIG_KALLSYMS to get us a readable backtrace
>
I'll do you one better: here's the failing line from module.c:
/* Determine total sizes, and put offsets in sh_entsize. For now
this is done generically; there doesn't appear to be any
special cases for the architectures. */
layout_sections(mod, hdr, sechdrs, secstrings);
/* Do the allocs. */
ptr = module_alloc(mod->core_size);
if (!ptr) {
err = -ENOMEM;
goto free_percpu;
}
!!! ---> memset(ptr, 0, mod->core_size);
mod->module_core = ptr;
The !!!---> memset() line is the one that fails. In assembly, its:
c0127ae5: f3 ab repz stos %eax,%es:(%edi)
eax is 0, and es is 0x7b with edi at 0xe0806000. Everything looks fine.
Interestingly, and expectedly, I might add, these values are identical in both the
failing case and the succeeding case. Here's the rest of the story:
I'm testing a different boot loader in the failing case. The failing case loads
arch/i386/boot/compressed/vmlinux
while the successful case loads
arch/i386/boot/bzImage.
Sorry I wasn't complete before, I was hoping not to
have to get this deep. As far as I can tell, the bootloader (a very minimal one,
that uses no BIOS calls, sets up the linux params. area, as well as the MP table
and E820 table (in the cmdline area...). Linux is happy with both, without
displaying any visible differences with either bootloader on either BIOS.
/proc/meminfo looks identical in both failing/succeeding cases...
However, in the failing case, the 16-bit setup.o stuff of the kernel never got run.
My bootloader takes care of the the useful work, and sets things up appropriately
without needing any BIOS calls (32-bit protected mode, initial GDT, etc.).
I've looked through setup.S, and can't see any major
differences between 2.4 and 2.6, but I'm starting to wonder.... I'm thinking that by
skipping the setup.S stuff, some initialization related to paging and/or virtual
memory gets skipped? Does anyone know if this is true?
I have a feeling that its some pre-kernel initialization (or lack thereof) that has some subtle
side-effect regarding paging and is triggered by the first modload. Does the fact the the virtual
address is at 0xe0806000 have any significance? Does the 0xexxxxxxx range only
get used for modules? I'm trying to figure out what triggers this failed paging request...
next prev parent reply other threads:[~2006-03-23 3:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-22 4:05 BIOS causes (exposes?) modprobe (load_module) kernel oops John Z. Bohach
2006-03-22 9:06 ` Arjan van de Ven
2006-03-23 3:48 ` John Z. Bohach [this message]
2006-03-23 5:26 ` John Z. Bohach
2006-03-23 5:42 ` Randy.Dunlap
2006-03-24 17:36 ` mem= causes oops (was Re: BIOS causes (exposes?) modprobe (load_module) kernel oops) John Z. Bohach
2006-03-25 0:32 ` Randy.Dunlap
2006-03-25 18:36 ` John Z. Bohach
2006-03-25 18:50 ` mem= causes oops Jan Engelhardt
2006-03-26 17:41 ` Randy.Dunlap
2006-03-26 18:40 ` Jan Engelhardt
2006-04-05 19:07 ` mem= causes oops (was Re: BIOS causes (exposes?) modprobe (load_module) kernel oops) Randy.Dunlap
2006-04-06 16:18 ` John Z. Bohach
2006-04-06 20:18 ` [PATCH] mpparse: prevent table index out-of-bounds Randy.Dunlap
2006-04-07 5:34 ` John Z. Bohach
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200603221948.00568.jzb@aexorsyst.com \
--to=jzb@aexorsyst.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.