Date: Wed, 15 Oct 1997 15:32:49 +1100 From: Carey Nairn <Carey.Nairn@ccd.tas.gov.au> To: dg@root.com Cc: questions@FreeBSD.ORG Subject: Re: Spontaneous reboots with 2.2.1-R Message-ID: <3.0.32.19971015153249.009e7a54@falcon.pacit.tas.gov.au>
next in thread | raw e-mail | index | archive | help
Thanks David,
I have rebuilt a new kernel with the pmap.c changes you gave me and have it
running. I'll let you know if we have any more grief with it.
cheers,
Carey Nairn
At 19:32 14/10/97 -0700, David Greenman wrote:
>>we are having spontaneous reboot problems with our second squid proxy
>>server since performing a hardware upgrade last weekend. The machine is
>>running 2.2.1-R and has been without fault since it was installed a few
>>months ago. The specs are as follows:
>>
>>P200
>>192MB RAM
>>SOYO SY-5BT5 motherboard
>>Adaptec 2940U SCSI controller
>>1x2GB Seagate SCSI HDD
>>3x4GB Seagate SCSI HDD (in a ccd)
>>
>>The upgrade involved adding 64MB RAM and one of the 4GB disks. In addition
>>to this we changed the squid cache from individual 4GB filesystems to a
>>striped (ccd) 12GB filesystem.
>>
>>Could this be a manifestation of the ahc driver bug and if so, can I just
>>patch the 2.2.1 kernel with the new ahc driver files rather than doing an
>>upgrade?
>>
>>If I can patch the kernel, which files do I need to get?
>
> This might be caused by a scalability bug in sys/i386/i386/pmap.c. If you
>could get the changes in rev 1.128.2.5 of pmap.c, this might fix it.
>
>-DG
>
>David Greenman
>Core-team/Principal Architect, The FreeBSD Project
>
>Index: pmap.c
>===================================================================
>RCS file: /home/ncvs/src/sys/i386/i386/pmap.c,v
>retrieving revision 1.128.2.4
>retrieving revision 1.128.2.5
>diff -c -r1.128.2.4 -r1.128.2.5
>*** pmap.c 1997/02/01 12:11:03 1.128.2.4
>--- pmap.c 1997/04/23 02:20:06 1.128.2.5
>***************
>*** 39,45 ****
> * SUCH DAMAGE.
> *
> * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
>! * $Id: pmap.c,v 1.128.2.4 1997/02/01 12:11:03 davidg Exp $
> */
>
> /*
>--- 39,45 ----
> * SUCH DAMAGE.
> *
> * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
>! * $Id: pmap.c,v 1.128.2.5 1997/04/23 02:20:06 davidg Exp $
> */
>
> /*
>***************
>*** 100,105 ****
>--- 100,106 ----
> #include <machine/specialreg.h>
>
> #define PMAP_KEEP_PDIRS
>+ #define PMAP_SHPGPERPROC 200
>
> #if defined(DIAGNOSTIC)
> #define PMAP_DIAGNOSTIC
>***************
>*** 1460,1476 ****
> /*
> * init the pv_entry allocation system
> */
>- #define PVSPERPAGE 64
> void
> init_pv_entries(npg)
> int npg;
> {
> /*
>! * allocate enough kvm space for PVSPERPAGE entries per page (lots)
>! * kvm space is fairly cheap, be generous!!! (the system can panic if
>! * this is too small.)
> */
>! npvvapg = ((npg * PVSPERPAGE) * sizeof(struct pv_entry)
> + PAGE_SIZE - 1) / PAGE_SIZE;
> pvva = kmem_alloc_pageable(kernel_map, npvvapg * PAGE_SIZE);
> /*
>--- 1461,1482 ----
> /*
> * init the pv_entry allocation system
> */
> void
> init_pv_entries(npg)
> int npg;
> {
> /*
>! * Allocate enough kvm space for one entry per page, and
>! * each process having PMAP_SHPGPERPROC pages shared with other
>! * processes. (The system can panic if this is too small, but also
>! * can fail on bootup if this is too big.)
>! * XXX The pv management mechanism needs to be fixed so that systems
>! * with lots of shared mappings amongst lots of processes will still
>! * work. The fix will likely be that once we run out of pv entries
>! * we will free other entries (and the associated mappings), with
>! * some policy yet to be determined.
> */
>! npvvapg = ((PMAP_SHPGPERPROC * maxproc + npg) * sizeof(struct pv_entry)
> + PAGE_SIZE - 1) / PAGE_SIZE;
> pvva = kmem_alloc_pageable(kernel_map, npvvapg * PAGE_SIZE);
> /*
>
>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3.0.32.19971015153249.009e7a54>
