Skip site navigation (1)Skip section navigation (2)
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>