mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[NTOS:KE] Fix some KAFFINITYs
This commit is contained in:
parent
a175a88fcb
commit
1ee23d33ac
3 changed files with 14 additions and 12 deletions
|
@ -137,7 +137,7 @@ extern LIST_ENTRY KiProcessInSwapListHead, KiProcessOutSwapListHead;
|
|||
extern LIST_ENTRY KiStackInSwapListHead;
|
||||
extern KEVENT KiSwapEvent;
|
||||
extern PKPRCB KiProcessorBlock[];
|
||||
extern ULONG_PTR KiIdleSummary;
|
||||
extern KAFFINITY KiIdleSummary;
|
||||
extern PVOID KeUserApcDispatcher;
|
||||
extern PVOID KeUserCallbackDispatcher;
|
||||
extern PVOID KeUserExceptionDispatcher;
|
||||
|
@ -379,7 +379,7 @@ UCHAR
|
|||
NTAPI
|
||||
KeFindNextRightSetAffinity(
|
||||
IN UCHAR Number,
|
||||
IN ULONG Set
|
||||
IN KAFFINITY Set
|
||||
);
|
||||
|
||||
VOID
|
||||
|
|
|
@ -20,9 +20,10 @@ extern LIST_ENTRY PspReaperListHead;
|
|||
UCHAR
|
||||
NTAPI
|
||||
KeFindNextRightSetAffinity(IN UCHAR Number,
|
||||
IN ULONG Set)
|
||||
IN KAFFINITY Set)
|
||||
{
|
||||
ULONG Bit, Result;
|
||||
KAFFINITY Bit;
|
||||
ULONG Result;
|
||||
ASSERT(Set != 0);
|
||||
|
||||
/* Calculate the mask */
|
||||
|
@ -32,7 +33,7 @@ KeFindNextRightSetAffinity(IN UCHAR Number,
|
|||
if (!Bit) Bit = Set;
|
||||
|
||||
/* Now find the right set and return it */
|
||||
BitScanReverse(&Result, Bit);
|
||||
BitScanReverseAffinity(&Result, Bit);
|
||||
return (UCHAR)Result;
|
||||
}
|
||||
|
||||
|
@ -491,7 +492,7 @@ KeStartThread(IN OUT PKTHREAD Thread)
|
|||
#ifdef CONFIG_SMP
|
||||
PKNODE Node;
|
||||
PKPRCB NodePrcb;
|
||||
ULONG Set, Mask;
|
||||
KAFFINITY Set, Mask;
|
||||
#endif
|
||||
UCHAR IdealProcessor = 0;
|
||||
PKPROCESS Process = Thread->ApcState.Process;
|
||||
|
@ -526,7 +527,7 @@ KeStartThread(IN OUT PKTHREAD Thread)
|
|||
#else
|
||||
Set = ~NodePrcb->MultiThreadProcessorSet;
|
||||
#endif
|
||||
Mask = (ULONG)(Node->ProcessorMask & Process->Affinity);
|
||||
Mask = Node->ProcessorMask & Process->Affinity;
|
||||
Set &= Mask;
|
||||
if (Set) Mask = Set;
|
||||
|
||||
|
@ -1122,7 +1123,8 @@ KeSetSystemAffinityThread(IN KAFFINITY Affinity)
|
|||
#ifdef CONFIG_SMP
|
||||
if (!(Affinity & AFFINITY_MASK(CurrentThread->IdealProcessor)))
|
||||
{
|
||||
ULONG AffinitySet, NodeMask;
|
||||
KAFFINITY AffinitySet, NodeMask;
|
||||
ULONG IdealProcessor;
|
||||
|
||||
/* It's not! Get the PRCB */
|
||||
Prcb = KiProcessorBlock[CurrentThread->IdealProcessor];
|
||||
|
@ -1137,8 +1139,8 @@ KeSetSystemAffinityThread(IN KAFFINITY Affinity)
|
|||
}
|
||||
|
||||
/* Calculate the ideal CPU from the affinity set */
|
||||
BitScanReverse(&NodeMask, AffinitySet);
|
||||
CurrentThread->IdealProcessor = (UCHAR)NodeMask;
|
||||
BitScanReverseAffinity(&IdealProcessor, AffinitySet);
|
||||
CurrentThread->IdealProcessor = (UCHAR)IdealProcessor;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,8 +22,8 @@
|
|||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
ULONG_PTR KiIdleSummary;
|
||||
ULONG_PTR KiIdleSMTSummary;
|
||||
KAFFINITY KiIdleSummary;
|
||||
KAFFINITY KiIdleSMTSummary;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
|
|
Loading…
Reference in a new issue