Kernel: Address Feedback 2
This commit is contained in:
		
				
					committed by
					
						
						FernandoS27
					
				
			
			
				
	
			
			
			
						parent
						
							a3524879be
						
					
				
				
					commit
					e28c7f5217
				
			@@ -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>>;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user