CPC G06F 9/5044 (2013.01) [G06F 9/4881 (2013.01); G06F 9/5088 (2013.01); G06F 9/4887 (2013.01); G06F 11/141 (2013.01); G06F 2209/501 (2013.01); G06F 2209/5018 (2013.01); G06F 2209/505 (2013.01)] | 18 Claims |
1. A method of operating a computing system comprising a first central processing unit (CPU) cluster and a second CPU cluster, wherein the first CPU cluster comprises first CPU cores that can access a first shared resource comprising a Bus Interface Unit (BIU), and the second CPU cluster comprises second CPU cores that can access a second shared resource, the method comprising:
determining a ratio wherein a numerator comprises: a number of BIU cycles in which a request queue of the BIU is full, and a denominator comprises: a count of total BIU cycles;
filtering the ratio for hysteresis;
comparing an output of the filtering against a tunable threshold;
determining that the BIU is overloaded based at least on the comparison;
determining that a first thread running on a first CPU core of the first CPU cores uses the first shared resource comprising the BIU that has experienced an overload, wherein the overload is based at least on a load-store unit (LSU) micro-operations level metric of the first CPU cluster;
setting a thread flag of the first thread based at least on the determination that the first thread uses the first shared resource that has experienced the overload; and
running the first thread on a second CPU core of the second CPU cores, based at least on the thread flag.
|