mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-15 22:54:00 +00:00
Kernel: Address Feedback 2
This commit is contained in:
parent
a3524879be
commit
e28c7f5217
2 changed files with 6 additions and 9 deletions
|
@ -410,7 +410,7 @@ ResultCode Thread::SetCoreAndAffinityMask(s32 new_core, u64 new_affinity_mask) {
|
|||
};
|
||||
|
||||
const bool use_override = affinity_override_count != 0;
|
||||
if (new_core == static_cast<s32>(CoreFlags::DontChangeIdealCore)) {
|
||||
if (new_core == THREADDONTCHANGE_IDEAL) {
|
||||
new_core = use_override ? ideal_core_override : ideal_core;
|
||||
if ((new_affinity_mask & (1ULL << new_core)) == 0) {
|
||||
return ERR_INVALID_COMBINATION;
|
||||
|
@ -452,7 +452,7 @@ void Thread::AdjustSchedulingOnStatus(u32 old_flags) {
|
|||
|
||||
for (s32 core = 0; core < GlobalScheduler::NUM_CPU_CORES; core++) {
|
||||
if (core != processor_id && ((affinity_mask >> core) & 1) != 0) {
|
||||
scheduler.Unsuggest(current_priority, core, this);
|
||||
scheduler.Unsuggest(current_priority, static_cast<u32>(core), this);
|
||||
}
|
||||
}
|
||||
} else if (GetSchedulingStatus() == ThreadSchedStatus::Runnable) {
|
||||
|
@ -463,7 +463,7 @@ void Thread::AdjustSchedulingOnStatus(u32 old_flags) {
|
|||
|
||||
for (s32 core = 0; core < GlobalScheduler::NUM_CPU_CORES; core++) {
|
||||
if (core != processor_id && ((affinity_mask >> core) & 1) != 0) {
|
||||
scheduler.Suggest(current_priority, core, this);
|
||||
scheduler.Suggest(current_priority, static_cast<u32>(core), this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,6 +35,9 @@ enum ThreadProcessorId : s32 {
|
|||
/// Run thread on the ideal core specified by the process.
|
||||
THREADPROCESSORID_IDEAL = -2,
|
||||
|
||||
/// when setting Core and Affiny, keeps the ideal core intact
|
||||
THREADDONTCHANGE_IDEAL = -3,
|
||||
|
||||
/// Indicates that the preferred processor ID shouldn't be updated in
|
||||
/// a core mask setting operation.
|
||||
THREADPROCESSORID_DONT_UPDATE = -3,
|
||||
|
@ -95,12 +98,6 @@ enum class ThreadSchedMasks : u32 {
|
|||
ForcePauseMask = 0x0070,
|
||||
};
|
||||
|
||||
enum class CoreFlags : s32 {
|
||||
IgnoreIdealCore = -1,
|
||||
ProcessIdealCore = -2,
|
||||
DontChangeIdealCore = -3,
|
||||
};
|
||||
|
||||
class Thread final : public WaitObject {
|
||||
public:
|
||||
using MutexWaitingThreads = std::vector<SharedPtr<Thread>>;
|
||||
|
|
Loading…
Reference in a new issue