8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.245 2009/01/12 05:10:44 tgl Exp $
11
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.246 2009/03/11 23:19:25 tgl Exp $
12
12
*
13
13
*-------------------------------------------------------------------------
14
14
*/
@@ -260,7 +260,11 @@ ReadBuffer_common(SMgrRelation smgr, bool isLocalBuf, ForkNumber forkNum,
260
260
if (isExtend )
261
261
blockNum = smgrnblocks (smgr , forkNum );
262
262
263
- TRACE_POSTGRESQL_BUFFER_READ_START (forkNum , blockNum , smgr -> smgr_rnode .spcNode , smgr -> smgr_rnode .dbNode , smgr -> smgr_rnode .relNode , isLocalBuf );
263
+ TRACE_POSTGRESQL_BUFFER_READ_START (forkNum , blockNum ,
264
+ smgr -> smgr_rnode .spcNode ,
265
+ smgr -> smgr_rnode .dbNode ,
266
+ smgr -> smgr_rnode .relNode ,
267
+ isLocalBuf );
264
268
265
269
if (isLocalBuf )
266
270
{
@@ -269,11 +273,11 @@ ReadBuffer_common(SMgrRelation smgr, bool isLocalBuf, ForkNumber forkNum,
269
273
if (found )
270
274
{
271
275
LocalBufferHitCount ++ ;
272
- TRACE_POSTGRESQL_BUFFER_HIT (true); /* true = = local buffer */
276
+ TRACE_POSTGRESQL_BUFFER_HIT (true); /* true = local buffer */
273
277
}
274
278
else
275
279
{
276
- TRACE_POSTGRESQL_BUFFER_MISS (true); /* ditto */
280
+ TRACE_POSTGRESQL_BUFFER_MISS (true); /* ditto */
277
281
}
278
282
}
279
283
else
@@ -288,11 +292,11 @@ ReadBuffer_common(SMgrRelation smgr, bool isLocalBuf, ForkNumber forkNum,
288
292
if (found )
289
293
{
290
294
BufferHitCount ++ ;
291
- TRACE_POSTGRESQL_BUFFER_HIT (false); /* false != local buffer */
295
+ TRACE_POSTGRESQL_BUFFER_HIT (false); /* false = shared buffer */
292
296
}
293
297
else
294
298
{
295
- TRACE_POSTGRESQL_BUFFER_MISS (false); /* ditto */
299
+ TRACE_POSTGRESQL_BUFFER_MISS (false); /* ditto */
296
300
}
297
301
}
298
302
@@ -310,9 +314,11 @@ ReadBuffer_common(SMgrRelation smgr, bool isLocalBuf, ForkNumber forkNum,
310
314
VacuumCostBalance += VacuumCostPageHit ;
311
315
312
316
TRACE_POSTGRESQL_BUFFER_READ_DONE (forkNum , blockNum ,
313
- smgr -> smgr_rnode .spcNode ,
314
- smgr -> smgr_rnode .dbNode ,
315
- smgr -> smgr_rnode .relNode , isLocalBuf , found );
317
+ smgr -> smgr_rnode .spcNode ,
318
+ smgr -> smgr_rnode .dbNode ,
319
+ smgr -> smgr_rnode .relNode ,
320
+ isLocalBuf ,
321
+ found );
316
322
317
323
return BufferDescriptorGetBuffer (bufHdr );
318
324
}
@@ -437,8 +443,11 @@ ReadBuffer_common(SMgrRelation smgr, bool isLocalBuf, ForkNumber forkNum,
437
443
VacuumCostBalance += VacuumCostPageMiss ;
438
444
439
445
TRACE_POSTGRESQL_BUFFER_READ_DONE (forkNum , blockNum ,
440
- smgr -> smgr_rnode .spcNode , smgr -> smgr_rnode .dbNode ,
441
- smgr -> smgr_rnode .relNode , isLocalBuf , found );
446
+ smgr -> smgr_rnode .spcNode ,
447
+ smgr -> smgr_rnode .dbNode ,
448
+ smgr -> smgr_rnode .relNode ,
449
+ isLocalBuf ,
450
+ found );
442
451
443
452
return BufferDescriptorGetBuffer (bufHdr );
444
453
}
@@ -582,11 +591,6 @@ BufferAlloc(SMgrRelation smgr, ForkNumber forkNum,
582
591
* happens to be trying to split the page the first one got from
583
592
* StrategyGetBuffer.)
584
593
*/
585
-
586
- TRACE_POSTGRESQL_BUFFER_WRITE_DIRTY_START (forkNum ,
587
- blockNum , smgr -> smgr_rnode .spcNode ,
588
- smgr -> smgr_rnode .dbNode , smgr -> smgr_rnode .relNode );
589
-
590
594
if (LWLockConditionalAcquire (buf -> content_lock , LW_SHARED ))
591
595
{
592
596
/*
@@ -607,13 +611,18 @@ BufferAlloc(SMgrRelation smgr, ForkNumber forkNum,
607
611
}
608
612
609
613
/* OK, do the I/O */
614
+ TRACE_POSTGRESQL_BUFFER_WRITE_DIRTY_START (forkNum , blockNum ,
615
+ smgr -> smgr_rnode .spcNode ,
616
+ smgr -> smgr_rnode .dbNode ,
617
+ smgr -> smgr_rnode .relNode );
618
+
610
619
FlushBuffer (buf , NULL );
611
620
LWLockRelease (buf -> content_lock );
612
621
613
- TRACE_POSTGRESQL_BUFFER_WRITE_DIRTY_DONE (
614
- forkNum , blockNum , smgr -> smgr_rnode .spcNode ,
615
- smgr -> smgr_rnode .dbNode ,
616
- smgr -> smgr_rnode .relNode );
622
+ TRACE_POSTGRESQL_BUFFER_WRITE_DIRTY_DONE (forkNum , blockNum ,
623
+ smgr -> smgr_rnode .spcNode ,
624
+ smgr -> smgr_rnode .dbNode ,
625
+ smgr -> smgr_rnode .relNode );
617
626
}
618
627
else
619
628
{
@@ -1235,13 +1244,13 @@ BufferSync(int flags)
1235
1244
buf_id = 0 ;
1236
1245
}
1237
1246
1238
- TRACE_POSTGRESQL_BUFFER_SYNC_DONE (NBuffers , num_written , num_to_write );
1239
-
1240
1247
/*
1241
1248
* Update checkpoint statistics. As noted above, this doesn't include
1242
1249
* buffers written by other backends or bgwriter scan.
1243
1250
*/
1244
1251
CheckpointStats .ckpt_bufs_written += num_written ;
1252
+
1253
+ TRACE_POSTGRESQL_BUFFER_SYNC_DONE (NBuffers , num_written , num_to_write );
1245
1254
}
1246
1255
1247
1256
/*
@@ -1852,14 +1861,14 @@ FlushBuffer(volatile BufferDesc *buf, SMgrRelation reln)
1852
1861
errcontext .previous = error_context_stack ;
1853
1862
error_context_stack = & errcontext ;
1854
1863
1864
+ TRACE_POSTGRESQL_BUFFER_FLUSH_START (reln -> smgr_rnode .spcNode ,
1865
+ reln -> smgr_rnode .dbNode ,
1866
+ reln -> smgr_rnode .relNode );
1867
+
1855
1868
/* Find smgr relation for buffer */
1856
1869
if (reln == NULL )
1857
1870
reln = smgropen (buf -> tag .rnode );
1858
1871
1859
- TRACE_POSTGRESQL_BUFFER_FLUSH_START (reln -> smgr_rnode .spcNode ,
1860
- reln -> smgr_rnode .dbNode ,
1861
- reln -> smgr_rnode .relNode );
1862
-
1863
1872
/*
1864
1873
* Force XLOG flush up to buffer's LSN. This implements the basic WAL
1865
1874
* rule that log updates must hit disk before any of the data-file changes
@@ -1887,15 +1896,16 @@ FlushBuffer(volatile BufferDesc *buf, SMgrRelation reln)
1887
1896
1888
1897
BufferFlushCount ++ ;
1889
1898
1890
- TRACE_POSTGRESQL_BUFFER_FLUSH_DONE (reln -> smgr_rnode .spcNode ,
1891
- reln -> smgr_rnode .dbNode , reln -> smgr_rnode .relNode );
1892
-
1893
1899
/*
1894
1900
* Mark the buffer as clean (unless BM_JUST_DIRTIED has become set) and
1895
1901
* end the io_in_progress state.
1896
1902
*/
1897
1903
TerminateBufferIO (buf , true, 0 );
1898
1904
1905
+ TRACE_POSTGRESQL_BUFFER_FLUSH_DONE (reln -> smgr_rnode .spcNode ,
1906
+ reln -> smgr_rnode .dbNode ,
1907
+ reln -> smgr_rnode .relNode );
1908
+
1899
1909
/* Pop the error context stack */
1900
1910
error_context_stack = errcontext .previous ;
1901
1911
}
0 commit comments