{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:11:46Z","timestamp":1763467906264,"version":"3.41.0"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2009,4,21]],"date-time":"2009-04-21T00:00:00Z","timestamp":1240272000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGOPS Oper. Syst. Rev."],"published-print":{"date-parts":[[2009,4,21]]},"abstract":"<jats:p>We address the software costs of switching threads between cores in a multicore processor. Fast core switching enables a variety of potential improvements, such as thread migration for thermal management, fine-grained load balancing, and exploiting asymmetric multicores, where performance asymmetry creates opportunities for more efficient resource utilization. Successful exploitation of these opportunities demands low core-switching costs. We describe our implementation of core switching in the Linux kernel, as well as software changes that can decrease switching costs. We use detailed simulations to evaluate several alternative implementations. We also explore how some simple architectural variations can reduce switching costs. We evaluate system efficiency using both real (but symmetric) hardware, and simulated asymmetric hardware, using both microbenchmarks and realistic applications.<\/jats:p>","DOI":"10.1145\/1531793.1531801","type":"journal-article","created":{"date-parts":[[2009,4,28]],"date-time":"2009-04-28T14:58:07Z","timestamp":1240930687000},"page":"35-45","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":18,"title":["Fast switching of threads between cores"],"prefix":"10.1145","volume":"43","author":[{"given":"Richard","family":"Strong","sequence":"first","affiliation":[{"name":"UC San Diego"}]},{"given":"Jayaram","family":"Mudigonda","sequence":"additional","affiliation":[{"name":"HP Labs"}]},{"given":"Jeffrey C.","family":"Mogul","sequence":"additional","affiliation":[{"name":"HP Labs"}]},{"given":"Nathan","family":"Binkert","sequence":"additional","affiliation":[{"name":"HP Labs"}]},{"given":"Dean","family":"Tullsen","sequence":"additional","affiliation":[{"name":"UC San Diego"}]}],"member":"320","published-online":{"date-parts":[[2009,4,21]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"J. Aas. Understanding the Linux 2.6.8.1 CPU Scheduler. http:\/\/josh.trancesoftware.com\/linux\/ Feb. 2005.  J. Aas. Understanding the Linux 2.6.8.1 CPU Scheduler. http:\/\/josh.trancesoftware.com\/linux\/ Feb. 2005."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2005.51"},{"key":"e_1_2_1_3_1","first-page":"1","volume-title":"Instruction- Level Parallelism","author":"Becchi M.","year":"2008","unstructured":"M. Becchi and P. Crowley . Dynamic Thread Assignment on Heterogeneous Multiprocessor Architectures. J . Instruction- Level Parallelism , pages 1 -- 26 , June 2008 . M. Becchi and P. Crowley. Dynamic Thread Assignment on Heterogeneous Multiprocessor Architectures. J. Instruction- Level Parallelism, pages 1--26, June 2008."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2006.82"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/339647.339657"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375527.1375541"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/1032648.1033337"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346298"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1105734.1105745"},{"key":"e_1_2_1_10_1","volume-title":"Personal communication","author":"Fedorova A.","year":"2009","unstructured":"A. Fedorova . Personal communication , 2009 . A. Fedorova. Personal communication, 2009."},{"key":"e_1_2_1_11_1","volume-title":"Proc. Workshop on Op. Sys. Support for Heterogeneous Multicore Architectures","author":"Fedorova A.","year":"2007","unstructured":"A. Fedorova , D. Vengerov , and D. Doucette . Operating System Scheduling On Heterogeneous Core Systems . In Proc. Workshop on Op. Sys. Support for Heterogeneous Multicore Architectures , 2007 . A. Fedorova, D. Vengerov, and D. Doucette. Operating System Scheduling On Heterogeneous Core Systems. In Proc. Workshop on Op. Sys. Support for Heterogeneous Multicore Architectures, 2007."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.5555\/1898699.1898829"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/871506.871561"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2008.209"},{"key":"e_1_2_1_15_1","volume-title":"Proc. Workshop on Modeling, Benchmarking, and Simulation","author":"Hsu L.R.","year":"2005","unstructured":"L.R. Hsu , A.G. Saidi , N.L. Binkert , and S.K. Reinhardt . Sampling and Stability in TCP\/IP cworkloads . In Proc. Workshop on Modeling, Benchmarking, and Simulation , Jun. 2005 . L.R. Hsu, A.G. Saidi, N.L. Binkert, and S.K. Reinhardt. Sampling and Stability in TCP\/IP cworkloads. In Proc. Workshop on Modeling, Benchmarking, and Simulation, Jun. 2005."},{"key":"e_1_2_1_16_1","volume-title":"Intel Core 2 Duo Processors and Intel Core 2 Extreme Processors on 45-nm Process: Datasheet. Document Number","author":"Intel Corp.","year":"2012","unstructured":"Intel Corp. Intel Core 2 Duo Processors and Intel Core 2 Extreme Processors on 45-nm Process: Datasheet. Document Number 3 2012 0, Jul 2008. Intel Corp. Intel Core 2 Duo Processors and Intel Core 2 Extreme Processors on 45-nm Process: Datasheet. Document Number 320120, Jul 2008."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISSCC.2007.373412"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/121132.286599"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168893"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.5555\/956417.956569"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/998680.1006707"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1362622.1362694"},{"key":"e_1_2_1_23_1","volume-title":"Operating System Support for Shared-ISA Asymmetric Multi-core Architectures. In Workshop on the Interaction between Op. Sys. and Computer Arch.","author":"Li T.","year":"2008","unstructured":"T. Li , P. Brett , B. Hohlt , R. Knauerhase , S.D. McElderry , and S. Hahn . Operating System Support for Shared-ISA Asymmetric Multi-core Architectures. In Workshop on the Interaction between Op. Sys. and Computer Arch. , June 2008 . T. Li, P. Brett, B. Hohlt, R. Knauerhase, S.D. McElderry, and S. Hahn. Operating System Support for Shared-ISA Asymmetric Multi-core Architectures. In Workshop on the Interaction between Op. Sys. and Computer Arch., June 2008."},{"key":"e_1_2_1_24_1","volume-title":"Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture","author":"McDougall R.","year":"2007","unstructured":"R. McDougall and J. Mauro . Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture . Prentice Hall , 2 nd edition, 2007 . R. McDougall and J. Mauro. Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture. Prentice Hall, 2nd edition, 2007.","edition":"2"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2008.47"},{"key":"e_1_2_1_26_1","unstructured":"I. Molnar. Modular Scheduler Core and Completely Fair Scheduler. http:\/\/kerneltrap.org\/node\/8059 Apr. 2007.  I. Molnar. Modular Scheduler Core and Completely Fair Scheduler. http:\/\/kerneltrap.org\/node\/8059 Apr. 2007."},{"key":"e_1_2_1_27_1","volume-title":"Personal communication","author":"Monchiero M.","year":"2008","unstructured":"M. Monchiero . Personal communication , 2008 . M. Monchiero. Personal communication, 2008."},{"key":"e_1_2_1_28_1","volume-title":"Proc. P = ac2 Conf.","author":"Nellans D.","year":"2005","unstructured":"D. Nellans , R. Balasubramonian , and E. Brunvand . A Case for Increased Operating System Support in Chip Multi-Processors . In Proc. P = ac2 Conf. , Yorktown Heights, NY , Sept. 2005 . D. Nellans, R. Balasubramonian, and E. Brunvand. A Case for Increased Operating System Support in Chip Multi-Processors. In Proc. P = ac2 Conf., Yorktown Heights, NY, Sept. 2005."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1531793.1531812"},{"key":"e_1_2_1_31_1","first-page":"183","volume-title":"Berkeley DB. In Proc. FREENIX Track, USENIX Annual Tech. Conf.","author":"Olson M.A.","year":"1999","unstructured":"M.A. Olson , K. Bostic , and M. Seltzer . Berkeley DB. In Proc. FREENIX Track, USENIX Annual Tech. Conf. , pages 183 -- 191 , 1999 . M.A. Olson, K. Bostic, and M. Seltzer. Berkeley DB. In Proc. FREENIX Track, USENIX Annual Tech. Conf., pages 183--191, 1999."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/47671.47673"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/HOTI.2006.20"}],"container-title":["ACM SIGOPS Operating Systems Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1531793.1531801","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1531793.1531801","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T13:29:28Z","timestamp":1750253368000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1531793.1531801"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009,4,21]]},"references-count":32,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2009,4,21]]}},"alternative-id":["10.1145\/1531793.1531801"],"URL":"https:\/\/doi.org\/10.1145\/1531793.1531801","relation":{},"ISSN":["0163-5980"],"issn-type":[{"type":"print","value":"0163-5980"}],"subject":[],"published":{"date-parts":[[2009,4,21]]},"assertion":[{"value":"2009-04-21","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}