mirror of
https://github.com/cyring/CoreFreq.git
synced 2025-07-23 12:13:07 +02:00
[aarch64][riscv64][ppc64] Use exclusive load/store for selected shared variables
This commit is contained in:
@@ -679,7 +679,7 @@ void ThermalPoint(RO(SHM_STRUCT) *RO(Shm), RO(PROC) *RO(Proc))
|
|||||||
void Technology_Update( RO(SHM_STRUCT) *RO(Shm),
|
void Technology_Update( RO(SHM_STRUCT) *RO(Shm),
|
||||||
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
||||||
{ /* Technologies aggregation. */
|
{ /* Technologies aggregation. */
|
||||||
RO(Shm)->Proc.Technology.VM = BITWISEAND_CC(LOCKLESS,
|
RO(Shm)->Proc.Technology.VM = BITWISEAND_CC(BUS_LOCK,
|
||||||
RW(Proc)->VM,
|
RW(Proc)->VM,
|
||||||
RO(Proc)->CR_Mask) != 0;
|
RO(Proc)->CR_Mask) != 0;
|
||||||
}
|
}
|
||||||
@@ -688,27 +688,27 @@ void Mitigation_Stage( RO(SHM_STRUCT) *RO(Shm),
|
|||||||
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
||||||
{
|
{
|
||||||
const unsigned short
|
const unsigned short
|
||||||
CLRBHB = BITWISEAND_CC( LOCKLESS,
|
CLRBHB = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CLRBHB,
|
RW(Proc)->CLRBHB,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_1 = BITWISEAND_CC( LOCKLESS,
|
CSV2_1 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_1,
|
RW(Proc)->CSV2_1,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_2 = BITWISEAND_CC( LOCKLESS,
|
CSV2_2 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_2,
|
RW(Proc)->CSV2_2,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_3 = BITWISEAND_CC( LOCKLESS,
|
CSV2_3 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_3,
|
RW(Proc)->CSV2_3,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV3 = BITWISEAND_CC( LOCKLESS,
|
CSV3 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV3,
|
RW(Proc)->CSV3,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
SSBS = BITCMP_CC( LOCKLESS,
|
SSBS = BITCMP_CC( BUS_LOCK,
|
||||||
RW(Proc)->SSBS,
|
RW(Proc)->SSBS,
|
||||||
RO(Proc)->SPEC_CTRL_Mask );
|
RO(Proc)->SPEC_CTRL_Mask );
|
||||||
|
|
||||||
|
@@ -2819,9 +2819,9 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
: "cc", "memory", "%x11", "%x12", "%x13", "%x14"
|
: "cc", "memory", "%x11", "%x12", "%x13", "%x14"
|
||||||
);
|
);
|
||||||
if (mmfr1.VH) {
|
if (mmfr1.VH) {
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RW(Proc))->VM, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RW(Proc))->VM, Core->Bind);
|
||||||
} else {
|
} else {
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->VM, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->VM, Core->Bind);
|
||||||
}
|
}
|
||||||
Core->Query.SCTLRX = 0;
|
Core->Query.SCTLRX = 0;
|
||||||
if (Experimental) {
|
if (Experimental) {
|
||||||
@@ -2836,9 +2836,9 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (isar2.CLRBHB == 0b0001) {
|
if (isar2.CLRBHB == 0b0001) {
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RW(Proc))->CLRBHB, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RW(Proc))->CLRBHB, Core->Bind);
|
||||||
} else {
|
} else {
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CLRBHB, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CLRBHB, Core->Bind);
|
||||||
}
|
}
|
||||||
switch (pfr0.EL3) {
|
switch (pfr0.EL3) {
|
||||||
case 0b0010:
|
case 0b0010:
|
||||||
@@ -2879,38 +2879,38 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
}
|
}
|
||||||
switch (pfr0.CSV2) {
|
switch (pfr0.CSV2) {
|
||||||
case 0b0001:
|
case 0b0001:
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_1, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_1, Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_2, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_2, Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_3, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_3, Core->Bind);
|
||||||
break;
|
break;
|
||||||
case 0b0010:
|
case 0b0010:
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_1, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_1, Core->Bind);
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_2, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_2, Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_3, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_3, Core->Bind);
|
||||||
break;
|
break;
|
||||||
case 0b0011:
|
case 0b0011:
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_1, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_1, Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_2, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_2, Core->Bind);
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_3, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_3, Core->Bind);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_1, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_1, Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_2, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_2, Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_3, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_3, Core->Bind);
|
||||||
}
|
}
|
||||||
if (pfr0.CSV3) {
|
if (pfr0.CSV3) {
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV3, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV3, Core->Bind);
|
||||||
} else {
|
} else {
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV3, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV3, Core->Bind);
|
||||||
}
|
}
|
||||||
if (PUBLIC(RO(Proc))->Features.SSBS == 0b0010)
|
if (PUBLIC(RO(Proc))->Features.SSBS == 0b0010)
|
||||||
{
|
{
|
||||||
SSBS2 mrs_ssbs = {.value = SysRegRead(MRS_SSBS2)};
|
SSBS2 mrs_ssbs = {.value = SysRegRead(MRS_SSBS2)};
|
||||||
|
|
||||||
if (mrs_ssbs.SSBS) {
|
if (mrs_ssbs.SSBS) {
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RW(Proc))->SSBS, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RW(Proc))->SSBS, Core->Bind);
|
||||||
} else {
|
} else {
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->SSBS, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->SSBS, Core->Bind);
|
||||||
}
|
}
|
||||||
Core->SystemRegister.FLAGS |= (1LLU << FLAG_SSBS);
|
Core->SystemRegister.FLAGS |= (1LLU << FLAG_SSBS);
|
||||||
}
|
}
|
||||||
@@ -2960,7 +2960,7 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
volatile unsigned long long fpmr = SysRegRead(MRS_FPMR);
|
volatile unsigned long long fpmr = SysRegRead(MRS_FPMR);
|
||||||
UNUSED(fpmr); /*TODO*/
|
UNUSED(fpmr); /*TODO*/
|
||||||
}
|
}
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RO(Proc))->CR_Mask, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RO(Proc))->CR_Mask, Core->Bind);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define Pkg_Reset_ThermalPoint(Pkg) \
|
#define Pkg_Reset_ThermalPoint(Pkg) \
|
||||||
@@ -2972,17 +2972,17 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
|
|
||||||
static void PerCore_Reset(CORE_RO *Core)
|
static void PerCore_Reset(CORE_RO *Core)
|
||||||
{
|
{
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->HWP_Mask , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->HWP_Mask , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->CR_Mask , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->CR_Mask , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
||||||
|
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->HWP , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->HWP , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_1 , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_1 , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_2 , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_2 , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV2_3 , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV2_3 , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->CSV3 , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->CSV3 , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->SSBS , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->SSBS , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->VM , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->VM , Core->Bind);
|
||||||
|
|
||||||
BITWISECLR(LOCKLESS, Core->ThermalPoint.Mask);
|
BITWISECLR(LOCKLESS, Core->ThermalPoint.Mask);
|
||||||
BITWISECLR(LOCKLESS, Core->ThermalPoint.Kind);
|
BITWISECLR(LOCKLESS, Core->ThermalPoint.Kind);
|
||||||
@@ -3041,7 +3041,7 @@ static void PerCore_GenericMachine(void *arg)
|
|||||||
|
|
||||||
SystemRegisters(Core);
|
SystemRegisters(Core);
|
||||||
|
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 56)
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 56)
|
||||||
|
@@ -679,7 +679,7 @@ void ThermalPoint(RO(SHM_STRUCT) *RO(Shm), RO(PROC) *RO(Proc))
|
|||||||
void Technology_Update( RO(SHM_STRUCT) *RO(Shm),
|
void Technology_Update( RO(SHM_STRUCT) *RO(Shm),
|
||||||
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
||||||
{ /* Technologies aggregation. */
|
{ /* Technologies aggregation. */
|
||||||
RO(Shm)->Proc.Technology.VM = BITWISEAND_CC(LOCKLESS,
|
RO(Shm)->Proc.Technology.VM = BITWISEAND_CC(BUS_LOCK,
|
||||||
RW(Proc)->VM,
|
RW(Proc)->VM,
|
||||||
RO(Proc)->CR_Mask) != 0;
|
RO(Proc)->CR_Mask) != 0;
|
||||||
}
|
}
|
||||||
@@ -688,27 +688,27 @@ void Mitigation_Stage( RO(SHM_STRUCT) *RO(Shm),
|
|||||||
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
||||||
{
|
{
|
||||||
/* const unsigned short
|
/* const unsigned short
|
||||||
CLRBHB = BITWISEAND_CC( LOCKLESS,
|
CLRBHB = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CLRBHB,
|
RW(Proc)->CLRBHB,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_1 = BITWISEAND_CC( LOCKLESS,
|
CSV2_1 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_1,
|
RW(Proc)->CSV2_1,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_2 = BITWISEAND_CC( LOCKLESS,
|
CSV2_2 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_2,
|
RW(Proc)->CSV2_2,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_3 = BITWISEAND_CC( LOCKLESS,
|
CSV2_3 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_3,
|
RW(Proc)->CSV2_3,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV3 = BITWISEAND_CC( LOCKLESS,
|
CSV3 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV3,
|
RW(Proc)->CSV3,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
SSBS = BITCMP_CC( LOCKLESS,
|
SSBS = BITCMP_CC( BUS_LOCK,
|
||||||
RW(Proc)->SSBS,
|
RW(Proc)->SSBS,
|
||||||
RO(Proc)->SPEC_CTRL_Mask );
|
RO(Proc)->SPEC_CTRL_Mask );
|
||||||
*/
|
*/
|
||||||
|
@@ -1456,7 +1456,7 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
: "i" (0xfffffffffffffff9), "i" (0x7)
|
: "i" (0xfffffffffffffff9), "i" (0x7)
|
||||||
: "%14", "%15", "cc", "memory"
|
: "%14", "%15", "cc", "memory"
|
||||||
);
|
);
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RO(Proc))->CR_Mask, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RO(Proc))->CR_Mask, Core->Bind);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define Pkg_Reset_ThermalPoint(Pkg) \
|
#define Pkg_Reset_ThermalPoint(Pkg) \
|
||||||
@@ -1468,12 +1468,12 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
|
|
||||||
static void PerCore_Reset(CORE_RO *Core)
|
static void PerCore_Reset(CORE_RO *Core)
|
||||||
{
|
{
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->HWP_Mask , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->HWP_Mask , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->CR_Mask , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->CR_Mask , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
||||||
|
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->HWP , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->HWP , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->VM , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->VM , Core->Bind);
|
||||||
|
|
||||||
BITWISECLR(LOCKLESS, Core->ThermalPoint.Mask);
|
BITWISECLR(LOCKLESS, Core->ThermalPoint.Mask);
|
||||||
BITWISECLR(LOCKLESS, Core->ThermalPoint.Kind);
|
BITWISECLR(LOCKLESS, Core->ThermalPoint.Kind);
|
||||||
@@ -1500,7 +1500,7 @@ static void PerCore_GenericMachine(void *arg)
|
|||||||
|
|
||||||
SystemRegisters(Core);
|
SystemRegisters(Core);
|
||||||
|
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 56)
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 56)
|
||||||
|
@@ -679,7 +679,7 @@ void ThermalPoint(RO(SHM_STRUCT) *RO(Shm), RO(PROC) *RO(Proc))
|
|||||||
void Technology_Update( RO(SHM_STRUCT) *RO(Shm),
|
void Technology_Update( RO(SHM_STRUCT) *RO(Shm),
|
||||||
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
||||||
{ /* Technologies aggregation. */
|
{ /* Technologies aggregation. */
|
||||||
RO(Shm)->Proc.Technology.VM = BITWISEAND_CC(LOCKLESS,
|
RO(Shm)->Proc.Technology.VM = BITWISEAND_CC(BUS_LOCK,
|
||||||
RW(Proc)->VM,
|
RW(Proc)->VM,
|
||||||
RO(Proc)->CR_Mask) != 0;
|
RO(Proc)->CR_Mask) != 0;
|
||||||
}
|
}
|
||||||
@@ -688,27 +688,27 @@ void Mitigation_Stage( RO(SHM_STRUCT) *RO(Shm),
|
|||||||
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
RO(PROC) *RO(Proc), RW(PROC) *RW(Proc) )
|
||||||
{
|
{
|
||||||
/* const unsigned short
|
/* const unsigned short
|
||||||
CLRBHB = BITWISEAND_CC( LOCKLESS,
|
CLRBHB = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CLRBHB,
|
RW(Proc)->CLRBHB,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_1 = BITWISEAND_CC( LOCKLESS,
|
CSV2_1 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_1,
|
RW(Proc)->CSV2_1,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_2 = BITWISEAND_CC( LOCKLESS,
|
CSV2_2 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_2,
|
RW(Proc)->CSV2_2,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV2_3 = BITWISEAND_CC( LOCKLESS,
|
CSV2_3 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV2_3,
|
RW(Proc)->CSV2_3,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
CSV3 = BITWISEAND_CC( LOCKLESS,
|
CSV3 = BITWISEAND_CC( BUS_LOCK,
|
||||||
RW(Proc)->CSV3,
|
RW(Proc)->CSV3,
|
||||||
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
RO(Proc)->SPEC_CTRL_Mask) != 0,
|
||||||
|
|
||||||
SSBS = BITCMP_CC( LOCKLESS,
|
SSBS = BITCMP_CC( BUS_LOCK,
|
||||||
RW(Proc)->SSBS,
|
RW(Proc)->SSBS,
|
||||||
RO(Proc)->SPEC_CTRL_Mask );
|
RO(Proc)->SPEC_CTRL_Mask );
|
||||||
*/
|
*/
|
||||||
|
@@ -1443,7 +1443,7 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
:
|
:
|
||||||
: "memory"
|
: "memory"
|
||||||
);
|
);
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RO(Proc))->CR_Mask, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RO(Proc))->CR_Mask, Core->Bind);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define Pkg_Reset_ThermalPoint(Pkg) \
|
#define Pkg_Reset_ThermalPoint(Pkg) \
|
||||||
@@ -1455,12 +1455,12 @@ static void SystemRegisters(CORE_RO *Core)
|
|||||||
|
|
||||||
static void PerCore_Reset(CORE_RO *Core)
|
static void PerCore_Reset(CORE_RO *Core)
|
||||||
{
|
{
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->HWP_Mask , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->HWP_Mask , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->CR_Mask , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->CR_Mask , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
||||||
|
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->HWP , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->HWP , Core->Bind);
|
||||||
BITCLR_CC(LOCKLESS, PUBLIC(RW(Proc))->VM , Core->Bind);
|
BITCLR_CC(BUS_LOCK, PUBLIC(RW(Proc))->VM , Core->Bind);
|
||||||
|
|
||||||
BITWISECLR(LOCKLESS, Core->ThermalPoint.Mask);
|
BITWISECLR(LOCKLESS, Core->ThermalPoint.Mask);
|
||||||
BITWISECLR(LOCKLESS, Core->ThermalPoint.Kind);
|
BITWISECLR(LOCKLESS, Core->ThermalPoint.Kind);
|
||||||
@@ -1487,7 +1487,7 @@ static void PerCore_GenericMachine(void *arg)
|
|||||||
|
|
||||||
SystemRegisters(Core);
|
SystemRegisters(Core);
|
||||||
|
|
||||||
BITSET_CC(LOCKLESS, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
BITSET_CC(BUS_LOCK, PUBLIC(RO(Proc))->SPEC_CTRL_Mask, Core->Bind);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 56)
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 56)
|
||||||
|
Reference in New Issue
Block a user