Skip to content
This repository has been archived by the owner on Feb 26, 2020. It is now read-only.

Debian with 2.6.32-bpo : Unknown symbol in module, or unknown parameter #10

Closed
davromaniak opened this issue Jun 7, 2010 · 9 comments
Closed

Comments

@davromaniak
Copy link

compaq:~/spl-0.4.9# uname -a
Linux compaq 2.6.32-bpo.4-686 #1 SMP Mon Apr 12 16:20:13 UTC 2010 i686 GNU/Linux

Here are the steps to "reproduce" the error :
1- ./configure --with-linux=/usr/src/linux-headers-2.6.32-bpo.4-686/ : Ok, no problem
2- make : Ok, no problem
3- make install : Ok, no problem
4- modprobe splat : FATAL: Could not load /lib/modules/2.6.32-bpo.4-686/modules.dep: No such file or directory
5- depmod -a : Ok, no problem
6- modprobe splat :
WARNING: Error inserting spl (/lib/modules/2.6.32-bpo.4-686/addon/spl/spl/spl.ko): Unknown symbol in module, or unknown parameter (see dmesg)
FATAL: Error inserting splat (/lib/modules/2.6.32-bpo.4-686/addon/spl/splat/splat.ko): Unknown symbol in module, or unknown parameter (see dmesg)

Here is the dmesg : 
[ 1599.233791] spl: Unknown symbol first_online_pgdat
[ 1599.234545] spl: Unknown symbol next_zone
[ 1599.236933] splat: Unknown symbol __taskq_destroy
[ 1599.237080] splat: Unknown symbol spl_cleanup
[ 1599.237286] splat: Unknown symbol vn_openat
[ 1599.237426] splat: Unknown symbol __cv_destroy
[ 1599.237563] splat: Unknown symbol p0
[ 1599.237896] splat: Unknown symbol __thread_create
[ 1599.238030] splat: Unknown symbol kmem_alloc_debug
[ 1599.238172] splat: Unknown symbol spl_kmem_cache_reap_now
[ 1599.238391] splat: Unknown symbol groupmember
[ 1599.238525] splat: Unknown symbol kobj_open_file
[ 1599.238820] splat: Unknown symbol ddi_strtoll
[ 1599.238956] splat: Unknown symbol ddi_strtoull
[ 1599.239123] splat: Unknown symbol ddi_strtol
[ 1599.239282] splat: Unknown symbol __thread_exit
[ 1599.239424] splat: Unknown symbol spl_setup
[ 1599.239557] splat: Unknown symbol vn_open
[ 1599.239715] splat: Unknown symbol __cv_init
[ 1599.239848] splat: Unknown symbol vn_releasef
[ 1599.240049] splat: Unknown symbol spl_kmem_cache_alloc
[ 1599.240356] splat: Unknown symbol __taskq_wait_id
[ 1599.240566] splat: Unknown symbol kobj_read_file
[ 1599.240782] splat: Unknown symbol spl_kmem_cache_create
[ 1599.241118] splat: Unknown symbol crfree
[ 1599.241336] splat: Unknown symbol __cv_wait
[ 1599.241547] splat: Unknown symbol vn_remove
[ 1599.241792] splat: Unknown symbol __taskq_create
[ 1599.242042] splat: Unknown symbol spl_kmem_availrmem
[ 1599.242252] splat: Unknown symbol __cv_broadcast
[ 1599.242394] splat: Unknown symbol crgetgid
[ 1599.242553] splat: Unknown symbol crgetsgid
[ 1599.242810] splat: Unknown symbol spl_debug_bug
[ 1599.242954] splat: Unknown symbol system_taskq
[ 1599.243098] splat: Unknown symbol vmem_free_debug
[ 1599.243279] splat: Unknown symbol __cv_timedwait
[ 1599.243499] splat: Unknown symbol __taskq_wait
[ 1599.243635] splat: Unknown symbol crgetrgid
[ 1599.243817] splat: Unknown symbol __cv_signal
[ 1599.243950] splat: Unknown symbol vn_getf
[ 1599.244177] splat: Unknown symbol vmem_size
[ 1599.244391] splat: Unknown symbol spl_kmem_cache_destroy
[ 1599.244622] splat: Unknown symbol crgetuid
[ 1599.244835] splat: Unknown symbol __gethrtime
[ 1599.245163] splat: Unknown symbol ddi_strtoul
[ 1599.245375] splat: Unknown symbol spl_kmem_cache_free
[ 1599.245580] splat: Unknown symbol vmem_alloc_debug
[ 1599.245845] splat: Unknown symbol crgetsuid
[ 1599.246106] splat: Unknown symbol vn_rdwr
[ 1599.246290] splat: Unknown symbol __taskq_dispatch
[ 1599.246421] splat: Unknown symbol crgetgroups
[ 1599.246567] splat: Unknown symbol vn_rename
[ 1599.246846] splat: Unknown symbol kobj_get_filesize
[ 1599.246977] splat: Unknown symbol crgetngroups
[ 1599.247153] splat: Unknown symbol kobj_close_file
[ 1599.247294] splat: Unknown symbol rootdir
[ 1599.247423] splat: Unknown symbol kmem_free_debug
[ 1599.247618] splat: Unknown symbol vn_getattr
[ 1599.247758] splat: Unknown symbol crgetruid
[ 1599.247906] splat: Unknown symbol vn_close
[ 1599.248081] splat: Unknown symbol crhold
[ 1599.248580] splat: Unknown symbol vn_fsync

It's a Debian 5.0 "Lenny", with all the tools needed for compilation.

Thank you.

@davromaniak
Copy link
Author

I tried the workaround given in the Ubuntu 10.04 issue, but it's not working.

It stills fails with the same error.

@behlendorf
Copy link
Contributor

Thanks for the bug report, this looks like a different bug. The module failed to load because of two missing symbols 'first_online_pgdat' and 'next_zone'. These symbols are available under some kernels and not under others. There is an autoconf check to determine what the right thing to do is. I'm guessing the check got it wrong with your kernel for some reason. Can you check the following:

egrep 'HAVE_NEXT_ZONE|PGDAT' spl_config.h
egrep 'next_zone|pgdat' /proc/kallsyms

@davromaniak
Copy link
Author

compaq:~/spl-0.4.9# egrep 'HAVE_NEXT_ZONE|PGDAT' spl_config.h
/* #undef HAVE_FIRST_ONLINE_PGDAT */
/* #undef HAVE_NEXT_ONLINE_PGDAT */
/* #undef HAVE_NEXT_ZONE */
/* #undef HAVE_PGDAT_HELPERS */
/* #undef HAVE_PGDAT_LIST */
compaq:~/spl-0.4.9# egrep 'next_zone|pgdat' /proc/kallsyms
c1096e14 T first_online_pgdat
c1096e1a T next_online_pgdat
c1096e1d T next_zone
c1096e3b T next_zones_zonelist

I hope this will help you.

Thanks.

@behlendorf
Copy link
Contributor

Ahh, I think I see what's going on here. For debian kernels the common linux headers and build products are packaged in different locations. The spl and zfs have an option to handle this, although it looks like the packages could be smarter about detecting this case and providing a useful error message. You need to use the --with-linux option for the common kernel headers, and the --with-linux-obj option for the kernel specific build products. Try this, if it works I'll update the online build instructions with a debian example too:

./configure \
  --with-linux=/usr/src/linux-headers-2.6.32-3-common/ \
  --with-linux-obj=/usr/src/linux-headers-2.6.32-3-amd64/

@davromaniak
Copy link
Author

It's not working.

Now I have a different error.

compaq:~/spl-0.4.9# modprobe splat
WARNING: Error inserting spl (/lib/modules/2.6.32-bpo.4-686/addon/spl/spl/spl.ko): Cannot assign requested address
FATAL: Error inserting splat (/lib/modules/2.6.32-bpo.4-686/addon/spl/splat/splat.ko): Unknown symbol in module, or unknown parameter (see dmesg)

And here is the dmesg :

[155032.832709] SPL: Failed user helper '/bin/sh -c awk '{ if ( $3 == "kallsyms_lookup_name") { print $1 } }' /proc/kallsyms >/proc/sys/kernel/spl/kallsyms_lookup_name', rc = 512
[155032.832821] SPL: Failed to Load Solaris Porting Layer v0.4.9, rc = -99
[155032.846834] splat: Unknown symbol __taskq_destroy
[155032.847112] splat: Unknown symbol spl_cleanup
[155032.847548] splat: Unknown symbol vn_openat
[155032.847828] splat: Unknown symbol __cv_destroy
[155032.848119] splat: Unknown symbol p0
[155032.848742] splat: Unknown symbol __thread_create
[155032.848975] splat: Unknown symbol kmem_alloc_debug
[155032.849205] splat: Unknown symbol spl_kmem_cache_reap_now
[155032.849456] splat: Unknown symbol groupmember
[155032.849597] splat: Unknown symbol kobj_open_file
[155032.849910] splat: Unknown symbol ddi_strtoll
[155032.850058] splat: Unknown symbol ddi_strtoull
[155032.850238] splat: Unknown symbol ddi_strtol
[155032.850409] splat: Unknown symbol __thread_exit
[155032.850564] splat: Unknown symbol spl_setup
[155032.850709] splat: Unknown symbol vn_open
[155032.850882] splat: Unknown symbol __cv_init
[155032.851027] splat: Unknown symbol vn_releasef
[155032.851193] splat: Unknown symbol spl_kmem_cache_alloc
[155032.851412] splat: Unknown symbol __taskq_wait_id
[155032.851558] splat: Unknown symbol kobj_read_file
[155032.851711] splat: Unknown symbol spl_kmem_cache_create
[155032.851946] splat: Unknown symbol crfree
[155032.852110] splat: Unknown symbol __cv_wait
[155032.852280] splat: Unknown symbol vn_remove
[155032.852530] splat: Unknown symbol __taskq_create
[155032.852793] splat: Unknown symbol spl_kmem_availrmem
[155032.853021] splat: Unknown symbol __cv_broadcast
[155032.853242] splat: Unknown symbol crgetgid
[155032.853494] splat: Unknown symbol crgetsgid
[155032.853900] splat: Unknown symbol spl_debug_bug
[155032.854128] splat: Unknown symbol system_taskq
[155032.854362] splat: Unknown symbol vmem_free_debug
[155032.854567] splat: Unknown symbol __cv_timedwait
[155032.854802] splat: Unknown symbol __taskq_wait
[155032.854951] splat: Unknown symbol crgetrgid
[155032.855147] splat: Unknown symbol __cv_signal
[155032.855292] splat: Unknown symbol vn_getf
[155032.855437] splat: Unknown symbol vmem_size
[155032.855591] splat: Unknown symbol spl_kmem_cache_destroy
[155032.855752] splat: Unknown symbol crgetuid
[155032.855903] splat: Unknown symbol __gethrtime
[155032.856140] splat: Unknown symbol ddi_strtoul
[155032.856333] splat: Unknown symbol spl_kmem_cache_free
[155032.856545] splat: Unknown symbol vmem_alloc_debug
[155032.856828] splat: Unknown symbol crgetsuid
[155032.857187] splat: Unknown symbol vn_rdwr
[155032.857491] splat: Unknown symbol __taskq_dispatch
[155032.857716] splat: Unknown symbol crgetgroups
[155032.857967] splat: Unknown symbol vn_rename
[155032.858383] splat: Unknown symbol kobj_get_filesize
[155032.858524] splat: Unknown symbol crgetngroups
[155032.858708] splat: Unknown symbol kobj_close_file
[155032.858856] splat: Unknown symbol rootdir
[155032.858993] splat: Unknown symbol kmem_free_debug
[155032.859195] splat: Unknown symbol vn_getattr
[155032.859343] splat: Unknown symbol crgetruid
[155032.859498] splat: Unknown symbol vn_close
[155032.859636] splat: Unknown symbol crhold
[155032.859965] splat: Unknown symbol vn_fsync

I tried the awk command (without the redirect to a file) :

compaq:~/spl-0.4.9# awk '{ if ( $3 == "kallsyms_lookup_name") { print $1 } }' /proc/kallsyms
c105848d

The problem here is I don't have a "/proc/sys/kernel/spl/" folder, so the redirect cannot work.

I'm gonna try to compile and install it on a regular kernel (here I use the backport one), maybe the results will be different (the regular kernel is a 2.6.26).

Thanks.

@davromaniak
Copy link
Author

I just tried with a 64 bits server, and it's the same result.

I think the problem actually comes from the "/proc/sys/kernel/spl/" missing.

I'm gonna do some research on it, maybe I will find something convincing.

Thanks.

@davromaniak
Copy link
Author

Oh, sorry, just a case of pebkac, :/

I just had to load the spl module before the splat module.

splzfs:~# modprobe spl
splzfs:~# modprobe splat
splzfs:~# splat -a
------------------------------ Running SPLAT Tests ------------------------------
                kmem:kmem_alloc           Pass  
                kmem:kmem_zalloc          Pass  
                kmem:vmem_alloc           Pass  
                kmem:vmem_zalloc          Pass  
                kmem:slab_small           Pass  
                kmem:slab_large           Pass  
                kmem:slab_align           Pass  
                kmem:slab_reap            Pass  
                kmem:slab_age             Pass  
                kmem:slab_lock            Pass  
                kmem:slab_overcommit      Pass  
                kmem:vmem_size            Pass  
               taskq:single               Pass  
               taskq:multiple             Pass  
               taskq:system               Pass  
               taskq:wait                 Pass  
               taskq:order                Pass  
                krng:freq                 Pass  
               mutex:tryenter             Pass  
               mutex:race                 Pass  
               mutex:owned                Pass  
               mutex:owner                Pass  
             condvar:signal1              Pass  
             condvar:broadcast1           Pass  
             condvar:signal2              Pass  
             condvar:broadcast2           Pass  
             condvar:timeout              Pass  
              thread:create               Pass  
              thread:exit                 Pass  
              rwlock:N-rd/1-wr            Pass  
              rwlock:0-rd/N-wr            Pass  
              rwlock:held                 Pass  
              rwlock:tryenter             Pass  
              rwlock:rw_downgrade         Pass  
              rwlock:rw_tryupgrade        Pass  
                time:time1                Pass  
                time:time2                Pass  
               vnode:vn_open              Pass  
               vnode:vn_openat            Pass  
               vnode:vn_rdwr              Pass  
               vnode:vn_rename            Pass  
               vnode:vn_getattr           Pass  
               vnode:vn_sync              Pass  
               vnode:vn_getf              Pass  
                kobj:open                 Pass  
                kobj:size/read            Pass  
              atomic:64-bit               Pass  
                list:create/destroy       Pass  
                list:ins/rm head          Pass  
                list:ins/rm tail          Pass  
                list:insert_after         Pass  
                list:insert_before        Pass  
                list:remove               Pass  
                list:active               Pass  
             generic:ddi_strtoul          Pass  
             generic:ddi_strtol           Pass  
             generic:ddi_strtoull         Pass  
             generic:ddi_strtoll          Pass  
                cred:cred                 Pass  
                cred:kcred                Pass  
                cred:groupmember          Pass

I'm gonna continue tests on the 64 bits server (and compile/install ZFS).

On the 32 bit server, I still get the same error. I'm gonna research on it later.

Thanks

@davromaniak
Copy link
Author

On the 32 bit server, I had an issue with gawk.

I reinstalled gawk, and the modprobes and "splat -a" are now working well, :).

Tonight or tomorrow, I will try ZFS on the 32 bits server, :).

@behlendorf
Copy link
Contributor

Updated documentation to include --with-linux-obj command line option which may be needed for certain distros depending on how they packaged their kernel.

The second issue mentioned here with gawk is a duplicate of issue #6.

FransUrbo pushed a commit to FransUrbo/spl that referenced this issue Apr 11, 2013
AES-CTR mode was not using correct mech->cm_param type to set iv
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants