Merge xmrig v6.9.0 into master
This commit is contained in:
commit
158bf879c1
33 changed files with 290 additions and 189 deletions
|
@ -352,6 +352,7 @@ public:
|
|||
Algorithms algorithms;
|
||||
bool active = false;
|
||||
bool battery_power = false;
|
||||
bool user_active = false;
|
||||
bool enabled = true;
|
||||
bool reset = true;
|
||||
Controller *controller;
|
||||
|
@ -600,7 +601,8 @@ void xmrig::Miner::onConfigChanged(Config *config, Config *previousConfig)
|
|||
void xmrig::Miner::onTimer(const Timer *)
|
||||
{
|
||||
double maxHashrate = 0.0;
|
||||
const auto healthPrintTime = d_ptr->controller->config()->healthPrintTime();
|
||||
const auto config = d_ptr->controller->config();
|
||||
const auto healthPrintTime = config->healthPrintTime();
|
||||
|
||||
bool stopMiner = false;
|
||||
|
||||
|
@ -620,25 +622,29 @@ void xmrig::Miner::onTimer(const Timer *)
|
|||
|
||||
d_ptr->maxHashrate[d_ptr->algorithm] = std::max(d_ptr->maxHashrate[d_ptr->algorithm], maxHashrate);
|
||||
|
||||
const auto printTime = d_ptr->controller->config()->printTime();
|
||||
const auto printTime = config->printTime();
|
||||
if (printTime && d_ptr->ticks && (d_ptr->ticks % (printTime * 2)) == 0) {
|
||||
d_ptr->printHashrate(false);
|
||||
}
|
||||
|
||||
d_ptr->ticks++;
|
||||
|
||||
if (d_ptr->controller->config()->isPauseOnBattery()) {
|
||||
const bool battery_power = Platform::isOnBatteryPower();
|
||||
if (battery_power && d_ptr->enabled) {
|
||||
LOG_INFO("%s " YELLOW_BOLD("on battery power"), Tags::miner());
|
||||
d_ptr->battery_power = true;
|
||||
setEnabled(false);
|
||||
}
|
||||
else if (!battery_power && !d_ptr->enabled && d_ptr->battery_power) {
|
||||
LOG_INFO("%s " GREEN_BOLD("on AC power"), Tags::miner());
|
||||
d_ptr->battery_power = false;
|
||||
setEnabled(true);
|
||||
auto autoPause = [this](bool &state, bool pause, const char *pauseMessage, const char *activeMessage)
|
||||
{
|
||||
if ((pause && !state) || (!pause && state)) {
|
||||
LOG_INFO("%s %s", Tags::miner(), pause ? pauseMessage : activeMessage);
|
||||
|
||||
state = pause;
|
||||
setEnabled(!pause);
|
||||
}
|
||||
};
|
||||
|
||||
if (config->isPauseOnBattery()) {
|
||||
autoPause(d_ptr->battery_power, Platform::isOnBatteryPower(), YELLOW_BOLD("on battery power"), GREEN_BOLD("on AC power"));
|
||||
}
|
||||
|
||||
if (config->isPauseOnActive()) {
|
||||
autoPause(d_ptr->user_active, Platform::isUserActive(config->idleTime()), YELLOW_BOLD("user active"), GREEN_BOLD("user inactive"));
|
||||
}
|
||||
|
||||
if (stopMiner) {
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
/* XMRig
|
||||
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
|
||||
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
|
||||
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
|
||||
* Copyright 2014-2016 Wolf9466 <https://github.com/OhGodAPet>
|
||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||
* Copyright 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -22,6 +16,7 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include <algorithm>
|
||||
#include <cinttypes>
|
||||
#include <cstring>
|
||||
|
@ -54,6 +49,13 @@
|
|||
namespace xmrig {
|
||||
|
||||
|
||||
constexpr static uint32_t kIdleTime = 60U;
|
||||
|
||||
|
||||
const char *Config::kPauseOnBattery = "pause-on-battery";
|
||||
const char *Config::kPauseOnActive = "pause-on-active";
|
||||
|
||||
|
||||
#ifdef XMRIG_FEATURE_OPENCL
|
||||
const char *Config::kOcl = "opencl";
|
||||
#endif
|
||||
|
@ -74,7 +76,9 @@ const char *Config::kDMI = "dmi";
|
|||
class ConfigPrivate
|
||||
{
|
||||
public:
|
||||
bool pauseOnBattery = false;
|
||||
CpuConfig cpu;
|
||||
uint32_t idleTime = 0;
|
||||
|
||||
# ifdef XMRIG_ALGO_RANDOMX
|
||||
RxConfig rx;
|
||||
|
@ -89,12 +93,22 @@ public:
|
|||
# endif
|
||||
|
||||
# if defined(XMRIG_FEATURE_NVML) || defined (XMRIG_FEATURE_ADL)
|
||||
uint32_t healthPrintTime = 60;
|
||||
uint32_t healthPrintTime = 60U;
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_FEATURE_DMI
|
||||
bool dmi = true;
|
||||
# endif
|
||||
|
||||
void setIdleTime(const rapidjson::Value &value)
|
||||
{
|
||||
if (value.IsBool()) {
|
||||
idleTime = value.GetBool() ? kIdleTime : 0U;
|
||||
}
|
||||
else if (value.IsUint()) {
|
||||
idleTime = value.GetUint();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -112,12 +126,24 @@ xmrig::Config::~Config()
|
|||
}
|
||||
|
||||
|
||||
bool xmrig::Config::isPauseOnBattery() const
|
||||
{
|
||||
return d_ptr->pauseOnBattery;
|
||||
}
|
||||
|
||||
|
||||
const xmrig::CpuConfig &xmrig::Config::cpu() const
|
||||
{
|
||||
return d_ptr->cpu;
|
||||
}
|
||||
|
||||
|
||||
uint32_t xmrig::Config::idleTime() const
|
||||
{
|
||||
return d_ptr->idleTime * 1000U;
|
||||
}
|
||||
|
||||
|
||||
#ifdef XMRIG_FEATURE_OPENCL
|
||||
const xmrig::OclConfig &xmrig::Config::cl() const
|
||||
{
|
||||
|
@ -192,6 +218,9 @@ bool xmrig::Config::read(const IJsonReader &reader, const char *fileName)
|
|||
return false;
|
||||
}
|
||||
|
||||
d_ptr->pauseOnBattery = reader.getBool(kPauseOnBattery, d_ptr->pauseOnBattery);
|
||||
d_ptr->setIdleTime(reader.getValue(kPauseOnActive));
|
||||
|
||||
d_ptr->cpu.read(reader.getValue(CpuConfig::kField));
|
||||
|
||||
# ifdef XMRIG_ALGO_RANDOMX
|
||||
|
@ -287,4 +316,5 @@ void xmrig::Config::getJSON(rapidjson::Document &doc) const
|
|||
# endif
|
||||
|
||||
doc.AddMember(StringRef(kPauseOnBattery), isPauseOnBattery(), allocator);
|
||||
doc.AddMember(StringRef(kPauseOnActive), (d_ptr->idleTime == 0U || d_ptr->idleTime == kIdleTime) ? Value(isPauseOnActive()) : Value(d_ptr->idleTime), allocator);
|
||||
}
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
/* XMRig
|
||||
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
|
||||
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
|
||||
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
|
||||
* Copyright 2014-2016 Wolf9466 <https://github.com/OhGodAPet>
|
||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||
* Copyright 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -53,6 +47,9 @@ class Config : public BaseConfig
|
|||
public:
|
||||
XMRIG_DISABLE_COPY_MOVE(Config);
|
||||
|
||||
static const char *kPauseOnBattery;
|
||||
static const char *kPauseOnActive;
|
||||
|
||||
# ifdef XMRIG_FEATURE_OPENCL
|
||||
static const char *kOcl;
|
||||
# endif
|
||||
|
@ -72,7 +69,11 @@ public:
|
|||
Config();
|
||||
~Config() override;
|
||||
|
||||
inline bool isPauseOnActive() const { return idleTime() > 0; }
|
||||
|
||||
bool isPauseOnBattery() const;
|
||||
const CpuConfig &cpu() const;
|
||||
uint32_t idleTime() const;
|
||||
|
||||
# ifdef XMRIG_FEATURE_OPENCL
|
||||
const OclConfig &cl() const;
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
/* XMRig
|
||||
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
|
||||
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
|
||||
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
|
||||
* Copyright 2014-2016 Wolf9466 <https://github.com/OhGodAPet>
|
||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||
* Copyright 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -150,6 +144,12 @@ void xmrig::ConfigTransform::transform(rapidjson::Document &doc, int key, const
|
|||
case IConfig::YieldKey: /* --cpu-no-yield */
|
||||
return set(doc, CpuConfig::kField, CpuConfig::kYield, false);
|
||||
|
||||
case IConfig::PauseOnBatteryKey: /* --pause-on-battery */
|
||||
return set(doc, Config::kPauseOnBattery, true);
|
||||
|
||||
case IConfig::PauseOnActiveKey: /* --pause-on-active */
|
||||
return set(doc, Config::kPauseOnActive, static_cast<uint64_t>(strtol(arg, nullptr, 10)));
|
||||
|
||||
# ifdef XMRIG_ALGO_ARGON2
|
||||
case IConfig::Argon2ImplKey: /* --argon2-impl */
|
||||
return set(doc, CpuConfig::kField, CpuConfig::kArgon2Impl, arg);
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
/* XMRig
|
||||
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
|
||||
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
|
||||
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
|
||||
* Copyright 2014-2016 Wolf9466 <https://github.com/OhGodAPet>
|
||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||
* Copyright 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -105,7 +105,8 @@ R"===(
|
|||
"tls-fingerprint": null,
|
||||
"daemon": false,
|
||||
"socks5": null,
|
||||
"self-select": null
|
||||
"self-select": null,
|
||||
"submit-to-origin": false
|
||||
}
|
||||
],
|
||||
"print-time": 60,
|
||||
|
@ -126,7 +127,8 @@ R"===(
|
|||
"user-agent": null,
|
||||
"verbose": 0,
|
||||
"watch": true,
|
||||
"pause-on-battery": false
|
||||
"pause-on-battery": false,
|
||||
"pause-on-active": false
|
||||
}
|
||||
)===";
|
||||
#endif
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
/* XMRig
|
||||
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
|
||||
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
|
||||
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
|
||||
* Copyright 2014-2016 Wolf9466 <https://github.com/OhGodAPet>
|
||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -57,6 +51,7 @@ static const option options[] = {
|
|||
{ "daemon", 0, nullptr, IConfig::DaemonKey },
|
||||
{ "daemon-poll-interval", 1, nullptr, IConfig::DaemonPollKey },
|
||||
{ "self-select", 1, nullptr, IConfig::SelfSelectKey },
|
||||
{ "submit-to-origin", 0, nullptr, IConfig::SubmitToOriginKey },
|
||||
# endif
|
||||
{ "av", 1, nullptr, IConfig::AVKey },
|
||||
{ "background", 0, nullptr, IConfig::BackgroundKey },
|
||||
|
@ -102,6 +97,7 @@ static const option options[] = {
|
|||
{ "title", 1, nullptr, IConfig::TitleKey },
|
||||
{ "no-title", 0, nullptr, IConfig::NoTitleKey },
|
||||
{ "pause-on-battery", 0, nullptr, IConfig::PauseOnBatteryKey },
|
||||
{ "pause-on-active", 1, nullptr, IConfig::PauseOnActiveKey },
|
||||
# ifdef XMRIG_FEATURE_BENCHMARK
|
||||
{ "stress", 0, nullptr, IConfig::StressKey },
|
||||
{ "bench", 1, nullptr, IConfig::BenchKey },
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
/* XMRig
|
||||
* Copyright 2010 Jeff Garzik <jgarzik@pobox.com>
|
||||
* Copyright 2012-2014 pooler <pooler@litecoinpool.org>
|
||||
* Copyright 2014 Lucas Jones <https://github.com/lucasjones>
|
||||
* Copyright 2014-2016 Wolf9466 <https://github.com/OhGodAPet>
|
||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||
* Copyright 2018-2020 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2016-2020 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright (c) 2010 Jeff Garzik <jgarzik@pobox.com>
|
||||
* Copyright (c) 2012-2014 pooler <pooler@litecoinpool.org>
|
||||
* Copyright (c) 2014 Lucas Jones <https://github.com/lucasjones>
|
||||
* Copyright (c) 2014-2016 Wolf9466 <https://github.com/OhGodAPet>
|
||||
* Copyright (c) 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright (c) 2018-2021 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright (c) 2016-2021 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -64,6 +63,7 @@ static inline const std::string &usage()
|
|||
u += " --daemon use daemon RPC instead of pool for solo mining\n";
|
||||
u += " --daemon-poll-interval=N daemon poll interval in milliseconds (default: 1000)\n";
|
||||
u += " --self-select=URL self-select block templates from URL\n";
|
||||
u += " --submit-to-origin also submit solution back to self-select URL\n";
|
||||
# endif
|
||||
|
||||
u += " -r, --retries=N number of times to retry before switch to backup server (default: 5)\n";
|
||||
|
@ -181,6 +181,7 @@ static inline const std::string &usage()
|
|||
u += " --no-title disable setting console window title\n";
|
||||
# endif
|
||||
u += " --pause-on-battery pause mine on battery power\n";
|
||||
u += " --pause-on-active=N pause mine when the user is active (resume after N seconds of last activity)\n";
|
||||
|
||||
# ifdef XMRIG_FEATURE_BENCHMARK
|
||||
u += " --stress run continuous stress test to check system stability\n";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue