Fixed command line config and removed --max-cpu-usage and --safe.
This commit is contained in:
parent
2fc54d240a
commit
222cebba71
15 changed files with 283 additions and 163 deletions
|
@ -28,6 +28,15 @@
|
|||
#include "rapidjson/document.h"
|
||||
|
||||
|
||||
namespace xmrig {
|
||||
|
||||
|
||||
static const char *kAsterisk = "*";
|
||||
|
||||
|
||||
} // namespace xmrig
|
||||
|
||||
|
||||
template <class T>
|
||||
const std::vector<T> &xmrig::Threads<T>::get(const String &profileName) const
|
||||
{
|
||||
|
@ -41,34 +50,7 @@ const std::vector<T> &xmrig::Threads<T>::get(const String &profileName) const
|
|||
|
||||
|
||||
template <class T>
|
||||
xmrig::String xmrig::Threads<T>::profileName(const Algorithm &algorithm, bool strict) const
|
||||
{
|
||||
if (isDisabled(algorithm)) {
|
||||
return String();
|
||||
}
|
||||
|
||||
const String name = algorithm.shortName();
|
||||
if (has(name)) {
|
||||
return name;
|
||||
}
|
||||
|
||||
if (m_aliases.count(algorithm) > 0) {
|
||||
return m_aliases.at(algorithm);
|
||||
}
|
||||
|
||||
if (!strict && name.contains("/")) {
|
||||
const String base = name.split('/').at(0);
|
||||
if (has(base)) {
|
||||
return base;
|
||||
}
|
||||
}
|
||||
|
||||
return String();
|
||||
}
|
||||
|
||||
|
||||
template <class T>
|
||||
void xmrig::Threads<T>::read(const rapidjson::Value &value)
|
||||
size_t xmrig::Threads<T>::read(const rapidjson::Value &value)
|
||||
{
|
||||
using namespace rapidjson;
|
||||
|
||||
|
@ -109,6 +91,43 @@ void xmrig::Threads<T>::read(const rapidjson::Value &value)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return m_profiles.size();
|
||||
}
|
||||
|
||||
|
||||
template <class T>
|
||||
xmrig::String xmrig::Threads<T>::profileName(const Algorithm &algorithm, bool strict) const
|
||||
{
|
||||
if (isDisabled(algorithm)) {
|
||||
return String();
|
||||
}
|
||||
|
||||
const String name = algorithm.shortName();
|
||||
if (has(name)) {
|
||||
return name;
|
||||
}
|
||||
|
||||
if (m_aliases.count(algorithm) > 0) {
|
||||
return m_aliases.at(algorithm);
|
||||
}
|
||||
|
||||
if (strict) {
|
||||
return String();
|
||||
}
|
||||
|
||||
if (name.contains("/")) {
|
||||
const String base = name.split('/').at(0);
|
||||
if (has(base)) {
|
||||
return base;
|
||||
}
|
||||
}
|
||||
|
||||
if (has(kAsterisk)) {
|
||||
return kAsterisk;
|
||||
}
|
||||
|
||||
return String();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -50,8 +50,8 @@ public:
|
|||
inline void move(const char *profile, std::vector<T> &&threads) { m_profiles.insert({ profile, threads }); }
|
||||
|
||||
const std::vector<T> &get(const String &profileName) const;
|
||||
size_t read(const rapidjson::Value &value);
|
||||
String profileName(const Algorithm &algorithm, bool strict = false) const;
|
||||
void read(const rapidjson::Value &value);
|
||||
void toJSON(rapidjson::Value &out, rapidjson::Document &doc) const;
|
||||
|
||||
private:
|
||||
|
|
|
@ -126,48 +126,56 @@ void xmrig::CpuConfig::read(const rapidjson::Value &value)
|
|||
m_hugePages = Json::getBool(value, kHugePages, m_hugePages);
|
||||
|
||||
setAesMode(Json::getValue(value, kHwAes));
|
||||
setPriority(Json::getInt(value, kPriority, -1));
|
||||
setPriority(Json::getInt(value, kPriority, -1));
|
||||
|
||||
# ifdef XMRIG_FEATURE_ASM
|
||||
m_assembly = Json::getValue(value, kAsm);
|
||||
# endif
|
||||
|
||||
m_threads.read(value);
|
||||
if (!m_threads.read(value)) {
|
||||
generate();
|
||||
}
|
||||
}
|
||||
else if (value.IsBool() && value.IsFalse()) {
|
||||
m_enabled = false;
|
||||
}
|
||||
else {
|
||||
m_shouldSave = true;
|
||||
|
||||
m_threads.disable(Algorithm::CN_0);
|
||||
m_threads.move(kCn, Cpu::info()->threads(Algorithm::CN_0));
|
||||
|
||||
# ifdef XMRIG_ALGO_CN_GPU
|
||||
m_threads.move(kCnGPU, Cpu::info()->threads(Algorithm::CN_GPU));
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_ALGO_CN_LITE
|
||||
m_threads.disable(Algorithm::CN_LITE_0);
|
||||
m_threads.move(kCnLite, Cpu::info()->threads(Algorithm::CN_LITE_1));
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_ALGO_CN_HEAVY
|
||||
m_threads.move(kCnHeavy, Cpu::info()->threads(Algorithm::CN_HEAVY_0));
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_ALGO_CN_PICO
|
||||
m_threads.move(kCnPico, Cpu::info()->threads(Algorithm::CN_PICO_0));
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_ALGO_RANDOMX
|
||||
m_threads.move(kRx, Cpu::info()->threads(Algorithm::RX_0));
|
||||
m_threads.move(kRxWOW, Cpu::info()->threads(Algorithm::RX_WOW));
|
||||
# endif
|
||||
generate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void xmrig::CpuConfig::generate()
|
||||
{
|
||||
m_shouldSave = true;
|
||||
|
||||
m_threads.disable(Algorithm::CN_0);
|
||||
m_threads.move(kCn, Cpu::info()->threads(Algorithm::CN_0));
|
||||
|
||||
# ifdef XMRIG_ALGO_CN_GPU
|
||||
m_threads.move(kCnGPU, Cpu::info()->threads(Algorithm::CN_GPU));
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_ALGO_CN_LITE
|
||||
m_threads.disable(Algorithm::CN_LITE_0);
|
||||
m_threads.move(kCnLite, Cpu::info()->threads(Algorithm::CN_LITE_1));
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_ALGO_CN_HEAVY
|
||||
m_threads.move(kCnHeavy, Cpu::info()->threads(Algorithm::CN_HEAVY_0));
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_ALGO_CN_PICO
|
||||
m_threads.move(kCnPico, Cpu::info()->threads(Algorithm::CN_PICO_0));
|
||||
# endif
|
||||
|
||||
# ifdef XMRIG_ALGO_RANDOMX
|
||||
m_threads.move(kRx, Cpu::info()->threads(Algorithm::RX_0));
|
||||
m_threads.move(kRxWOW, Cpu::info()->threads(Algorithm::RX_WOW));
|
||||
# endif
|
||||
}
|
||||
|
||||
|
||||
void xmrig::CpuConfig::setAesMode(const rapidjson::Value &aesMode)
|
||||
{
|
||||
if (aesMode.IsBool()) {
|
||||
|
@ -177,9 +185,3 @@ void xmrig::CpuConfig::setAesMode(const rapidjson::Value &aesMode)
|
|||
m_aes = AES_AUTO;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void xmrig::CpuConfig::setPriority(int priority)
|
||||
{
|
||||
m_priority = (priority >= -1 && priority <= 5) ? priority : -1;
|
||||
}
|
||||
|
|
|
@ -59,8 +59,10 @@ public:
|
|||
inline int priority() const { return m_priority; }
|
||||
|
||||
private:
|
||||
void generate();
|
||||
void setAesMode(const rapidjson::Value &aesMode);
|
||||
void setPriority(int priority);
|
||||
|
||||
inline void setPriority(int priority) { m_priority = (priority >= -1 && priority <= 5) ? priority : -1; }
|
||||
|
||||
AesMode m_aes = AES_AUTO;
|
||||
Assembly m_assembly;
|
||||
|
|
|
@ -273,7 +273,7 @@ template<size_t N>
|
|||
void xmrig::CpuWorker<N>::allocateCnCtx()
|
||||
{
|
||||
if (m_ctx[0] == nullptr) {
|
||||
CnCtx::create(m_ctx, m_memory->scratchpad(), m_memory->size(), N);
|
||||
CnCtx::create(m_ctx, m_memory->scratchpad(), m_algorithm.memory(), N);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue