A data processing system with technology for dynamically grouping threads, the data processing system with a processor (12; 1100; 1210, 1215; 1315, 1370, 1380; 1510) comprising: a first core comprising multiple logical processors, LPs (22, 24, 32, 34); a second core comprising multiple LPs (22, 24, 32, 34); a machine-readable medium responsive to the first and second cores (20, 30; 1102); and an operating system, OS, stored at least in part in the machine-readable medium, wherein the OS, when executed in the data processing system, enables the data processing system to perform operations comprising: selecting one of the LPs (22, 24, 32, 34) in the processor (12; 1100; 1210, 1215; 1315, 1370, 1380; 1510) to receive a new low-priority thread; and assigning the new low-priority thread to the selected LP; and wherein the operation of selecting one of the LPs (22, 24, 32, 34) in the processor (12; 1100; 1210, 1215; 1315, 1370, 1380; 1510) to receive the new low-priority thread comprises: when the first core has multiple idle LPs (22, 24, 32, 34), automatically determining whether the second core has (a) an idle LP (22, 24, 32, 34) and (b) a busy LP (22, 24, 32, 34) that is executing a current low-priority thread; and in response to determining that the second core has (a) an idle LP (22, 24, 32, 34) and (b) a busy LP (22, 24, 32, 34) that is executing a current low-priority thread, automatically selecting the idle LP in the second core to receive the new low-priority thread. a first core comprising multiple logical processors, LPs (22, 24, 32, 34); a second core comprising multiple LPs (22, 24, 32, 34); a machine-readable medium responsive to the first and second cores (20, 30; 1102); and an operating system, OS, stored at least in part in the machine-readable medium, wherein the OS, when executed in the data processing system, enables the data processing system to perform operations comprising: selecting one of the LPs (22, 24, 32, 34) in the processor (12; 1100; 1210, 1215; 1315, 1370, 1380; 1510) to receive a new low-priority thread; and assigning the new low-priority thread to the selected LP; and selecting one of the LPs (22, 24, 32, 34) in the processor (12; 1100; 1210, 1215; 1315, 1370, 1380; 1510) to receive a new low-priority thread; and assigning the new low-priority thread to the selected LP; and wherein the operation of selecting one of the LPs (22, 24, 32, 34) in the processor (12; 1100; 1210, 1215; 1315, 1370, 1380; 1510) to receive the new low-priority thread comprises: when the first core has multiple idle LPs (22, 24, 32, 34), automatically determining whether the second core has (a) an idle LP (22, 24, 32, 34) and (b) a busy LP (22, 24, 32, 34) that is executing a current low-priority thread; and in response to determining that the second core has (a) an idle LP (22, 24, 32, 34) and (b) a busy LP (22, 24, 32, 34) that is executing a current low-priority thread, automatically selecting the idle LP in the second core to receive the new low-priority thread. when the first core has multiple idle LPs (22, 24, 32, 34), automatically determining whether the second core has (a) an idle LP (22, 24, 32, 34) and (b) a busy LP (22, 24, 32, 34) that is executing a current low-priority thread; and in response to determining that the second core has (a) an idle LP (22, 24, 32, 34) and (b) a busy LP (22, 24, 32, 34) that is executing a current low-priority thread, automatically selecting the idle LP in the second core to receive the new low-priority thread.