)]}'
{
  "commit": "0fe0195af74d2081f97e6292ecd9c1060a7fa505",
  "tree": "07d9787fdf16d34b8e87921dc21c53cda7ac7dd0",
  "parents": [
    "431d23280225a58bdb121b6c2e8b9404e586e2d5"
  ],
  "author": {
    "name": "David Woodhouse",
    "email": "dwmw@amazon.co.uk",
    "time": "Wed Feb 15 14:54:24 2023 +0000"
  },
  "committer": {
    "name": "Paul E. McKenney",
    "email": "paulmck@kernel.org",
    "time": "Wed Feb 15 15:35:23 2023 -0800"
  },
  "message": "x86/smpboot: Send INIT/SIPI/SIPI to secondary CPUs in parallel\n\nWhen the APs can find their own APIC ID without assistance, perform the\nAP bringup in parallel.\n\nRegister a CPUHP_BP_PARALLEL_DYN stage \"x86/cpu:kick\" which just calls\ndo_boot_cpu() to deliver INIT/SIPI/SIPI to each AP in turn before the\nnormal native_cpu_up() does the rest of the hand-holding.\n\nThe APs will then take turns through the real mode code (which has its\nown bitlock for exclusion) until they make it to their own stack, then\nproceed through the first few lines of start_secondary() and execute\nthese parts in parallel:\n\n start_secondary()\n    -\u003e cr4_init()\n    -\u003e (some 32-bit only stuff so not in the parallel cases)\n    -\u003e cpu_init_secondary()\n       -\u003e cpu_init_exception_handling()\n       -\u003e cpu_init()\n          -\u003e wait_for_master_cpu()\n\nAt this point they wait for the BSP to set their bit in cpu_callout_mask\n(from do_wait_cpu_initialized()), and release them to continue through\nthe rest of cpu_init() and beyond.\n\nThis reduces the time taken for bringup on my 28-thread Haswell system\nfrom about 120ms to 80ms. On a socket 96-thread Skylake it takes the\nbringup time from 500ms to 100ms.\n\nThere is more speedup to be had by doing the remaining parts in parallel\ntoo — especially notify_cpu_starting() in which the AP takes itself\nthrough all the stages from CPUHP_BRINGUP_CPU to CPUHP_ONLINE. But those\nrequire careful auditing to ensure they are reentrant, before we can go\nthat far.\n\n[Usama Arif: fixed rebase conflict]\nSigned-off-by: David Woodhouse \u003cdwmw@amazon.co.uk\u003e\nSigned-off-by: Usama Arif \u003cusama.arif@bytedance.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "49d6563e4c23ea17ee7c7cbeb74161b656e0aea0",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/smpboot.c",
      "new_id": "4cea3a0ff503e05b8a1a878da95f056a630f8b57",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/smpboot.c"
    }
  ]
}
