NetBSD Problem Report #46041

From jmmv@julipedia.org  Fri Feb 17 18:45:27 2012
Return-Path: <jmmv@julipedia.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
	by www.NetBSD.org (Postfix) with ESMTP id 7D27A63E061
	for <gnats-bugs@gnats.NetBSD.org>; Fri, 17 Feb 2012 18:45:27 +0000 (UTC)
Message-Id: <20120217041046.47F2262F2CF@mini.julipedia.org>
Date: Thu, 16 Feb 2012 23:10:46 -0500 (EST)
From: jmmv@julipedia.org
Reply-To: jmmv@julipedia.org
To: gnats-bugs@gnats.NetBSD.org
Subject: Kernel modules don't work (missing symbol uvmexp_pagesize)
X-Send-Pr-Version: 3.95

>Number:         46041
>Category:       port-macppc
>Synopsis:       Kernel modules don't work (missing symbol uvmexp_pagesize)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-macppc-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 17 18:50:00 +0000 2012
>Last-Modified:  Thu May 17 19:05:01 +0000 2012
>Originator:     Julio Merino
>Release:        NetBSD 6.0_BETA and current as of 20120216
>Organization:

>Environment:


System: NetBSD mini.julipedia.org 6.0_BETA NetBSD 6.0_BETA (MINI) #12: Thu Feb 16 19:39:25 EST 2012 builder@mini.julipedia.org:/home/builder/obj/usr/src/sys/arch/macppc/compile/MINI macppc
Architecture: powerpc
Machine: macppc
>Description:
	Attempting to load a kernel module under 6.0_BETA and current on
	a macppc machine results in the following errors:

	    kobj_checksyms, 867: [compat]: linker error: symbol `uvmexp_pagesize' not found
	    WARNING: module error: unable to affix module `compat'

	This problem seems to have been introduced by this change:

	    http://mail-index.netbsd.org/source-changes/2010/11/14/msg014470.html

	and was already reported here:

            http://mail-index.netbsd.org/current-users/2011/09/27/msg017871.html

	My understanding is that MIN_PAGE_SIZE and MAX_PAGE_SIZE are *not*
	defined in macppc, but they are in other powerpc platforms.  This
	may be causing some of the uvm_param.h logic to get confused.
>How-To-Repeat:
	Boot a recent NetBSD/macppc.  Notice module loading errors when you
	attempt a modload on, e.g. the compat module.
>Fix:
	Don't know.  The following makes modules work for me, but it's
	obviously wrong:

--- uvm_init.c	2012-02-16 14:04:49.000000000 -0500
+++ /home/jmmv/uvm_init.c	2012-02-16 14:04:32.000000000 -0500
@@ -57,11 +57,9 @@
 struct uvmexp uvmexp;	/* decl */
 struct uvm_object *uvm_kernel_object;

-#if defined(__uvmexp_pagesize)
 int *uvmexp_pagesize = &uvmexp.pagesize;
 int *uvmexp_pagemask = &uvmexp.pagemask;
 int *uvmexp_pageshift = &uvmexp.pageshift;
-#endif

 kmutex_t uvm_pageqlock;
 kmutex_t uvm_fpageqlock;

>Audit-Trail:
From: Julio Merino <jmmv@julipedia.org>
To: gnats-bugs@gnats.netbsd.org
Cc: 
Subject: Re: port-macppc/46041
Date: Fri, 17 Feb 2012 17:20:33 -0500

 This problem affects the following modules at the very least:

     fs compat coredump dtv exec_elf32 lfs nfs nfsserver procfs ptyfs
     tmpfs v7fs vnd

 I will soon submit a test case for this issue, which should tell us
 a bit more about what platforms are broken.

From: "Julio Merino" <jmmv@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/46041 CVS commit: src
Date: Fri, 17 Feb 2012 22:36:51 +0000

 Module Name:	src
 Committed By:	jmmv
 Date:		Fri Feb 17 22:36:50 UTC 2012

 Modified Files:
 	src/distrib/sets/lists/tests: module.mi
 	src/tests/modules: Makefile
 Added Files:
 	src/tests/modules: t_abi_uvm.sh
 	src/tests/modules/k_uvm: Makefile k_uvm.c

 Log Message:
 Add a test to ensure that PAGE_SIZE is available in kernel modules.
 This test reproduces the error condition in PR port-macppc/46041 and
 therefore it is an xfail in this particular platform.


 To generate a diff of this commit:
 cvs rdiff -u -r1.5 -r1.6 src/distrib/sets/lists/tests/module.mi
 cvs rdiff -u -r1.8 -r1.9 src/tests/modules/Makefile
 cvs rdiff -u -r0 -r1.1 src/tests/modules/t_abi_uvm.sh
 cvs rdiff -u -r0 -r1.1 src/tests/modules/k_uvm/Makefile \
     src/tests/modules/k_uvm/k_uvm.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Jeff Rizzo" <riz@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/46041 CVS commit: [netbsd-6] src
Date: Thu, 17 May 2012 19:03:24 +0000

 Module Name:	src
 Committed By:	riz
 Date:		Thu May 17 19:03:24 UTC 2012

 Modified Files:
 	src/distrib/sets/lists/tests [netbsd-6]: module.mi
 	src/tests/modules [netbsd-6]: Makefile
 Added Files:
 	src/tests/modules [netbsd-6]: t_abi_uvm.sh
 	src/tests/modules/k_uvm [netbsd-6]: Makefile k_uvm.c

 Log Message:
 Pull up following revision(s) (requested by jmmv in ticket #8):
 	tests/modules/t_abi_uvm.sh: revision 1.1
 	tests/modules/k_uvm/k_uvm.c: revision 1.1
 	tests/modules/k_uvm/Makefile: revision 1.1
 	distrib/sets/lists/tests/module.mi: revision 1.6
 	tests/modules/Makefile: revision 1.9
 Add a test to ensure that PAGE_SIZE is available in kernel modules.
 This test reproduces the error condition in PR port-macppc/46041 and
 therefore it is an xfail in this particular platform.


 To generate a diff of this commit:
 cvs rdiff -u -r1.5 -r1.5.8.1 src/distrib/sets/lists/tests/module.mi
 cvs rdiff -u -r1.8 -r1.8.8.1 src/tests/modules/Makefile
 cvs rdiff -u -r0 -r1.3.2.2 src/tests/modules/t_abi_uvm.sh
 cvs rdiff -u -r0 -r1.1.4.2 src/tests/modules/k_uvm/Makefile \
     src/tests/modules/k_uvm/k_uvm.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.