Fixed automatic threads mode for --av above 4
This commit is contained in:
parent
9e3f2ae9f9
commit
b32ec5342e
6 changed files with 63 additions and 69 deletions
|
@ -54,6 +54,12 @@ xmrig::CpuThread::~CpuThread()
|
|||
}
|
||||
|
||||
|
||||
bool xmrig::CpuThread::isSoftAES(AlgoVariant av)
|
||||
{
|
||||
return av == AV_SINGLE_SOFT || av == AV_DOUBLE_SOFT || av > AV_PENTA;
|
||||
}
|
||||
|
||||
|
||||
xmrig::CpuThread::cn_hash_fun xmrig::CpuThread::fn(Algo algorithm, AlgoVariant av, Variant variant)
|
||||
{
|
||||
assert(variant == VARIANT_NONE || variant == VARIANT_V1);
|
||||
|
@ -138,42 +144,6 @@ xmrig::CpuThread *xmrig::CpuThread::createFromAV(size_t index, Algo algorithm, A
|
|||
{
|
||||
assert(av > AV_AUTO && av < AV_MAX);
|
||||
|
||||
Multiway multiway = SingleWay;
|
||||
bool softAES = false;
|
||||
|
||||
switch (av) {
|
||||
case AV_SINGLE_SOFT:
|
||||
softAES = true;
|
||||
break;
|
||||
|
||||
case AV_DOUBLE_SOFT:
|
||||
softAES = true;
|
||||
case AV_DOUBLE:
|
||||
multiway = DoubleWay;
|
||||
break;
|
||||
|
||||
case AV_TRIPLE_SOFT:
|
||||
softAES = true;
|
||||
case AV_TRIPLE:
|
||||
multiway = TripleWay;
|
||||
break;
|
||||
|
||||
case AV_QUAD_SOFT:
|
||||
softAES = true;
|
||||
case AV_QUAD:
|
||||
multiway = QuadWay;
|
||||
break;
|
||||
|
||||
case AV_PENTA_SOFT:
|
||||
softAES = true;
|
||||
case AV_PENTA:
|
||||
multiway = PentaWay;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
int64_t cpuId = -1L;
|
||||
|
||||
if (affinity != -1L) {
|
||||
|
@ -193,7 +163,7 @@ xmrig::CpuThread *xmrig::CpuThread::createFromAV(size_t index, Algo algorithm, A
|
|||
}
|
||||
}
|
||||
|
||||
return new CpuThread(index, algorithm, av, multiway, cpuId, priority, softAES, false);
|
||||
return new CpuThread(index, algorithm, av, multiway(av), cpuId, priority, isSoftAES(av), false);
|
||||
}
|
||||
|
||||
|
||||
|
@ -242,6 +212,37 @@ xmrig::CpuThread::Data xmrig::CpuThread::parse(const rapidjson::Value &object)
|
|||
}
|
||||
|
||||
|
||||
xmrig::IThread::Multiway xmrig::CpuThread::multiway(AlgoVariant av)
|
||||
{
|
||||
switch (av) {
|
||||
case AV_SINGLE:
|
||||
case AV_SINGLE_SOFT:
|
||||
return SingleWay;
|
||||
|
||||
case AV_DOUBLE_SOFT:
|
||||
case AV_DOUBLE:
|
||||
return DoubleWay;
|
||||
|
||||
case AV_TRIPLE_SOFT:
|
||||
case AV_TRIPLE:
|
||||
return TripleWay;
|
||||
|
||||
case AV_QUAD_SOFT:
|
||||
case AV_QUAD:
|
||||
return QuadWay;
|
||||
|
||||
case AV_PENTA_SOFT:
|
||||
case AV_PENTA:
|
||||
return PentaWay;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return SingleWay;
|
||||
}
|
||||
|
||||
|
||||
#ifndef XMRIG_NO_API
|
||||
rapidjson::Value xmrig::CpuThread::toAPI(rapidjson::Document &doc) const
|
||||
{
|
||||
|
|
|
@ -61,10 +61,12 @@ public:
|
|||
|
||||
typedef void (*cn_hash_fun)(const uint8_t *input, size_t size, uint8_t *output, cryptonight_ctx **ctx);
|
||||
|
||||
static bool isSoftAES(AlgoVariant av);
|
||||
static cn_hash_fun fn(Algo algorithm, AlgoVariant av, Variant variant);
|
||||
static CpuThread *createFromAV(size_t index, Algo algorithm, AlgoVariant av, int64_t affinity, int priority);
|
||||
static CpuThread *createFromData(size_t index, Algo algorithm, const CpuThread::Data &data, int priority, bool softAES);
|
||||
static Data parse(const rapidjson::Value &object);
|
||||
static Multiway multiway(AlgoVariant av);
|
||||
|
||||
inline bool isPrefetch() const { return m_prefetch; }
|
||||
inline bool isSoftAES() const { return m_softAES; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue