mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 19:41:47 +01:00
refs #5672 #5742 suppress race we know about on size_current/size_evicting, suppress more warnings from that helgrind bug
git-svn-id: file:///svn/toku/tokudb@50725 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
parent
ae57be8d78
commit
faa4928a74
4 changed files with 44 additions and 27 deletions
|
@ -400,7 +400,12 @@ private:
|
|||
void decrease_size_evicting(long size_evicting_estimate);
|
||||
bool should_sleeping_clients_wakeup();
|
||||
bool eviction_needed();
|
||||
|
||||
|
||||
// We have some intentional races with these variables because we're ok with reading something a little bit old.
|
||||
// Provide some hooks for reading variables in an unsafe way so that there are function names we can stick in a valgrind suppression.
|
||||
int64_t unsafe_read_size_current(void) const;
|
||||
int64_t unsafe_read_size_evicting(void) const;
|
||||
|
||||
pair_list* m_pl;
|
||||
int64_t m_size_current; // the sum of the sizes of the pairs in the cachetable
|
||||
// changes to these two values are protected
|
||||
|
|
|
@ -3453,8 +3453,6 @@ static void *eviction_thread(void *evictor_v) {
|
|||
//
|
||||
void evictor::init(long _size_limit, pair_list* _pl, KIBBUTZ _kibbutz, uint32_t eviction_period) {
|
||||
TOKU_VALGRIND_HG_DISABLE_CHECKING(&m_ev_thread_is_running, sizeof m_ev_thread_is_running);
|
||||
TOKU_VALGRIND_HG_DISABLE_CHECKING(&m_size_current, sizeof m_size_current);
|
||||
TOKU_VALGRIND_HG_DISABLE_CHECKING(&m_size_evicting, sizeof m_size_evicting);
|
||||
|
||||
m_low_size_watermark = _size_limit;
|
||||
// these values are selected kind of arbitrarily right now as
|
||||
|
@ -3984,7 +3982,7 @@ void evictor::signal_eviction_thread() {
|
|||
// the values may be a little off, but we think that is tolerable.
|
||||
//
|
||||
bool evictor::should_client_thread_sleep(){
|
||||
return m_size_current > m_high_size_watermark;
|
||||
return unsafe_read_size_current() > m_high_size_watermark;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -3996,7 +3994,7 @@ bool evictor::should_client_thread_sleep(){
|
|||
// the values may be a little off, but we think that is tolerable.
|
||||
//
|
||||
bool evictor::should_sleeping_clients_wakeup() {
|
||||
return m_size_current <= m_high_size_hysteresis;
|
||||
return unsafe_read_size_current() <= m_high_size_hysteresis;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -4012,9 +4010,9 @@ bool evictor::should_sleeping_clients_wakeup() {
|
|||
// calling this function.
|
||||
//
|
||||
bool evictor::should_client_wake_eviction_thread() {
|
||||
return
|
||||
return
|
||||
!m_ev_thread_is_running &&
|
||||
((m_size_current - m_size_evicting) > m_low_size_hysteresis);
|
||||
((unsafe_read_size_current() - unsafe_read_size_evicting()) > m_low_size_hysteresis);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -4026,6 +4024,15 @@ bool evictor::eviction_needed() {
|
|||
return (m_size_current - m_size_evicting) > m_low_size_watermark;
|
||||
}
|
||||
|
||||
inline int64_t evictor::unsafe_read_size_current(void) const {
|
||||
return m_size_current;
|
||||
}
|
||||
|
||||
inline int64_t evictor::unsafe_read_size_evicting(void) const {
|
||||
return m_size_evicting;
|
||||
}
|
||||
|
||||
|
||||
void evictor::fill_engine_status() {
|
||||
STATUS_VALUE(CT_SIZE_CURRENT) = m_size_current;
|
||||
STATUS_VALUE(CT_SIZE_LIMIT) = m_low_size_hysteresis;
|
||||
|
|
|
@ -89,3 +89,13 @@
|
|||
drd:ConflictingAccess
|
||||
fun:_ZNK4toku8locktree46unsafe_read_single_txnid_optimization_possibleEv
|
||||
}
|
||||
{
|
||||
unsafe_read_size_evicting
|
||||
drd:ConflictingAccess
|
||||
fun:_ZNK7evictor25unsafe_read_size_evictingEv
|
||||
}
|
||||
{
|
||||
unsafe_read_size_current
|
||||
drd:ConflictingAccess
|
||||
fun:_ZNK7evictor24unsafe_read_size_currentEv
|
||||
}
|
||||
|
|
|
@ -40,20 +40,20 @@
|
|||
fun:_ZNK4toku8locktree46unsafe_read_single_txnid_optimization_possibleEv
|
||||
}
|
||||
{
|
||||
kde_bug_307082_cond_destroy_without_signal
|
||||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
fun:_ZN4toku12lock_request7destroyEv
|
||||
fun:_Z22toku_db_get_range_lockP9__toku_dbP13__toku_db_txnPK10__toku_dbtS5_N4toku12lock_request4typeE
|
||||
unsafe_read_size_evicting
|
||||
Helgrind:Race
|
||||
fun:_ZNK7evictor25unsafe_read_size_evictingEv
|
||||
}
|
||||
{
|
||||
unsafe_read_size_current
|
||||
Helgrind:Race
|
||||
fun:_ZNK7evictor24unsafe_read_size_currentEv
|
||||
}
|
||||
{
|
||||
kde_bug_307082_cond_destroy_without_signal
|
||||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
...
|
||||
fun:_ZL14ctpair_destroyP6ctpair
|
||||
}
|
||||
|
@ -62,7 +62,7 @@
|
|||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
...
|
||||
fun:_ZL14rwlock_destroyP6rwlock
|
||||
fun:_ZL16nb_mutex_destroyP8nb_mutex
|
||||
fun:_Z23toku_blocktable_destroyPP11block_table
|
||||
|
@ -72,7 +72,7 @@
|
|||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
...
|
||||
fun:_Z11bjm_destroyP29background_job_manager_struct
|
||||
}
|
||||
{
|
||||
|
@ -80,28 +80,23 @@
|
|||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
...
|
||||
fun:_Z24toku_txn_manager_destroyP11txn_manager
|
||||
fun:_Z17toku_logger_closePP10tokulogger
|
||||
}
|
||||
{
|
||||
kde_bug_307082_cond_destroy_without_signal
|
||||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
...
|
||||
fun:_Z24toku_thread_pool_destroyPP16toku_thread_pool
|
||||
fun:_Z31toku_ft_serialize_layer_destroyv
|
||||
fun:_Z21toku_ft_layer_destroyv
|
||||
fun:_Z16toku_ydb_destroyv
|
||||
fun:_ZL17libtokudb_destroyv
|
||||
}
|
||||
{
|
||||
kde_bug_307082_cond_destroy_without_signal
|
||||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
...
|
||||
fun:_Z22toku_minicron_shutdownP8minicron
|
||||
}
|
||||
{
|
||||
|
@ -109,7 +104,7 @@
|
|||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
...
|
||||
fun:_ZN4toku12lock_request7destroyEv
|
||||
}
|
||||
{
|
||||
|
@ -117,6 +112,6 @@
|
|||
Helgrind:Misc
|
||||
...
|
||||
fun:pthread_cond_destroy@*
|
||||
fun:_ZL17toku_cond_destroyP9toku_cond
|
||||
...
|
||||
fun:_Z17toku_logger_closePP10tokulogger
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue