)]}'
{
  "commit": "0a5b5acdf2d8c7302ca48d42e6ef3423e1b956d5",
  "tree": "28354b8134afcb1cf92b068e12a5c5dc145fdf2b",
  "parents": [
    "b64b7ed8bb5d475eab3b4188ef0076e332937c62"
  ],
  "author": {
    "name": "Ankit Agrawal",
    "email": "ankita@nvidia.com",
    "time": "Fri Mar 08 14:55:24 2024 +0000"
  },
  "committer": {
    "name": "Michael S. Tsirkin",
    "email": "mst@redhat.com",
    "time": "Tue Mar 12 17:56:55 2024 -0400"
  },
  "message": "hw/acpi: Implement the SRAT GI affinity structure\n\nACPI spec provides a scheme to associate \"Generic Initiators\" [1]\n(e.g. heterogeneous processors and accelerators, GPUs, and I/O devices with\nintegrated compute or DMA engines GPUs) with Proximity Domains. This is\nachieved using Generic Initiator Affinity Structure in SRAT. During bootup,\nLinux kernel parse the ACPI SRAT to determine the PXM ids and create a NUMA\nnode for each unique PXM ID encountered. Qemu currently do not implement\nthese structures while building SRAT.\n\nAdd GI structures while building VM ACPI SRAT. The association between\ndevice and node are stored using acpi-generic-initiator object. Lookup\npresence of all such objects and use them to build these structures.\n\nThe structure needs a PCI device handle [2] that consists of the device BDF.\nThe vfio-pci device corresponding to the acpi-generic-initiator object is\nlocated to determine the BDF.\n\n[1] ACPI Spec 6.3, Section 5.2.16.6\n[2] ACPI Spec 6.3, Table 5.80\n\nCc: Jonathan Cameron \u003cqemu-devel@nongnu.org\u003e\nCc: Alex Williamson \u003calex.williamson@redhat.com\u003e\nCc: Cedric Le Goater \u003cclg@redhat.com\u003e\nReviewed-by: Jonathan Cameron \u003cJonathan.Cameron@huawei.com\u003e\nSigned-off-by: Ankit Agrawal \u003cankita@nvidia.com\u003e\nMessage-Id: \u003c20240308145525.10886-3-ankita@nvidia.com\u003e\nReviewed-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "130d6ae8c1d9e2e2b01f6009db06b84c77ad228a",
      "old_mode": 33188,
      "old_path": "hw/acpi/acpi_generic_initiator.c",
      "new_id": "17b9a052f59b0ecb598368415dc70971108a20bd",
      "new_mode": 33188,
      "new_path": "hw/acpi/acpi_generic_initiator.c"
    },
    {
      "type": "modify",
      "old_id": "3042d223c825c361791b715d380acfe2582db9d2",
      "old_mode": 33188,
      "old_path": "hw/acpi/hmat.c",
      "new_id": "2242981e1809e3e3e3307611b4ed8b20ca654f88",
      "new_mode": 33188,
      "new_path": "hw/acpi/hmat.c"
    },
    {
      "type": "modify",
      "old_id": "6a1bde61ce8c3580ce7c5f0244143b49d67d8ae8",
      "old_mode": 33188,
      "old_path": "hw/arm/virt-acpi-build.c",
      "new_id": "c3ccfef026f4d60ad9bdfb73a2cde7b9feb8ebda",
      "new_mode": 33188,
      "new_path": "hw/arm/virt-acpi-build.c"
    },
    {
      "type": "modify",
      "old_id": "f08956ddb0ff794833213b1bbe98c7702871743d",
      "old_mode": 33188,
      "old_path": "hw/core/numa.c",
      "new_id": "58a32f1564914d7e5819ddc050b91c586a1e1d8b",
      "new_mode": 33188,
      "new_path": "hw/core/numa.c"
    },
    {
      "type": "modify",
      "old_id": "16de1d3d80a2f66783cf84f4dbe6000e1a99471d",
      "old_mode": 33188,
      "old_path": "include/hw/acpi/acpi_generic_initiator.h",
      "new_id": "a304bad73e0f703e701a473da243ac76f8ff6353",
      "new_mode": 33188,
      "new_path": "include/hw/acpi/acpi_generic_initiator.h"
    },
    {
      "type": "modify",
      "old_id": "4173ef2afa75baba7cb2f03f861a1edc6f78bc87",
      "old_mode": 33188,
      "old_path": "include/sysemu/numa.h",
      "new_id": "825cfe86bc1a2d6c336441d6d62260079d7fbc63",
      "new_mode": 33188,
      "new_path": "include/sysemu/numa.h"
    }
  ]
}
