)]}'
{
  "commit": "6ad38a76c2182b8cc12200d100d586c01b7d3d77",
  "tree": "cb9f7607f3ea8a7c46cadffb9155f3b1d2c78921",
  "parents": [
    "b205abbba15c374fc75ae336a7d8ffc5637ae408"
  ],
  "author": {
    "name": "Thomas Gleixner",
    "email": "tglx@linutronix.de",
    "time": "Mon May 08 21:44:25 2023 +0200"
  },
  "committer": {
    "name": "Thomas Gleixner",
    "email": "tglx@linutronix.de",
    "time": "Thu May 11 20:37:03 2023 +0200"
  },
  "message": "x86/smpboot/64: Implement arch_cpuhp_init_parallel_bringup() and enable it\n\nImplement the validation function which tells the core code whether\nparallel bringup is possible.\n\nThe only condition for now is that the kernel does not run in an encrypted\nguest as these will trap the RDMSR via #VC, which cannot be handled at that\npoint in early startup.\n\nThere was an earlier variant for AMD-SEV which used the GHBC protocol for\nretrieving the APIC ID via CPUID, but there is no guarantee that the\ninitial APIC ID in CPUID is the same as the real APIC ID. There is no\nenforcement from the secure firmware and the hypervisor can assign APIC IDs\nas it sees fit as long as the ACPI/MADT table is consistent with that\nassignment.\n\nUnfortunately there is no RDMSR GHCB protocol at the moment, so enabling\nAMD-SEV guests for parallel startup needs some more thought.\n\nIntel-TDX provides a secure RDMSR hypercall, but supporting that is outside\nthe scope of this change.\n\nFixup announce_cpu() as e.g. on Hyper-V CPU1 is the secondary sibling of\nCPU0, which makes the @cpu \u003d\u003d 1 logic in announce_cpu() fall apart.\n\n[ mikelley: Reported the announce_cpu() fallout\n\nOriginally-by: David Woodhouse \u003cdwmw@amazon.co.uk\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Michael Kelley \u003cmikelley@microsoft.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c140a73b429539bbf9d3a538be8965868827fee0",
      "old_mode": 33188,
      "old_path": "arch/x86/Kconfig",
      "new_id": "953823fdf57b277c6275bba868bdbac0ac95c869",
      "new_mode": 33188,
      "new_path": "arch/x86/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "640fd1802c725f221b9981dbee5e745f0d91dedf",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/common.c",
      "new_id": "7cc44ebead5a12c288f41cc237943c311d36cca1",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/common.c"
    },
    {
      "type": "modify",
      "old_id": "4b97373d82c8039a10a658a7c5aa9adbcd0dc80f",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/smpboot.c",
      "new_id": "660709e94823402c9bfcd864597228798be083be",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/smpboot.c"
    }
  ]
}
