mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	I posted some bufmgr cleanup a few weeks ago, but it conflicted with
some concurrent changes Jan was making to the bufmgr. Here's an
updated version of the patch -- it should apply cleanly to CVS
HEAD and passes the regression tests.
This patch makes the following changes:
     - remove the UnlockAndReleaseBuffer() and UnlockAndWriteBuffer()
       macros, and replace uses of them with calls to the appropriate
       functions.
     - remove a bunch of #ifdef BMTRACE code: it is ugly & broken
       (i.e. it doesn't compile)
     - make BufferReplace() return a bool, not an int
     - cleanup some logic in bufmgr.c; should be functionality
       equivalent to the previous code, just cleaner now
     - remove the BM_PRIVATE flag as it is unused
     - improve a few comments, etc.
			
			
This commit is contained in:
		@@ -8,7 +8,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 *
 | 
			
		||||
 * IDENTIFICATION
 | 
			
		||||
 *	  $PostgreSQL: pgsql/src/backend/storage/buffer/buf_init.c,v 1.58 2003/11/29 19:51:56 pgsql Exp $
 | 
			
		||||
 *	  $PostgreSQL: pgsql/src/backend/storage/buffer/buf_init.c,v 1.59 2003/12/14 00:34:47 neilc Exp $
 | 
			
		||||
 *
 | 
			
		||||
 *-------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
@@ -34,17 +34,6 @@
 | 
			
		||||
#include "utils/hsearch.h"
 | 
			
		||||
#include "utils/memutils.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *	if BMTRACE is defined, we trace the last 200 buffer allocations and
 | 
			
		||||
 *	deallocations in a circular buffer in shared memory.
 | 
			
		||||
 */
 | 
			
		||||
#ifdef	BMTRACE
 | 
			
		||||
bmtrace    *TraceBuf;
 | 
			
		||||
long	   *CurTraceBuf;
 | 
			
		||||
 | 
			
		||||
#define BMT_LIMIT		200
 | 
			
		||||
#endif   /* BMTRACE */
 | 
			
		||||
int			ShowPinTrace = 0;
 | 
			
		||||
 | 
			
		||||
int			Data_Descriptors;
 | 
			
		||||
@@ -138,16 +127,6 @@ InitBufferPool(void)
 | 
			
		||||
	 */
 | 
			
		||||
	LWLockAcquire(BufMgrLock, LW_EXCLUSIVE);
 | 
			
		||||
 | 
			
		||||
#ifdef BMTRACE
 | 
			
		||||
	CurTraceBuf = (long *) ShmemInitStruct("Buffer trace",
 | 
			
		||||
							(BMT_LIMIT * sizeof(bmtrace)) + sizeof(long),
 | 
			
		||||
										   &foundDescs);
 | 
			
		||||
	if (!foundDescs)
 | 
			
		||||
		MemSet(CurTraceBuf, 0, (BMT_LIMIT * sizeof(bmtrace)) + sizeof(long));
 | 
			
		||||
 | 
			
		||||
	TraceBuf = (bmtrace *) & (CurTraceBuf[1]);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	BufferDescriptors = (BufferDesc *)
 | 
			
		||||
		ShmemInitStruct("Buffer Descriptors",
 | 
			
		||||
					  Data_Descriptors * sizeof(BufferDesc), &foundDescs);
 | 
			
		||||
@@ -256,9 +235,5 @@ BufferShmemSize(void)
 | 
			
		||||
	/* size of buffer hash table */
 | 
			
		||||
	size += hash_estimate_size(NBuffers, sizeof(BufferLookupEnt));
 | 
			
		||||
 | 
			
		||||
#ifdef BMTRACE
 | 
			
		||||
	size += (BMT_LIMIT * sizeof(bmtrace)) + sizeof(long);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	return size;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user