)]}'
{
  "commit": "0f5cb2989f33059a70e8da335b62af5f27fabbe2",
  "tree": "dc8112aaca1611eb9bb733421be27f5947bfcb6d",
  "parents": [
    "354ac20a36a82a5ee09b0a6c8ba8655358a7597f"
  ],
  "author": {
    "name": "David Gibson",
    "email": "david@gibson.dropbear.id.au",
    "time": "Thu Sep 29 21:39:12 2011 +0000"
  },
  "committer": {
    "name": "Alexander Graf",
    "email": "agraf@suse.de",
    "time": "Sun Oct 30 17:11:53 2011 +0100"
  },
  "message": "pseries: Use Book3S-HV TCE acceleration capabilities\n\nThe pseries machine of qemu implements the TCE mechanism used as a\nvirtual IOMMU for the PAPR defined virtual IO devices.  Because the\nPAPR spec only defines a small DMA address space, the guest VIO\ndrivers need to update TCE mappings very frequently - the virtual\nnetwork device is particularly bad.  This means many slow exits to\nqemu to emulate the H_PUT_TCE hypercall.\n\nSufficiently recent kernels allow this to be mitigated by implementing\nH_PUT_TCE in the host kernel.  To make use of this, however, qemu\nneeds to initialize the necessary TCE tables, and map them into itself\nso that the VIO device implementations can retrieve the mappings when\nthey access guest memory (which is treated as a virtual DMA\noperation).\n\nThis patch adds the necessary calls to use the KVM TCE acceleration.\nIf the kernel does not support acceleration, or there is some other\nerror creating the accelerated TCE table, then it will still fall back\nto full userspace TCE implementation.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "35818e18f1e0a16d1b41d9ff42fc375336db10c2",
      "old_mode": 33188,
      "old_path": "hw/spapr_vio.c",
      "new_id": "1da3032215e325770ab32db4929b902494569e15",
      "new_mode": 33188,
      "new_path": "hw/spapr_vio.c"
    },
    {
      "type": "modify",
      "old_id": "4fe5f742c20b127b114105763063682b82131949",
      "old_mode": 33188,
      "old_path": "hw/spapr_vio.h",
      "new_id": "a325a5f4b3a3ee8c72561c1e097701b591ab56e0",
      "new_mode": 33188,
      "new_path": "hw/spapr_vio.h"
    },
    {
      "type": "modify",
      "old_id": "fd17d23d2edd66684de6741ef71f40611afbb4ef",
      "old_mode": 33188,
      "old_path": "target-ppc/kvm.c",
      "new_id": "06cad41de526d9ee61bd7b8ec267093b3afa2541",
      "new_mode": 33188,
      "new_path": "target-ppc/kvm.c"
    },
    {
      "type": "modify",
      "old_id": "82f32f449e9c0b486bd2ce54a5b2e72597e278b4",
      "old_mode": 33188,
      "old_path": "target-ppc/kvm_ppc.h",
      "new_id": "87d1bdd5fd8842d82c95d23eadee233a587c985d",
      "new_mode": 33188,
      "new_path": "target-ppc/kvm_ppc.h"
    }
  ]
}
