Added a note about smart mining to status command. Fixed up a bug where I was resetting bg mining enabled instead of started. Upped the miner threshold. Also moved setting of enabled on start above miner thread creation since starting with true, then stopping, then starting with false resulted in race condition.

This commit is contained in:
Dion Ahmetaj 2017-02-08 16:17:50 -05:00
parent e4dfd2fb63
commit ad95e65028
5 changed files with 8 additions and 5 deletions

View File

@ -277,7 +277,8 @@ namespace cryptonote
boost::interprocess::ipcdetail::atomic_write32(&m_stop, 0); boost::interprocess::ipcdetail::atomic_write32(&m_stop, 0);
boost::interprocess::ipcdetail::atomic_write32(&m_thread_index, 0); boost::interprocess::ipcdetail::atomic_write32(&m_thread_index, 0);
set_is_background_mining_enabled(do_background);
for(size_t i = 0; i != threads_count; i++) for(size_t i = 0; i != threads_count; i++)
{ {
m_threads.push_back(boost::thread(attrs, boost::bind(&miner::worker_thread, this))); m_threads.push_back(boost::thread(attrs, boost::bind(&miner::worker_thread, this)));
@ -285,7 +286,6 @@ namespace cryptonote
LOG_PRINT_L0("Mining has started with " << threads_count << " threads, good luck!" ); LOG_PRINT_L0("Mining has started with " << threads_count << " threads, good luck!" );
set_is_background_mining_enabled(do_background);
if( get_is_background_mining_enabled() ) if( get_is_background_mining_enabled() )
{ {
m_background_mining_thread = boost::thread(attrs, boost::bind(&miner::background_worker_thread, this)); m_background_mining_thread = boost::thread(attrs, boost::bind(&miner::background_worker_thread, this));
@ -526,7 +526,7 @@ namespace cryptonote
uint64_t prev_total_time, current_total_time; uint64_t prev_total_time, current_total_time;
uint64_t prev_idle_time, current_idle_time; uint64_t prev_idle_time, current_idle_time;
uint64_t previous_process_time = 0, current_process_time = 0; uint64_t previous_process_time = 0, current_process_time = 0;
m_is_background_mining_enabled = false; m_is_background_mining_started = false;
if(!get_system_times(prev_total_time, prev_idle_time)) if(!get_system_times(prev_total_time, prev_idle_time))
{ {

View File

@ -95,7 +95,7 @@ namespace cryptonote
static constexpr uint16_t BACKGROUND_MINING_DEFAULT_MIN_IDLE_INTERVAL_IN_SECONDS = 10; static constexpr uint16_t BACKGROUND_MINING_DEFAULT_MIN_IDLE_INTERVAL_IN_SECONDS = 10;
static constexpr uint16_t BACKGROUND_MINING_MIN_MIN_IDLE_INTERVAL_IN_SECONDS = 10; static constexpr uint16_t BACKGROUND_MINING_MIN_MIN_IDLE_INTERVAL_IN_SECONDS = 10;
static constexpr uint16_t BACKGROUND_MINING_MAX_MIN_IDLE_INTERVAL_IN_SECONDS = 3600; static constexpr uint16_t BACKGROUND_MINING_MAX_MIN_IDLE_INTERVAL_IN_SECONDS = 3600;
static constexpr uint8_t BACKGROUND_MINING_DEFAULT_MINING_TARGET_PERCENTAGE = 20; static constexpr uint8_t BACKGROUND_MINING_DEFAULT_MINING_TARGET_PERCENTAGE = 40;
static constexpr uint8_t BACKGROUND_MINING_MIN_MINING_TARGET_PERCENTAGE = 5; static constexpr uint8_t BACKGROUND_MINING_MIN_MINING_TARGET_PERCENTAGE = 5;
static constexpr uint8_t BACKGROUND_MINING_MAX_MINING_TARGET_PERCENTAGE = 50; static constexpr uint8_t BACKGROUND_MINING_MAX_MINING_TARGET_PERCENTAGE = 50;
static constexpr uint8_t BACKGROUND_MINING_MINER_MONITOR_INVERVAL_IN_SECONDS = 10; static constexpr uint8_t BACKGROUND_MINING_MINER_MONITOR_INVERVAL_IN_SECONDS = 10;

View File

@ -377,7 +377,7 @@ bool t_rpc_command_executor::show_status() {
% (unsigned long long)(ires.target_height >= ires.height ? ires.target_height : ires.height) % (unsigned long long)(ires.target_height >= ires.height ? ires.target_height : ires.height)
% get_sync_percentage(ires) % get_sync_percentage(ires)
% (ires.testnet ? "testnet" : "mainnet") % (ires.testnet ? "testnet" : "mainnet")
% (mining_busy ? "syncing" : mres.active ? "mining at " + get_mining_speed(mres.speed) : "not mining") % (mining_busy ? "syncing" : mres.active ? ( ( mres.is_background_mining_enabled ? "smart " : "" ) + std::string("mining at ") + get_mining_speed(mres.speed) ) : "not mining")
% get_mining_speed(ires.difficulty / ires.target) % get_mining_speed(ires.difficulty / ires.target)
% (unsigned)hfres.version % (unsigned)hfres.version
% get_fork_extra_info(hfres.earliest_height, ires.height, ires.target) % get_fork_extra_info(hfres.earliest_height, ires.height, ires.target)

View File

@ -663,6 +663,7 @@ namespace cryptonote
const miner& lMiner = m_core.get_miner(); const miner& lMiner = m_core.get_miner();
res.active = lMiner.is_mining(); res.active = lMiner.is_mining();
res.is_background_mining_enabled = lMiner.get_is_background_mining_enabled();
if ( lMiner.is_mining() ) { if ( lMiner.is_mining() ) {
res.speed = lMiner.get_speed(); res.speed = lMiner.get_speed();

View File

@ -610,6 +610,7 @@ namespace cryptonote
uint64_t speed; uint64_t speed;
uint32_t threads_count; uint32_t threads_count;
std::string address; std::string address;
bool is_background_mining_enabled;
BEGIN_KV_SERIALIZE_MAP() BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(status) KV_SERIALIZE(status)
@ -617,6 +618,7 @@ namespace cryptonote
KV_SERIALIZE(speed) KV_SERIALIZE(speed)
KV_SERIALIZE(threads_count) KV_SERIALIZE(threads_count)
KV_SERIALIZE(address) KV_SERIALIZE(address)
KV_SERIALIZE(is_background_mining_enabled)
END_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP()
}; };
}; };