What is difference between loading module with loader and loading module wtih kldload?

John-Mark Gurney jmg at funkthat.com
Wed Feb 26 00:12:41 UTC 2014


Lev Serebryakov wrote this message on Wed, Feb 26, 2014 at 01:31 +0400:
>   I've upgraded my fileserver to 10-STABLE and got very strange (but
>  very-very painful) problem, which I could not reproduce on virtual machine
>  (VirtualBox).
> 
>  I'm using geom_raid5 module (and I'm its maintainer, yes) and module, built
> for 10-STABLE (after world & kernel build & install & reboot), and loaded
> via /boot/loader.conf is reason to almost instant crash after boot.
> Sometimes system mounts filesystems before crash and sometimes not. Most of
> time it is "page write: page not present", in different places. PS/2
> keyboard is always blocked after that, I could not drop to debugger. No
> memory dump performed. Several times it turend off video output (!) right
> after crash.

Can you give us an exact error message?  I am not finding the string:
"page write: page not present" anywhere in the tree, on close thing is
in trap, where it could be user/supervisor write/read instruction/data
page not present, where words seperated by slashes could be one or the
other...

This sounds like it could be a buffer overflow...  Could you try turning
on INVARIANTS and other related debugging on 10-STABLE since these were
turned off for the RELEASE?

Also uname -a would be helpful to know which arch you are on...

>  But if I boot without this module, drop to single-user mode, load module
> with kldload and continue booting with "exit" everything work smoothly for
> hours!
> 
>  I understand, that it it some incompatibility between module new kernel,
> but I could not reproduce it on VirtualBox instance, and I'm puzzled, that
> this crash does not occur if module loaded by kldload! Maybe, here is some
> hint in this?

There are a few differences between a boot time loaded module and a
runtime loaded module...  The linker runs earlier at boot time to link
up the module before things start, the module may be partly run w/ cold
set (which informs us the interrupts and other things may not be fully
working).. Sysinits are run in a slightly different order (i.e. kernel
SYSINITs that appear after your modules will be run first)...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the freebsd-stable mailing list