)]}'
{
  "commit": "16d4e418e98feeb53f28d17eeffb198fe0fd6f22",
  "tree": "185eded20f115f7604306588004aa0557ad4954d",
  "parents": [
    "65c4f0999991f6321d6a369fa56c81c57c5b87ad"
  ],
  "author": {
    "name": "Zhenzhong Duan",
    "email": "zhenzhong.duan@intel.com",
    "time": "Thu Dec 12 16:37:47 2024 +0800"
  },
  "committer": {
    "name": "Michael S. Tsirkin",
    "email": "mst@redhat.com",
    "time": "Wed Jan 15 13:06:20 2025 -0500"
  },
  "message": "intel_iommu: Flush stage-1 cache in iotlb invalidation\n\nAccording to spec, Page-Selective-within-Domain Invalidation (11b):\n\n1. IOTLB entries caching second-stage mappings (PGTT\u003d010b) or pass-through\n(PGTT\u003d100b) mappings associated with the specified domain-id and the\ninput-address range are invalidated.\n2. IOTLB entries caching first-stage (PGTT\u003d001b) or nested (PGTT\u003d011b)\nmapping associated with specified domain-id are invalidated.\n\nSo per spec definition the Page-Selective-within-Domain Invalidation\nneeds to flush first stage and nested cached IOTLB entries as well.\n\nWe don\u0027t support nested yet and pass-through mapping is never cached,\nso what in iotlb cache are only first-stage and second-stage mappings.\n\nAdd a tag pgtt in VTDIOTLBEntry to mark PGTT type of the mapping and\ninvalidate entries based on PGTT type.\n\nSigned-off-by: Zhenzhong Duan \u003czhenzhong.duan@intel.com\u003e\nReviewed-by: Clément Mathieu--Drif\u003cclement.mathieu--drif@eviden.com\u003e\nAcked-by: Jason Wang \u003cjasowang@redhat.com\u003e\nReviewed-by: Yi Liu \u003cyi.l.liu@intel.com\u003e\nMessage-Id: \u003c20241212083757.605022-11-zhenzhong.duan@intel.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": "0aeb0dbde9673b18e4d0b4ebc4c20b22a4ff9cf8",
      "old_mode": 33188,
      "old_path": "hw/i386/intel_iommu.c",
      "new_id": "95f344eb464df33f314c1969389296761932dbfc",
      "new_mode": 33188,
      "new_path": "hw/i386/intel_iommu.c"
    },
    {
      "type": "modify",
      "old_id": "f44f3eb63a73872196c49d42a910033e236ce223",
      "old_mode": 33188,
      "old_path": "include/hw/i386/intel_iommu.h",
      "new_id": "a434c2489ce7a0ac352a83d24c215bce29224248",
      "new_mode": 33188,
      "new_path": "include/hw/i386/intel_iommu.h"
    }
  ]
}
