Knowledge (XXG)

Giant lock

Source 📝

85:
By isolating the kernel from concurrency, many parts of the kernel no longer need to be modified to support SMP. However, as in giant-lock SMP systems only one processor can run the kernel code at a time, performance for applications spending significant amounts of time in the kernel is not much
86:
improved. Accordingly, the giant-lock approach is commonly seen as a preliminary means of bringing SMP support to an operating system, yielding benefits only in user space. Most modern operating systems use a
280: 153:
family of primitives to facilitate synchronisation of critical sections within the kernel, meaning that many system calls may inhibit SMP capabilities of the system, and, according to
288: 78:, but no more than one thread can run in kernel space; any other threads that try to enter kernel space are forced to wait. In other words, the giant lock eliminates all 202:
Foundation views modern SMP support as vital to the direction of The NetBSD Project, and has offered grants to developers willing to work on SMP improvements;
519:
Giant is a special mutex used to protect data structures that do not yet have their own locks. Since it provides semantics akin to the old spl(9) interface, …
206:
was one of the projects that arose as a result of these financial incentives, but further improvements to the core networking stack may still be necessary.
164:, which provides semantics akin to the old spl interface, but performance-critical core components have long been converted to use finer-grained locking. 248: 552: 106:
removed it in 2011 in kernel version 2.6.39, with the remaining uses of the big lock removed or replaced by finer-grained locking.
79: 579: 63: 59: 48: 40: 252: 320: 225: 220: 36: 119: 115: 332: 471: 70:
is the archetypal example. In this model, threads in user space can run concurrently on any available
172: 87: 103: 44: 215: 107: 55: 20: 544: 467: 203: 168: 154: 71: 573: 479: 180: 99: 356: 67: 150: 75: 344: 500: 308: 157:, the SMP capabilities of these two systems cannot be considered modern. 508: 444: 377: 333:
patch RFC 19/29 - printk: Add basic infrastructure for non-BKL consoles
260: 188: 184: 142: 548: 440: 412: 199: 192: 146: 111: 133:
which are sometimes referred as BKL and its removal is in progress.
176: 102:
had a big kernel lock (BKL) since the introduction of SMP, until
404: 369: 54:
A giant lock is a solitary global lock that is held whenever a
526: 472:"DragonFlyBSD Project Update - colo upgrade, future trends" 436: 321:
PATCH - fbcon: Make fbcon a built-time depency for fbdev
545:"SMP Networking (aka remove the big network lock)" 437:"splx(9) — modify system interrupt priority level" 125:As of September 2022, Linux kernel still has 525:"locking -- kernel synchronization primitives". 501:"locking(9) — kernel synchronization primitives" 462: 460: 345:rtnl mutex, the network stack big kernel lock 243: 241: 8: 399: 397: 253:"Before & After Under The Giant Lock" 175:general-purpose operating systems, only 62:and released when the thread returns to 309:https://kernelnewbies.org/BigKernelLock 237: 335:. Thomas Gleixner. September 11, 2022 7: 311:– BigKernelLock at kernelnewbies.org 14: 347:. Florian Westphal. November 2017 555:from the original on 2019-07-25 323:. Daniel Vetter. June 28, 2017 187:have modern SMP support, with 160:FreeBSD still has support for 1: 122:are therefore not using BKL. 16:Lock used in computer kernels 596: 359:. Kuniyuki Iwashima. 2024 49:symmetric multiprocessing 499:Julian Elischer (2007). 39:that may be used in the 226:Global interpreter lock 221:Lock (computer science) 141:As of July 2019, 283:BKL: that's all folks 528:FreeBSD Manual Pages 173:open-source software 149:are still using the 88:fine-grained locking 580:Concurrency control 505:BSD Cross Reference 409:BSD Cross Reference 374:BSD Cross Reference 108:Linux distributions 45:concurrency control 216:Parallel computing 27:, also known as a 281:"git.kernel.org: 249:Robert N M Watson 167:It is claimed by 116:Debian 7 (Wheezy) 82:in kernel space. 21:operating systems 587: 564: 563: 561: 560: 541: 535: 532: 521: 516: 515: 496: 490: 489: 487: 486: 478:(Mailing list). 464: 455: 454: 452: 451: 433: 427: 426: 421: 420: 401: 392: 391: 386: 385: 366: 360: 354: 348: 342: 336: 330: 324: 318: 312: 306: 300: 299: 297: 296: 287:. Archived from 277: 271: 270: 268: 267: 259:(Mailing list). 257:FreeBSD-Hackers@ 245: 195:falling behind. 171:that out of the 595: 594: 590: 589: 588: 586: 585: 584: 570: 569: 568: 567: 558: 556: 543: 542: 538: 524: 513: 511: 498: 497: 493: 484: 482: 466: 465: 458: 449: 447: 435: 434: 430: 418: 416: 405:"/sys/net/if.c" 403: 402: 395: 383: 381: 370:"/sys/net/if.c" 368: 367: 363: 355: 351: 343: 339: 331: 327: 319: 315: 307: 303: 294: 292: 279: 278: 274: 265: 263: 247: 246: 239: 234: 212: 162:the Giant mutex 139: 96: 76:processor cores 51:(SMP) systems. 17: 12: 11: 5: 593: 591: 583: 582: 572: 571: 566: 565: 551:. 2013-02-14. 536: 534: 533: 491: 470:(2019-07-22). 468:Matthew Dillon 456: 428: 393: 361: 357:Per Netns RTNL 349: 337: 325: 313: 301: 272: 251:(2007-11-25). 236: 235: 233: 230: 229: 228: 223: 218: 211: 208: 204:NPF (firewall) 169:Matthew Dillon 155:Matthew Dillon 138: 135: 95: 92: 15: 13: 10: 9: 6: 4: 3: 2: 592: 581: 578: 577: 575: 554: 550: 546: 540: 537: 530: 529: 523: 522: 520: 510: 506: 502: 495: 492: 481: 480:DragonFly BSD 477: 473: 469: 463: 461: 457: 446: 442: 438: 432: 429: 425: 424:s = splnet(); 414: 410: 406: 400: 398: 394: 390: 389:s = splnet(); 379: 375: 371: 365: 362: 358: 353: 350: 346: 341: 338: 334: 329: 326: 322: 317: 314: 310: 305: 302: 291:on 2012-07-20 290: 286: 284: 276: 273: 262: 258: 254: 250: 244: 242: 238: 231: 227: 224: 222: 219: 217: 214: 213: 209: 207: 205: 201: 196: 194: 190: 186: 182: 181:DragonFly BSD 178: 174: 170: 165: 163: 158: 156: 152: 148: 144: 136: 134: 132: 128: 123: 121: 117: 113: 109: 105: 104:Arnd Bergmann 101: 93: 91: 89: 83: 81: 77: 73: 69: 65: 61: 57: 52: 50: 46: 42: 38: 34: 30: 26: 22: 557:. Retrieved 539: 527: 518: 512:. Retrieved 504: 494: 483:. Retrieved 475: 448:. Retrieved 431: 423: 417:. Retrieved 415:. 2019-07-25 408: 388: 382:. Retrieved 380:. 2019-06-30 373: 364: 352: 340: 328: 316: 304: 293:. Retrieved 289:the original 282: 275: 264:. Retrieved 256: 197: 166: 161: 159: 140: 130: 127:console_lock 126: 124: 120:Ubuntu 11.10 110:at or above 100:Linux kernel 97: 84: 60:kernel space 53: 47:required by 32: 28: 24: 18: 80:concurrency 68:system call 43:to provide 33:kernel-lock 559:2023-03-26 514:2019-07-25 485:2019-07-25 450:2019-07-25 419:2019-07-25 384:2019-07-25 295:2019-12-28 266:2019-07-25 232:References 90:approach. 72:processors 64:user space 25:giant lock 131:rtnl_lock 574:Category 553:Archived 210:See also 112:CentOS 7 29:big-lock 509:FreeBSD 445:OpenBSD 378:OpenBSD 261:FreeBSD 189:OpenBSD 185:FreeBSD 143:OpenBSD 58:enters 35:, is a 549:NetBSD 476:users@ 441:NetBSD 413:NetBSD 200:NetBSD 193:NetBSD 147:NetBSD 56:thread 41:kernel 177:Linux 94:Linux 198:The 191:and 183:and 145:and 129:and 118:and 98:The 66:; a 37:lock 23:, a 151:spl 137:BSD 74:or 31:or 19:In 576:: 547:. 517:. 507:. 503:. 474:. 459:^ 443:, 439:. 422:. 411:. 407:. 396:^ 387:. 376:. 372:. 255:. 240:^ 179:, 114:, 562:. 531:. 488:. 453:. 298:. 285:" 269:.

Index

operating systems
lock
kernel
concurrency control
symmetric multiprocessing
thread
kernel space
user space
system call
processors
processor cores
concurrency
fine-grained locking
Linux kernel
Arnd Bergmann
Linux distributions
CentOS 7
Debian 7 (Wheezy)
Ubuntu 11.10
OpenBSD
NetBSD
spl
Matthew Dillon
Matthew Dillon
open-source software
Linux
DragonFly BSD
FreeBSD
OpenBSD
NetBSD

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.