NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/39752: Problem building NOSWAP kernel under 4.0.1.



>Number:         39752
>Category:       kern
>Synopsis:       Cannot build a NOSWAP kernel for 4.0.1-RELEASE
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 16 23:10:00 +0000 2008
>Originator:     Richard Neswold
>Release:        NetBSD 4.0.1_RELEASE
>Organization:
        Fermi National Accelerator Laboratory
>Environment:
System: NetBSD nezdev.fnal.gov 4.0.0_PATCH NetBSD 4.0.0_PATCH (VME7805) #1: Fri 
Apr 25 14:29:20 CDT 2008 
neswold%nezdev.fnal.gov@localhost:/usr/local/build/VME7805 i386
Architecture: i386
Machine: i386
>Description:
        I tried upgrading my 4.0.0_PATCH system to 4.0.1_RELEASE and had 
problems building
        the new kernel. This system is a VME processor board. It has 1GB RAM 
and a compact
        flash for a hard drive, so I didn't want to enable swapping. I was able 
to build
        a kernel under 4.0.0, but with the latest 4.0 source, the linker can't 
find
        uvmpd_trydropswap().:
>How-To-Repeat:
        Try to build a 4.0.1 kernel without swapping enabled (take "options 
VMSWAP" out of your
        kernel configuration.)
>Fix:
        I patched my source to remove the error. I set the function to always 
return FALSE when
        there's no swapping enabled -- indicating the slot wasn't freed. The 
patch is:

        Index: uvm/uvm_pdaemon.c
        ===================================================================
        RCS file: /cvsroot/src/sys/uvm/uvm_pdaemon.c,v
        retrieving revision 1.80
        diff -d -w -b -d -w -u -b -r1.80 uvm_pdaemon.c
        --- uvm/uvm_pdaemon.c   1 Nov 2006 10:18:27 -0000       1.80
        +++ uvm/uvm_pdaemon.c   16 Oct 2008 19:56:10 -0000
        @@ -610,6 +610,20 @@
                return result;
         }
         
        +#else
        +
        +/*
        + * uvmpd_trydropswap: try to free any swap allocated to this page.
        + *
        + * => return TRUE if a slot is successfully freed.
        + */
        +
        +boolean_t
        +uvmpd_trydropswap(struct vm_page *pg __attribute__((unused)))
        +{
        +       return FALSE;
        +}
        +
         #endif /* defined(VMSWAP) */
         
         /*



Home | Main Index | Thread Index | Old Index