1
0
mirror of https://github.com/xmrig/xmrig.git synced 2025-12-17 19:42:38 -05:00

xmrig v6.2.2 based release

This commit is contained in:
MoneroOcean
2020-06-30 08:12:59 -07:00
16 changed files with 136 additions and 34 deletions

View File

@@ -83,7 +83,8 @@ xmrig::OclWorker::OclWorker(size_t id, const OclLaunchData &data) :
m_algorithm(data.algorithm),
m_miner(data.miner),
m_intensity(data.thread.intensity()),
m_sharedData(OclSharedState::get(data.device.index()))
m_sharedData(OclSharedState::get(data.device.index())),
m_deviceIndex(data.device.index())
{
switch (m_algorithm.family()) {
case Algorithm::RANDOM_X:
@@ -210,7 +211,7 @@ void xmrig::OclWorker::start()
}
if (results[0xFF] > 0) {
JobResults::submit(m_job.currentJob(), results, results[0xFF]);
JobResults::submit(m_job.currentJob(), results, results[0xFF], m_deviceIndex);
}
if (!Nonce::isOutdated(Nonce::OPENCL, m_job.sequence()) && !m_job.nextRound(roundSize(runnerRoundSize), runnerRoundSize)) {

View File

@@ -69,6 +69,7 @@ private:
IOclRunner *m_runner = nullptr;
OclSharedData &m_sharedData;
WorkerJob<1> m_job;
uint32_t m_deviceIndex;
};

View File

@@ -36,27 +36,29 @@ bool AdlLib::m_ready = false;
static const std::string kPrefix = "/sys/bus/pci/drivers/amdgpu/";
static inline bool sysfs_is_file(const char *path)
static inline bool sysfs_is_file(const std::string &path)
{
struct stat sb;
return stat(path, &sb) == 0 && ((sb.st_mode & S_IFMT) == S_IFREG);
return stat(path.c_str(), &sb) == 0 && ((sb.st_mode & S_IFMT) == S_IFREG);
}
static inline std::string sysfs_prefix(const PciTopology &topology)
static inline bool sysfs_is_amdgpu(const std::string &path)
{
std::string path = kPrefix + "0000:" + topology.toString().data() + "/hwmon/hwmon";
if (sysfs_is_file((path + "2/name").c_str())) {
return path + "2/";
if (!sysfs_is_file(path)) {
return false;
}
if (sysfs_is_file((path + "3/name").c_str())) {
return path + "3/";
std::ifstream file(path);
if (!file.is_open()) {
return false;
}
return {};
std::string name;
std::getline(file, name);
return name == "amdgpu";
}
@@ -74,6 +76,21 @@ uint32_t sysfs_read(const std::string &path)
}
static inline std::string sysfs_prefix(const PciTopology &topology)
{
const std::string path = kPrefix + "0000:" + topology.toString().data() + "/hwmon/hwmon";
for (uint32_t i = 1; i < 10; ++i) {
const std::string prefix = path + std::to_string(i) + "/";
if (sysfs_is_amdgpu(prefix + "name") && sysfs_read(prefix + "freq1_input")) {
return prefix;
}
}
return {};
}
} // namespace xmrig