mirror of
https://github.com/xmrig/xmrig.git
synced 2024-11-18 18:11:05 +00:00
Merge branch 'dev'
This commit is contained in:
commit
2c38f693d7
8 changed files with 29 additions and 6 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
# v2.9.4
|
||||||
|
- [#913](https://github.com/xmrig/xmrig/issues/913) Fixed Masari (MSR) support (this update required for upcoming fork).
|
||||||
|
- [#915](https://github.com/xmrig/xmrig/pull/915) Improved security, JIT memory now read-only after patching.
|
||||||
|
|
||||||
# v2.9.3
|
# v2.9.3
|
||||||
- [#909](https://github.com/xmrig/xmrig/issues/909) Fixed compile errors on FreeBSD.
|
- [#909](https://github.com/xmrig/xmrig/issues/909) Fixed compile errors on FreeBSD.
|
||||||
- [#912](https://github.com/xmrig/xmrig/pull/912) Fixed, C++ implementation of `cn/half` was produce up to 13% of invalid hashes.
|
- [#912](https://github.com/xmrig/xmrig/pull/912) Fixed, C++ implementation of `cn/half` was produce up to 13% of invalid hashes.
|
||||||
|
|
|
@ -61,6 +61,7 @@ public:
|
||||||
static void release(cryptonight_ctx **ctx, size_t count, MemInfo &info);
|
static void release(cryptonight_ctx **ctx, size_t count, MemInfo &info);
|
||||||
|
|
||||||
static void *allocateExecutableMemory(size_t size);
|
static void *allocateExecutableMemory(size_t size);
|
||||||
|
static void protectExecutableMemory(void *p, size_t size);
|
||||||
static void flushInstructionCache(void *p, size_t size);
|
static void flushInstructionCache(void *p, size_t size);
|
||||||
|
|
||||||
static inline bool isHugepagesAvailable() { return (m_flags & HugepagesAvailable) != 0; }
|
static inline bool isHugepagesAvailable() { return (m_flags & HugepagesAvailable) != 0; }
|
||||||
|
|
|
@ -100,6 +100,12 @@ void *Mem::allocateExecutableMemory(size_t size)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Mem::protectExecutableMemory(void *p, size_t size)
|
||||||
|
{
|
||||||
|
mprotect(p, size, PROT_READ | PROT_EXEC);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Mem::flushInstructionCache(void *p, size_t size)
|
void Mem::flushInstructionCache(void *p, size_t size)
|
||||||
{
|
{
|
||||||
# ifndef __FreeBSD__
|
# ifndef __FreeBSD__
|
||||||
|
|
|
@ -191,6 +191,13 @@ void *Mem::allocateExecutableMemory(size_t size)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Mem::protectExecutableMemory(void *p, size_t size)
|
||||||
|
{
|
||||||
|
DWORD oldProtect;
|
||||||
|
VirtualProtect(p, size, PAGE_EXECUTE_READ, &oldProtect);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Mem::flushInstructionCache(void *p, size_t size)
|
void Mem::flushInstructionCache(void *p, size_t size)
|
||||||
{
|
{
|
||||||
::FlushInstructionCache(GetCurrentProcess(), p, size);
|
::FlushInstructionCache(GetCurrentProcess(), p, size);
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||||
* Copyright 2018 Lee Clagett <https://github.com/vtnerd>
|
* Copyright 2018 Lee Clagett <https://github.com/vtnerd>
|
||||||
* Copyright 2018 SChernykh <https://github.com/SChernykh>
|
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh>
|
||||||
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -38,6 +38,10 @@
|
||||||
class Job
|
class Job
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
// Max blob size is 84 (75 fixed + 9 variable), aligned to 96. https://github.com/xmrig/xmrig/issues/1 Thanks fireice-uk.
|
||||||
|
// SECOR increase requirements for blob size: https://github.com/xmrig/xmrig/issues/913
|
||||||
|
static constexpr const size_t kMaxBlobSize = 128;
|
||||||
|
|
||||||
Job();
|
Job();
|
||||||
Job(int poolId, bool nicehash, const xmrig::Algorithm &algorithm, const xmrig::Id &clientId);
|
Job(int poolId, bool nicehash, const xmrig::Algorithm &algorithm, const xmrig::Id &clientId);
|
||||||
~Job();
|
~Job();
|
||||||
|
@ -95,7 +99,7 @@ private:
|
||||||
size_t m_size;
|
size_t m_size;
|
||||||
uint64_t m_diff;
|
uint64_t m_diff;
|
||||||
uint64_t m_target;
|
uint64_t m_target;
|
||||||
uint8_t m_blob[96]; // Max blob size is 84 (75 fixed + 9 variable), aligned to 96. https://github.com/xmrig/xmrig/issues/1 Thanks fireice-uk.
|
uint8_t m_blob[kMaxBlobSize];
|
||||||
xmrig::Algorithm m_algorithm;
|
xmrig::Algorithm m_algorithm;
|
||||||
xmrig::Id m_clientId;
|
xmrig::Id m_clientId;
|
||||||
xmrig::Id m_id;
|
xmrig::Id m_id;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#define APP_ID "xmrig"
|
#define APP_ID "xmrig"
|
||||||
#define APP_NAME "XMRig"
|
#define APP_NAME "XMRig"
|
||||||
#define APP_DESC "XMRig CPU miner"
|
#define APP_DESC "XMRig CPU miner"
|
||||||
#define APP_VERSION "2.9.3"
|
#define APP_VERSION "2.9.4-dev"
|
||||||
#define APP_DOMAIN "xmrig.com"
|
#define APP_DOMAIN "xmrig.com"
|
||||||
#define APP_SITE "www.xmrig.com"
|
#define APP_SITE "www.xmrig.com"
|
||||||
#define APP_COPYRIGHT "Copyright (C) 2016-2019 xmrig.com"
|
#define APP_COPYRIGHT "Copyright (C) 2016-2019 xmrig.com"
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
#define APP_VER_MAJOR 2
|
#define APP_VER_MAJOR 2
|
||||||
#define APP_VER_MINOR 9
|
#define APP_VER_MINOR 9
|
||||||
#define APP_VER_PATCH 3
|
#define APP_VER_PATCH 4
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
# if (_MSC_VER >= 1910)
|
# if (_MSC_VER >= 1910)
|
||||||
|
|
|
@ -118,6 +118,7 @@ void xmrig::CpuThread::patchAsmVariants()
|
||||||
patchCode(cn_half_mainloop_bulldozer_asm, cnv2_mainloop_bulldozer_asm, xmrig::CRYPTONIGHT_HALF_ITER, xmrig::CRYPTONIGHT_MASK);
|
patchCode(cn_half_mainloop_bulldozer_asm, cnv2_mainloop_bulldozer_asm, xmrig::CRYPTONIGHT_HALF_ITER, xmrig::CRYPTONIGHT_MASK);
|
||||||
patchCode(cn_half_double_mainloop_sandybridge_asm, cnv2_double_mainloop_sandybridge_asm, xmrig::CRYPTONIGHT_HALF_ITER, xmrig::CRYPTONIGHT_MASK);
|
patchCode(cn_half_double_mainloop_sandybridge_asm, cnv2_double_mainloop_sandybridge_asm, xmrig::CRYPTONIGHT_HALF_ITER, xmrig::CRYPTONIGHT_MASK);
|
||||||
|
|
||||||
|
Mem::protectExecutableMemory(base, allocation_size);
|
||||||
Mem::flushInstructionCache(base, allocation_size);
|
Mem::flushInstructionCache(base, allocation_size);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||||
* Copyright 2018 Lee Clagett <https://github.com/vtnerd>
|
* Copyright 2018 Lee Clagett <https://github.com/vtnerd>
|
||||||
* Copyright 2018 SChernykh <https://github.com/SChernykh>
|
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh>
|
||||||
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -60,7 +60,7 @@ private:
|
||||||
|
|
||||||
struct State
|
struct State
|
||||||
{
|
{
|
||||||
alignas(16) uint8_t blob[96 * N];
|
alignas(16) uint8_t blob[Job::kMaxBlobSize * N];
|
||||||
Job job;
|
Job job;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue