35 lines
1.4 KiB
C
35 lines
1.4 KiB
C
/****************************************************************
|
|
* *
|
|
* Copyright 2008, 2010 Fidelity Information Services, Inc *
|
|
* *
|
|
* This source code contains the intellectual property *
|
|
* of its copyright holder(s), and is made available *
|
|
* under a license. If you do not know the terms of *
|
|
* the license, please stop and do not read further. *
|
|
* *
|
|
****************************************************************/
|
|
|
|
#ifndef __WCS_PHASE2_COMMIT_WAIT_H__
|
|
#define __WCS_PHASE2_COMMIT_WAIT_H__
|
|
|
|
/* We have found that having the default spin count at 128 causes huge CPU usage in Tru64 even though ALL the processes are
|
|
* waiting for one process to finish its phase2 commit. Since this parameter is user controlled anyways using DSE CHANGE -FILE,
|
|
* the default setting is kept at a very low value of 16.
|
|
*/
|
|
# define WCS_PHASE2_COMMIT_DEFAULT_SPINCNT 16
|
|
/* The maximum number of cache-records with disticnt PIDs that wcs_phase2_commit_wait can note down for tracing. We don't expect
|
|
* a large number of PIDs concurrently in phase2 of the commit. If we see evidince of more PIDs in phase2 of the commit, then
|
|
* the following number can be bumped.
|
|
*/
|
|
# define MAX_PHASE2_WAIT_CR_TRACE_SIZE 32
|
|
|
|
typedef struct phase2_wait_trace_struct
|
|
{
|
|
uint4 blocking_pid;
|
|
cache_rec_ptr_t cr;
|
|
} phase2_wait_trace_t;
|
|
|
|
boolean_t wcs_phase2_commit_wait(sgmnt_addrs *csa, cache_rec_ptr_t cr);
|
|
|
|
#endif
|