)]}'
{
  "log": [
    {
      "commit": "07700a94b00a4fcbbfb07d1b72dc112a0e036735",
      "tree": "e4a8045d6a44906463102a04c7a87337c38e16aa",
      "parents": [
        "3e515705a1f46beb1c942bb8043c16f8ac7b1e9e"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Tue Feb 28 14:19:54 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:11:36 2012 +0200"
      },
      "message": "KVM: Allow host IRQ sharing for assigned PCI 2.3 devices\n\nPCI 2.3 allows to generically disable IRQ sources at device level. This\nenables us to share legacy IRQs of such devices with other host devices\nwhen passing them to a guest.\n\nThe new IRQ sharing feature introduced here is optional, user space has\nto request it explicitly. Moreover, user space can inform us about its\nview of PCI_COMMAND_INTX_DISABLE so that we can avoid unmasking the\ninterrupt and signaling it if the guest masked it via the virtualized\nPCI config space.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nAcked-by: Alex Williamson \u003calex.williamson@redhat.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "3e515705a1f46beb1c942bb8043c16f8ac7b1e9e",
      "tree": "fd0e53e5f51e6e03dda80d7aec6073f5cb694fd1",
      "parents": [
        "4cee4798a304ee1ea579423ca048f16ceaccdfb5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:23:29 2012 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:30 2012 +0200"
      },
      "message": "KVM: Ensure all vcpus are consistent with in-kernel irqchip settings\n\nIf some vcpus are created before KVM_CREATE_IRQCHIP, then\nirqchip_in_kernel() and vcpu-\u003earch.apic will be inconsistent, leading\nto potential NULL pointer dereferences.\n\nFix by:\n- ensuring that no vcpus are installed when KVM_CREATE_IRQCHIP is called\n- ensuring that a vcpu has an apic if it is installed after KVM_CREATE_IRQCHIP\n\nThis is somewhat long winded because vcpu-\u003earch.apic is created without\nkvm-\u003elock held.\n\nBased on earlier patch by Michael Ellerman.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4cee4798a304ee1ea579423ca048f16ceaccdfb5",
      "tree": "1088f534433daf9e9f705453038ced11c059570e",
      "parents": [
        "ea5e97e8bf1d56a4d9461c39e082b9c31a7be4ff"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Wed Feb 08 14:34:41 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:29 2012 +0200"
      },
      "message": "KVM: x86 emulator: Allow PM/VM86 switch during task switch\n\nTask switches can switch between Protected Mode and VM86. The current\nmode must be updated during the task switch emulation so that the new\nsegment selectors are interpreted correctly.\n\nIn order to let privilege checks succeed, rflags needs to be updated in\nthe vcpu struct as this causes a CPL update.\n\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "ea5e97e8bf1d56a4d9461c39e082b9c31a7be4ff",
      "tree": "155889085c85412d1dcfddc1af904417cf0e996c",
      "parents": [
        "66b0ab8fac1031ffc70eb77491048339f2717a54"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Wed Feb 08 14:34:40 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:28 2012 +0200"
      },
      "message": "KVM: SVM: Fix CPL updates\n\nKeep CPL at 0 in real mode and at 3 in VM86. In protected/long mode, use\nRPL rather than DPL of the code segment.\n\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "66b0ab8fac1031ffc70eb77491048339f2717a54",
      "tree": "d323e068a9f6a95fb46c2fc41b66c3a9ed0c90d4",
      "parents": [
        "7f3d35fddd173e52886d03bc34b5b5d6f5bea343"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Wed Feb 08 14:34:39 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:27 2012 +0200"
      },
      "message": "KVM: x86 emulator: VM86 segments must have DPL 3\n\nSetting the segment DPL to 0 for at least the VM86 code segment makes\nthe VM entry fail on VMX.\n\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7f3d35fddd173e52886d03bc34b5b5d6f5bea343",
      "tree": "9561913495a92c398b9b8e372d4e9a5c1d55c7f4",
      "parents": [
        "9cc815e46911486f52bec60517d0f7b40d323bbc"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Wed Feb 08 14:34:38 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:26 2012 +0200"
      },
      "message": "KVM: x86 emulator: Fix task switch privilege checks\n\nCurrently, all task switches check privileges against the DPL of the\nTSS. This is only correct for jmp/call to a TSS. If a task gate is used,\nthe DPL of this take gate is used for the check instead. Exceptions,\nexternal interrupts and iret shouldn\u0027t perform any check.\n\n[avi: kill kvm-kmod remnants]\n\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "9cc815e46911486f52bec60517d0f7b40d323bbc",
      "tree": "de1bfa259824deda3105656a29b31b1fcdf569b7",
      "parents": [
        "270c6c79f4e15e599f47174ecedad932463af7a2"
      ],
      "author": {
        "name": "Danny Kukawka",
        "email": "danny.kukawka@bisect.de",
        "time": "Thu Feb 16 14:55:54 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:25 2012 +0200"
      },
      "message": "arch/powerpc/kvm/book3s_hv.c: included linux/sched.h twice\n\narch/powerpc/kvm/book3s_hv.c: included \u0027linux/sched.h\u0027 twice,\nremove the duplicate.\n\nSigned-off-by: Danny Kukawka \u003cdanny.kukawka@bisect.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "270c6c79f4e15e599f47174ecedad932463af7a2",
      "tree": "551493b3175eb9ec80a92aab806fadc6ce0c758e",
      "parents": [
        "565f3be2174611f364405bbea2d86e153c2e7e78"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Thu Feb 16 14:44:11 2012 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:24 2012 +0200"
      },
      "message": "KVM: x86 emulator: correctly mask pmc index bits in RDPMC instruction emulation\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "565f3be2174611f364405bbea2d86e153c2e7e78",
      "tree": "6605216c0d4f06043ddf6bbcb9b3d5a82571ccc6",
      "parents": [
        "db3fe4eb45f3555d91a7124e18cf3a2f2a30eb90"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Fri Feb 10 15:28:31 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:23 2012 +0200"
      },
      "message": "KVM: mmu_notifier: Flush TLBs before releasing mmu_lock\n\nOther threads may process the same page in that small window and skip\nTLB flush and then return before these functions do flush.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "db3fe4eb45f3555d91a7124e18cf3a2f2a30eb90",
      "tree": "5d294feef8f6281d4cd6c67180e0514c74e87079",
      "parents": [
        "189a2f7b24677deced3d2a9803969ba69f4b75f6"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Wed Feb 08 13:02:18 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:22 2012 +0200"
      },
      "message": "KVM: Introduce kvm_memory_slot::arch and move lpage_info into it\n\nSome members of kvm_memory_slot are not used by every architecture.\n\nThis patch is the first step to make this difference clear by\nintroducing kvm_memory_slot::arch;  lpage_info is moved into it.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "189a2f7b24677deced3d2a9803969ba69f4b75f6",
      "tree": "f39aabbaf24bfea65bbf77e215abac829fcb54d6",
      "parents": [
        "a64f273a08d16bc66ccc5546bd28b1bba554ec81"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Wed Feb 08 13:01:09 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:21 2012 +0200"
      },
      "message": "KVM: Simplify ifndef conditional usage in __kvm_set_memory_region()\n\nNarrow down the controlled text inside the conditional so that it will\ninclude lpage_info and rmap stuff only.\n\nFor this we change the way we check whether the slot is being created\nfrom \"if (npages \u0026\u0026 !new.rmap)\" to \"if (npages \u0026\u0026 !old.npages)\".\n\nWe also stop checking if lpage_info is NULL when we create lpage_info\nbecause we do it from inside the slot creation code block.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "a64f273a08d16bc66ccc5546bd28b1bba554ec81",
      "tree": "af305dee1d5c6c2fed1e6c913a18c4f43e16940a",
      "parents": [
        "fb03cb6f44236f4bef62a0dda8e025ff5ca51417"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Wed Feb 08 13:00:13 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:20 2012 +0200"
      },
      "message": "KVM: Split lpage_info creation out from __kvm_set_memory_region()\n\nThis makes it easy to make lpage_info architecture specific.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "fb03cb6f44236f4bef62a0dda8e025ff5ca51417",
      "tree": "fdece464add97210435bb4d778f7b09a852f61e3",
      "parents": [
        "9eed0735ca6a5cf386a4998ad4b6d52d1e29353f"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Wed Feb 08 12:59:10 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:19 2012 +0200"
      },
      "message": "KVM: Introduce gfn_to_index() which returns the index for a given level\n\nThis patch cleans up the code and removes the \"(void)level;\" warning\nsuppressor.\n\nNote that we can also use this for PT_PAGE_TABLE_LEVEL to treat every\nlevel uniformly later.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "9eed0735ca6a5cf386a4998ad4b6d52d1e29353f",
      "tree": "447a860fca701a519aa97c41e4413801946079bc",
      "parents": [
        "9ec2d6dc6c4d4792b85dec2f09d39387fb7157d1"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Mon Feb 06 10:59:07 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:18 2012 +0200"
      },
      "message": "KVM: s390: provide control registers via kvm_run\n\nThere are several cases were we need the control registers for\nuserspace. Lets also provide those in kvm_run.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "9ec2d6dc6c4d4792b85dec2f09d39387fb7157d1",
      "tree": "b84be054e22568bc15e647f3e0fd09972b44a522",
      "parents": [
        "24a13044a84be51a6a4885a72ac9d5f4ed0742d0"
      ],
      "author": {
        "name": "Jens Freimann",
        "email": "jfrei@linux.vnet.ibm.com",
        "time": "Mon Feb 06 10:59:06 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:17 2012 +0200"
      },
      "message": "KVM: s390: add stop_on_stop flag when doing stop and store\n\nWhen we do a stop and store status we need to pass ACTION_STOP_ON_STOP\nflag to __sigp_stop().\n\nSigned-off-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "24a13044a84be51a6a4885a72ac9d5f4ed0742d0",
      "tree": "7dcd606daff06c71b2eed197683d4ddd1b4235bc",
      "parents": [
        "151104a7b3a82f9c56d636595ae58084049d2559"
      ],
      "author": {
        "name": "Jens Freimann",
        "email": "jfrei@linux.vnet.ibm.com",
        "time": "Mon Feb 06 10:59:05 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:16 2012 +0200"
      },
      "message": "KVM: s390: ignore sigp stop overinitiative\n\nIn __inject_sigp_stop() do nothing when the CPU is already in stopped\nstate.\n\nSigned-off-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "151104a7b3a82f9c56d636595ae58084049d2559",
      "tree": "486ab76f3e0d10a0c8bc7b87691a797debbc4643",
      "parents": [
        "9e0d5473e2f0ba2d2fe9dab9408edef3060b710e"
      ],
      "author": {
        "name": "Jens Freimann",
        "email": "jfrei@linux.vnet.ibm.com",
        "time": "Wed Feb 08 08:28:29 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:15 2012 +0200"
      },
      "message": "KVM: s390: make sigp restart return busy when stop pending\n\nOn reboot the guest sends in smp_send_stop() a sigp stop to all CPUs\nexcept for current CPU.  Then the guest switches to the IPL cpu by\nsending a restart to the IPL CPU, followed by a sigp stop to the\ncurrent cpu. Since restart is handled by userspace it\u0027s possible that\nthe restart is delivered before the old stop.  This means that the IPL\nCPU isn\u0027t restarted and we have no running CPUs. So let\u0027s make sure\nthat there is no stop action pending when we do the restart.\n\nSigned-off-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "9e0d5473e2f0ba2d2fe9dab9408edef3060b710e",
      "tree": "3ca883cc0c44a68480f691e1c62e3a51f7732ce2",
      "parents": [
        "851755871c1f3184f4124c466e85881f17fa3226"
      ],
      "author": {
        "name": "Jens Freimann",
        "email": "jfrei@linux.vnet.ibm.com",
        "time": "Mon Feb 06 10:59:03 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:14 2012 +0200"
      },
      "message": "KVM: s390: do store status after handling STOP_ON_STOP bit\n\nIn handle_stop() handle the stop bit before doing the store status as\ndescribed for \"Stop and Store Status\" in the Principles of Operation.\nWe have to give up the local_int.lock before calling kvm store status\nsince it calls gmap_fault() which might sleep. Since local_int.lock\nonly protects local_int.* and not guest memory we can give up the lock.\n\nSigned-off-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "851755871c1f3184f4124c466e85881f17fa3226",
      "tree": "bd65d3f5f13b7897420724ae22ed2c6c76fbc902",
      "parents": [
        "6dbf79e7164e9a86c1e466062c48498142ae6128"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Mon Feb 06 10:59:02 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:13 2012 +0200"
      },
      "message": "KVM: s390: Sanitize fpc registers for KVM_SET_FPU\n\ncommit 7eef87dc99e419b1cc051e4417c37e4744d7b661 (KVM: s390: fix\nregister setting) added a load of the floating point control register\nto the KVM_SET_FPU path. Lets make sure that the fpc is valid.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "6dbf79e7164e9a86c1e466062c48498142ae6128",
      "tree": "2ffc942d370f5f239df05a154e0354ab06fc0489",
      "parents": [
        "10166744b80a41c30d82bc6e11140f5b28d257ab"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Sun Feb 05 20:42:41 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:12 2012 +0200"
      },
      "message": "KVM: Fix write protection race during dirty logging\n\nThis patch fixes a race introduced by:\n\n  commit 95d4c16ce78cb6b7549a09159c409d52ddd18dae\n  KVM: Optimize dirty logging by rmap_write_protect()\n\nDuring protecting pages for dirty logging, other threads may also try\nto protect a page in mmu_sync_children() or kvm_mmu_get_page().\n\nIn such a case, because get_dirty_log releases mmu_lock before flushing\nTLB\u0027s, the following race condition can happen:\n\n  A (get_dirty_log)     B (another thread)\n\n  lock(mmu_lock)\n  clear pte.w\n  unlock(mmu_lock)\n                        lock(mmu_lock)\n                        pte.w is already cleared\n                        unlock(mmu_lock)\n                        skip TLB flush\n                        return\n  ...\n  TLB flush\n\nThough thread B assumes the page has already been protected when it\nreturns, the remaining TLB entry will break that assumption.\n\nThis patch fixes this problem by making get_dirty_log hold the mmu_lock\nuntil it flushes the TLB\u0027s.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "10166744b80a41c30d82bc6e11140f5b28d257ab",
      "tree": "53b362f77d16ed91d8ecf373f7106fde12027ab7",
      "parents": [
        "e26101b116a6235bcd80b3a4c38c9fe91286cd79"
      ],
      "author": {
        "name": "Raghavendra K T",
        "email": "raghavendra.kt@linux.vnet.ibm.com",
        "time": "Tue Feb 07 23:19:20 2012 +0530"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:11 2012 +0200"
      },
      "message": "KVM: VMX: remove yield_on_hlt\n\nyield_on_hlt was introduced for CPU bandwidth capping. Now it is\nredundant with CFS hardlimit.\n\nyield_on_hlt also complicates the scenario in paravirtual environment,\nthat needs to trap halt. for e.g. paravirtualized ticket spinlocks.\n\nAcked-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Raghavendra K T \u003craghavendra.kt@linux.vnet.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "e26101b116a6235bcd80b3a4c38c9fe91286cd79",
      "tree": "82c133ffb2c8877f675af519a2ffd4c55820c7e9",
      "parents": [
        "0dd6a6edb0124e6c71931ff575b18e15ed6e8603"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zamsden@gmail.com",
        "time": "Fri Feb 03 15:43:57 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:09 2012 +0200"
      },
      "message": "KVM: Track TSC synchronization in generations\n\nThis allows us to track the original nanosecond and counter values\nat each phase of TSC writing by the guest.  This gets us perfect\noffset matching for stable TSC systems, and perfect software\ncomputed TSC matching for machines with unstable TSC.\n\nSigned-off-by: Zachary Amsden \u003czamsden@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "0dd6a6edb0124e6c71931ff575b18e15ed6e8603",
      "tree": "758efc28e830eca71e3912a76315917037fadfee",
      "parents": [
        "f1e2b26003c41e581243c09ceed7567677449468"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zamsden@gmail.com",
        "time": "Fri Feb 03 15:43:56 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:08 2012 +0200"
      },
      "message": "KVM: Dont mark TSC unstable due to S4 suspend\n\nDuring a host suspend, TSC may go backwards, which KVM interprets\nas an unstable TSC.  Technically, KVM should not be marking the\nTSC unstable, which causes the TSC clocksource to go bad, but we\nneed to be adjusting the TSC offsets in such a case.\n\nDealing with this issue is a little tricky as the only place we\ncan reliably do it is before much of the timekeeping infrastructure\nis up and running.  On top of this, we are not in a KVM thread\ncontext, so we may not be able to safely access VCPU fields.\nInstead, we compute our best known hardware offset at power-up and\nstash it to be applied to all VCPUs when they actually start running.\n\nSigned-off-by: Zachary Amsden \u003czamsden@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "f1e2b26003c41e581243c09ceed7567677449468",
      "tree": "9c6dc330959815651611bf9636c401ba24cd6cd9",
      "parents": [
        "6f526ec5383dcd5fa5ffc7b3ac1d62099a0b46ad"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 03 15:43:55 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:07 2012 +0200"
      },
      "message": "KVM: Allow adjust_tsc_offset to be in host or guest cycles\n\nRedefine the API to take a parameter indicating whether an\nadjustment is in host or guest cycles.\n\nSigned-off-by: Zachary Amsden \u003czamsden@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "6f526ec5383dcd5fa5ffc7b3ac1d62099a0b46ad",
      "tree": "3493dcd8ee803f1c8c77dd505d02816b2fc449e3",
      "parents": [
        "b183aa580a3a09b5d79224a9022418508532c778"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zamsden@gmail.com",
        "time": "Fri Feb 03 15:43:54 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:06 2012 +0200"
      },
      "message": "KVM: Add last_host_tsc tracking back to KVM\n\nThe variable last_host_tsc was removed from upstream code.  I am adding\nit back for two reasons.  First, it is unnecessary to use guest TSC\ncomputation to conclude information about the host TSC.  The guest may\nset the TSC backwards (this case handled by the previous patch), but\nthe computation of guest TSC (and fetching an MSR) is significanlty more\nwork and complexity than simply reading the hardware counter.  In addition,\nwe don\u0027t actually need the guest TSC for any part of the computation,\nby always recomputing the offset, we can eliminate the need to deal with\nthe current offset and any scaling factors that may apply.\n\nThe second reason is that later on, we are going to be using the host\nTSC value to restore TSC offsets after a host S4 suspend, so we need to\nbe reading the host values, not the guest values here.\n\nSigned-off-by: Zachary Amsden \u003czamsden@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "b183aa580a3a09b5d79224a9022418508532c778",
      "tree": "dd06dc00d07484797db0bd6bc6955e28f4410fb5",
      "parents": [
        "4dd7980b21408624e9b6f3df05719c3c61db6e9f"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zamsden@gmail.com",
        "time": "Fri Feb 03 15:43:53 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:05 2012 +0200"
      },
      "message": "KVM: Fix last_guest_tsc / tsc_offset semantics\n\nThe variable last_guest_tsc was being used as an ad-hoc indicator\nthat guest TSC has been initialized and recorded correctly.  However,\nit may not have been, it could be that guest TSC has been set to some\nlarge value, the back to a small value (by, say, a software reboot).\n\nThis defeats the logic and causes KVM to falsely assume that the\nguest TSC has gone backwards, marking the host TSC unstable, which\nis undesirable behavior.\n\nIn addition, rather than try to compute an offset adjustment for the\nTSC on unstable platforms, just recompute the whole offset.  This\nallows us to get rid of one callsite for adjust_tsc_offset, which\nis problematic because the units it takes are in guest units, but\nhere, the computation was originally being done in host units.\n\nDoing this, and also recording last_guest_tsc when the TSC is written\nallow us to remove the tricky logic which depended on last_guest_tsc\nbeing zero to indicate a reset of uninitialized value.\n\nInstead, we now have the guarantee that the guest TSC offset is\nalways at least something which will get us last_guest_tsc.\n\nSigned-off-by: Zachary Amsden \u003czamsden@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "4dd7980b21408624e9b6f3df05719c3c61db6e9f",
      "tree": "7e6aeca9bea53b82ac5fee6acc6312e299a2dcb0",
      "parents": [
        "5d3cb0f6a8e3af018a522ae8d36f8f7d2511b5d8"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zamsden@gmail.com",
        "time": "Fri Feb 03 15:43:52 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:04 2012 +0200"
      },
      "message": "KVM: Leave TSC synchronization window open with each new sync\n\nCurrently, when the TSC is written by the guest, the variable\nns is updated to force the current write to appear to have taken\nplace at the time of the first write in this sync phase.  This\nleaves a cliff at the end of the match window where updates will\nfall of the end.  There are two scenarios where this can be a\nproblem in practe - first, on a system with a large number of\nVCPUs, the sync period may last for an extended period of time.\n\nThe second way this can happen is if the VM reboots very rapidly\nand we catch a VCPU TSC synchronization just around the edge.\nWe may be unaware of the reboot, and thus the first VCPU might\nsynchronize with an old set of the timer (at, say 0.97 seconds\nago, when first powered on).  The second VCPU can come in 0.04\nseconds later to try to synchronize, but it misses the window\nbecause it is just over the threshold.\n\nInstead, stop doing this artificial setback of the ns variable\nand just update it with every write of the TSC.\n\nIt may be observed that doing so causes values computed by\ncompute_guest_tsc to diverge slightly across CPUs - note that\nthe last_tsc_ns and last_tsc_write variable are used here, and\nnow they last_tsc_ns will be different for each VCPU, reflecting\nthe actual time of the update.\n\nHowever, compute_guest_tsc is used only for guests which already\nhave TSC stability issues, and further, note that the previous\npatch has caused last_tsc_write to be incremented by the difference\nin nanoseconds, converted back into guest cycles.  As such, only\nboundary rounding errors should be visible, which given the\nresolution in nanoseconds, is going to only be a few cycles and\nonly visible in cross-CPU consistency tests.  The problem can be\nfixed by adding a new set of variables to track the start offset\nand start write value for the current sync cycle.\n\nSigned-off-by: Zachary Amsden \u003czamsden@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "5d3cb0f6a8e3af018a522ae8d36f8f7d2511b5d8",
      "tree": "4299c77a00d893615ded5f31c6112578edfb3dc3",
      "parents": [
        "cc578287e3224d0da196cc1d226bdae6b068faa7"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zamsden@gmail.com",
        "time": "Fri Feb 03 15:43:51 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:10:03 2012 +0200"
      },
      "message": "KVM: Improve TSC offset matching\n\nThere are a few improvements that can be made to the TSC offset\nmatching code.  First, we don\u0027t need to call the 128-bit multiply\n(especially on a constant number), the code works much nicer to\ndo computation in nanosecond units.\n\nSecond, the way everything is setup with software TSC rate scaling,\nwe currently have per-cpu rates.  Obviously this isn\u0027t too desirable\nto use in practice, but if for some reason we do change the rate of\nall VCPUs at runtime, then reset the TSCs, we will only want to\nmatch offsets for VCPUs running at the same rate.\n\nFinally, for the case where we have an unstable host TSC, but\nrate scaling is being done in hardware, we should call the platform\ncode to compute the TSC offset, so the math is reorganized to recompute\nthe base instead, then transform the base into an offset using the\nexisting API.\n\n[avi: fix 64-bit division on i386]\n\nSigned-off-by: Zachary Amsden \u003czamsden@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n\nKVM: Fix 64-bit division in kvm_write_tsc()\n\nBreaks i386 build.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "cc578287e3224d0da196cc1d226bdae6b068faa7",
      "tree": "c4352ebbd4d35de296622a8be99d76a1a6a48793",
      "parents": [
        "a59cb29e4d81e025192550c2703f305637f016f6"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zamsden@gmail.com",
        "time": "Fri Feb 03 15:43:50 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Mar 08 14:09:35 2012 +0200"
      },
      "message": "KVM: Infrastructure for software and hardware based TSC rate scaling\n\nThis requires some restructuring; rather than use \u0027virtual_tsc_khz\u0027\nto indicate whether hardware rate scaling is in effect, we consider\neach VCPU to always have a virtual TSC rate.  Instead, there is new\nlogic above the vendor-specific hardware scaling that decides whether\nit is even necessary to use and updates all rate variables used by\ncommon code.  This means we can simply query the virtual rate at\nany point, which is needed for software rate scaling.\n\nThere is also now a threshold added to the TSC rate scaling; minor\ndifferences and variations of measured TSC rate can accidentally\nprovoke rate scaling to be used when it is not needed.  Instead,\nwe have a tolerance variable called tsc_tolerance_ppm, which is\nthe maximum variation from user requested rate at which scaling\nwill be used.  The default is 250ppm, which is the half the\nthreshold for NTP adjustment, allowing for some hardware variation.\n\nIn the event that hardware rate scaling is not available, we can\nkludge a bit by forcing TSC catchup to turn on when a faster than\nhardware speed has been requested, but there is nothing available\nyet for the reverse case; this requires a trap and emulate software\nimplementation for RDTSC, which is still forthcoming.\n\n[avi: fix 64-bit division on i386]\n\nSigned-off-by: Zachary Amsden \u003czamsden@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a59cb29e4d81e025192550c2703f305637f016f6",
      "tree": "ce323a9e1efdf78637f7f4f564c7588031b66ac3",
      "parents": [
        "df156f90a0f90649dd38b7667901ef85478f3d2b"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 03 12:28:31 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:34 2012 +0200"
      },
      "message": "KVM: x86: increase recommended max vcpus to 160\n\nIncrease recommended max vcpus from 64 to 160 (tested internally\nat Red Hat).\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "df156f90a0f90649dd38b7667901ef85478f3d2b",
      "tree": "a10e2f0700ee0f4ce9304963e3ddbf0678a82934",
      "parents": [
        "242ec97c358256ad6e62dab869f63a03cd244122"
      ],
      "author": {
        "name": "Igor Mammedov",
        "email": "imammedo@redhat.com",
        "time": "Tue Feb 07 15:52:44 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:32 2012 +0200"
      },
      "message": "x86: Introduce x86_cpuinit.early_percpu_clock_init hook\n\nWhen kvm guest uses kvmclock, it may hang on vcpu hot-plug.\nThis is caused by an overflow in pvclock_get_nsec_offset,\n\n    u64 delta \u003d tsc - shadow-\u003etsc_timestamp;\n\nwhich in turn is caused by an undefined values from percpu\nhv_clock that hasn\u0027t been initialized yet.\nUninitialized clock on being booted cpu is accessed from\n   start_secondary\n    -\u003e smp_callin\n      -\u003e  smp_store_cpu_info\n        -\u003e identify_secondary_cpu\n          -\u003e mtrr_ap_init\n            -\u003e mtrr_restore\n              -\u003e stop_machine_from_inactive_cpu\n                -\u003e queue_stop_cpus_work\n                  ...\n                    -\u003e sched_clock\n                      -\u003e kvm_clock_read\nwhich is well before x86_cpuinit.setup_percpu_clockev call in\nstart_secondary, where percpu clock is initialized.\n\nThis patch introduces a hook that allows to setup/initialize\nper_cpu clock early and avoid overflow due to reading\n  - undefined values\n  - old values if cpu was offlined and then onlined again\n\nAnother possible early user of this clock source is ftrace that\naccesses it to get timestamps for ring buffer entries. So if\nmtrr_ap_init is moved from identify_secondary_cpu to past\nx86_cpuinit.setup_percpu_clockev in start_secondary, ftrace\nmay cause the same overflow/hang on cpu hot-plug anyway.\n\nMore complete description of the problem:\n  https://lkml.org/lkml/2012/2/2/101\n\nCredits to Marcelo Tosatti \u003cmtosatti@redhat.com\u003e for hook idea.\n\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Igor Mammedov \u003cimammedo@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "242ec97c358256ad6e62dab869f63a03cd244122",
      "tree": "58dd14b9972084f95a31ea3a2fa51e226b8bef7d",
      "parents": [
        "d2a1b483a4a3f4bbb5fec1877f716c15ac7fa405"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Jan 24 15:06:05 2012 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:30 2012 +0200"
      },
      "message": "KVM: x86: reset edge sense circuit of i8259 on init\n\nThe spec says that during initialization \"The edge sense circuit is\nreset which means that following initialization an interrupt request\n(IR) input must make a low-to-high transition to generate an interrupt\",\nbut currently if edge triggered interrupt is in IRR it is delivered\nafter i8259 initialization.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "d2a1b483a4a3f4bbb5fec1877f716c15ac7fa405",
      "tree": "3c1e6162250afb6c79f846749d91d71d2ccc0712",
      "parents": [
        "b7f5d0114c708d6efd264a2c5e5a31cf292a9cec"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Jan 16 19:12:11 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:28 2012 +0200"
      },
      "message": "KVM: PPC: Add HPT preallocator\n\nWe\u0027re currently allocating 16MB of linear memory on demand when creating\na guest. That does work some times, but finding 16MB of linear memory\navailable in the system at runtime is definitely not a given.\n\nSo let\u0027s add another command line option similar to the RMA preallocator,\nthat we can use to keep a pool of page tables around. Now, when a guest\ngets created it has a pretty low chance of receiving an OOM.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "b7f5d0114c708d6efd264a2c5e5a31cf292a9cec",
      "tree": "898cd5e55e9caf728b742ec1c4355882d659efd7",
      "parents": [
        "b4e706111d501991c59d2af23a299ab52a06b03d"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Tue Jan 17 15:11:28 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:27 2012 +0200"
      },
      "message": "KVM: PPC: Initialize linears with zeros\n\nRMAs and HPT preallocated spaces should be zeroed, so we don\u0027t accidently\nleak information from previous VM executions.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "b4e706111d501991c59d2af23a299ab52a06b03d",
      "tree": "b341991a0653307f026a6be570b8de5c62b40ea1",
      "parents": [
        "9cf7c0e465197fa97972428e93162318e917f8ed"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Jan 16 16:50:10 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:25 2012 +0200"
      },
      "message": "KVM: PPC: Convert RMA allocation into generic code\n\nWe have code to allocate big chunks of linear memory on bootup for later use.\nThis code is currently used for RMA allocation, but can be useful beyond that\nextent.\n\nMake it generic so we can reuse it for other stuff later.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "9cf7c0e465197fa97972428e93162318e917f8ed",
      "tree": "72932bc5775bf167988f85840c773ec157877174",
      "parents": [
        "9d4cba7f93c52d4121ab9c6f289e582d368a6979"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Thu Jan 19 00:23:46 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:23 2012 +0200"
      },
      "message": "KVM: PPC: E500: Fail init when not on e500v2\n\nWhen enabling the current KVM code on e500mc, I get the following oops:\n\n    Oops: Exception in kernel mode, sig: 4 [#1]\n    SMP NR_CPUS\u003d8 P2041 RDB\n    Modules linked in:\n    NIP: c067df4c LR: c067df44 CTR: 00000000\n    REGS: ee055ed0 TRAP: 0700   Not tainted  (3.2.0-10391-g36c5afe)\n    MSR: 00029002 \u003cCE,EE,ME\u003e  CR: 24042022  XER: 00000000\n    TASK \u003d ee0429b0[1] \u0027swapper/0\u0027 THREAD: ee054000 CPU: 2\n    GPR00: c067df44 ee055f80 ee0429b0 00000000 00000058 0000003f ee211600 60c6b864\n    GPR08: 7cc903a6 0000002c 00000000 00000001 44042082 2d180088 00000000 00000000\n    GPR16: c0000a00 00000014 3fffffff 03fe9000 00000015 7ff3be68 c06e0000 00000000\n    GPR24: 00000000 00000000 00001720 c067df1c c06e0000 00000000 ee054000 c06ab51c\n    NIP [c067df4c] kvmppc_e500_init+0x30/0xf8\n    LR [c067df44] kvmppc_e500_init+0x28/0xf8\n    Call Trace:\n    [ee055f80] [c067df44] kvmppc_e500_init+0x28/0xf8 (unreliable)\n    [ee055fb0] [c0001d30] do_one_initcall+0x50/0x1f0\n    [ee055fe0] [c06721dc] kernel_init+0xa4/0x14c\n    [ee055ff0] [c000e910] kernel_thread+0x4c/0x68\n    Instruction dump:\n    9421ffd0 7c0802a6 93410018 9361001c 90010034 93810020 93a10024 93c10028\n    93e1002c 4bfffe7d 2c030000 408200a4 \u003c7c1082a6\u003e 90010008 7c1182a6 9001000c\n    ---[ end trace b8ef4903fcbf9dd3 ]---\n\nSince it doesn\u0027t make sense to run the init function on any non-supported\nplatform, we can just call our \"is this platform supported?\" function and\nbail out of init() if it\u0027s not.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "9d4cba7f93c52d4121ab9c6f289e582d368a6979",
      "tree": "482c7d42dcf6921cf82cd54c51c5d0f07b64b748",
      "parents": [
        "1a18a69b762374c423305772500f36eb8984ca52"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Jan 12 20:09:51 2012 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:22 2012 +0200"
      },
      "message": "KVM: Move gfn_to_memslot() to kvm_host.h\n\nThis moves __gfn_to_memslot() and search_memslots() from kvm_main.c to\nkvm_host.h to reduce the code duplication caused by the need for\nnon-modular code in arch/powerpc/kvm/book3s_hv_rm_mmu.c to call\ngfn_to_memslot() in real mode.\n\nRather than putting gfn_to_memslot() itself in a header, which would\nlead to increased code size, this puts __gfn_to_memslot() in a header.\nThen, the non-modular uses of gfn_to_memslot() are changed to call\n__gfn_to_memslot() instead.  This way there is only one place in the\nsource code that needs to be changed should the gfn_to_memslot()\nimplementation need to be modified.\n\nOn powerpc, the Book3S HV style of KVM has code that is called from\nreal mode which needs to call gfn_to_memslot() and thus needs this.\n(Module code is allocated in the vmalloc region, which can\u0027t be\naccessed in real mode.)\n\nWith this, we can remove builtin_gfn_to_memslot() from book3s_hv_rm_mmu.c.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "1a18a69b762374c423305772500f36eb8984ca52",
      "tree": "df0c7276bac2b3899a7d033fa24783e84e7817ab",
      "parents": [
        "a52315e1d549dad80ff443151927226c11fd8c2b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Feb 01 12:23:21 2012 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:57:20 2012 +0200"
      },
      "message": "KVM: x86 emulator: reject SYSENTER in compatibility mode on AMD guests\n\nIf the guest thinks it\u0027s an AMD, it will not have prepared the SYSENTER MSRs,\nand if the guest executes SYSENTER in compatibility mode, it will fails.\n\nDetect this condition and #UD instead, like the spec says.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a52315e1d549dad80ff443151927226c11fd8c2b",
      "tree": "8b23219f2e916c53941994bbcba756aee8c4bf46",
      "parents": [
        "b93a35532767a2cf78bdbc88730d5c28aa66b941"
      ],
      "author": {
        "name": "Julian Stecklina",
        "email": "js@alien8.de",
        "time": "Mon Jan 16 14:02:20 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:43 2012 +0200"
      },
      "message": "KVM: Don\u0027t mistreat edge-triggered INIT IPI as INIT de-assert. (LAPIC)\n\nIf the guest programs an IPI with level\u003d0 (de-assert) and trig_mode\u003d0 (edge),\nit is erroneously treated as INIT de-assert and ignored, but to quote the\nspec: \"For this delivery mode [INIT de-assert], the level flag must be set to\n0 and trigger mode flag to 1.\"\n\nSigned-off-by: Julian Stecklina \u003cjs@alien8.de\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "b93a35532767a2cf78bdbc88730d5c28aa66b941",
      "tree": "604c5c62ed765b1059735056a01c18020b0e4c26",
      "parents": [
        "e2358851efbcdc34583ee11971a6e4d587ea8bf9"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Jan 18 20:07:09 2012 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:43 2012 +0200"
      },
      "message": "KVM: fix error handling for out of range irq\n\nfind_index_from_host_irq returns 0 on error\nbut callers assume \u003c 0 on error. This should\nnot matter much: an out of range irq should never happen since\nirq handler was registered with this irq #,\nand even if it does we get a spurious msix irq in guest\nand typically nothing terrible happens.\n\nStill, better to make it consistent.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "e2358851efbcdc34583ee11971a6e4d587ea8bf9",
      "tree": "9938df0dd0863d7f3b70539f668751288d60bf0f",
      "parents": [
        "e4b35cc960bf216548516d8e39f5e364cfbbc86b"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Tue Jan 17 14:09:50 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:43 2012 +0200"
      },
      "message": "KVM: SVM: comment nested paging and virtualization module parameters\n\nAlso use true instead of 1 for enabling by default.\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "e4b35cc960bf216548516d8e39f5e364cfbbc86b",
      "tree": "00c9039593840cc511ad67dc378d52546aeb91f5",
      "parents": [
        "9373e2c0576ee15b13e93bc5c5b3ef31d0612992"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Tue Jan 17 19:52:15 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:43 2012 +0200"
      },
      "message": "KVM: MMU: Remove unused kvm parameter from rmap_next()\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "9373e2c0576ee15b13e93bc5c5b3ef31d0612992",
      "tree": "67e2d3164a3cac1045151630deb17b2ceb1b2a1e",
      "parents": [
        "3ea8b75e47ac70bdd0a2c0492102682d43bfa3c4"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Tue Jan 17 19:51:20 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:42 2012 +0200"
      },
      "message": "KVM: MMU: Remove unused kvm parameter from __gfn_to_rmap()\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "3ea8b75e47ac70bdd0a2c0492102682d43bfa3c4",
      "tree": "5fd0c2908b99d3a7bdf9e404d4d08a3ed397b202",
      "parents": [
        "2adb5ad9fe1b44d0ae8b00d2bd6568e6163215b3"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Tue Jan 17 19:50:08 2012 +0900"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:42 2012 +0200"
      },
      "message": "KVM: MMU: Remove unused kvm_pte_chain\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "2adb5ad9fe1b44d0ae8b00d2bd6568e6163215b3",
      "tree": "810f4ee0e638b1774efae25cfcc5a7090e47fed7",
      "parents": [
        "28867cee754c07b3fa0a679ed2ea394843130217"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jan 16 15:08:45 2012 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:42 2012 +0200"
      },
      "message": "KVM: x86 emulator: Remove byte-sized MOVSX/MOVZX hack\n\nCurrently we treat MOVSX/MOVZX with a byte source as a byte instruction,\nand change the destination operand size with a hack.  Change it to be\na word instruction, so the destination receives its natural size, and\nchange the source to be SrcMem8.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "28867cee754c07b3fa0a679ed2ea394843130217",
      "tree": "ca9b23901a25dbe749b9e5ce1fbe535ee083b40c",
      "parents": [
        "54f65795c8f6e192540756085d738e66ab0917a0"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jan 16 15:08:44 2012 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:42 2012 +0200"
      },
      "message": "KVM: x86 emulator: add 8-bit memory operands\n\nUseful for MOVSX/MOVZX.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "54f65795c8f6e192540756085d738e66ab0917a0",
      "tree": "3efd1dd71cbc7cf8861bdfb3aa1dc89c62a40c16",
      "parents": [
        "b3c5d3c2a49602c370de6d02fdb923bc48cd1abc"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Wed Jan 11 13:37:35 2012 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:41 2012 +0200"
      },
      "message": "KVM: PPC: refer to paravirt docs in header file\n\nInstead of keeping separate copies of struct kvm_vcpu_arch_shared (one in\nthe code, one in the docs) that inevitably fail to be kept in sync\n(already sr[] is missing from the doc version), just point to the header\nfile as the source of documentation on the contents of the magic page.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nAcked-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "b3c5d3c2a49602c370de6d02fdb923bc48cd1abc",
      "tree": "f0e18b17fdf764be61f3b2f1b5ac009cbc12dee8",
      "parents": [
        "31f3438eca2fc90dc892e0e9963ba4b93a2c8383"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Sat Jan 07 02:07:38 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:41 2012 +0200"
      },
      "message": "KVM: PPC: Rename MMIO register identifiers\n\nWe need the KVM_REG namespace for generic register settings now, so\nlet\u0027s rename the existing users to something different, enabling\nus to reuse the namespace for more visible interfaces.\n\nWhile at it, also move these private constants to a private header.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "31f3438eca2fc90dc892e0e9963ba4b93a2c8383",
      "tree": "21f3b35bf1941c3429299987564bdca3b1dd64e7",
      "parents": [
        "1022fc3d3bfaca09d5d6bfcc93a168de16840814"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:26:50 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:41 2012 +0200"
      },
      "message": "KVM: PPC: Move kvm_vcpu_ioctl_[gs]et_one_reg down to platform-specific code\n\nThis moves the get/set_one_reg implementation down from powerpc.c into\nbooke.c, book3s_pr.c and book3s_hv.c.  This avoids #ifdefs in C code,\nbut more importantly, it fixes a bug on Book3s HV where we were\naccessing beyond the end of the kvm_vcpu struct (via the to_book3s()\nmacro) and corrupting memory, causing random crashes and file corruption.\n\nOn Book3s HV we only accept setting the HIOR to zero, since the guest\nruns in supervisor mode and its vectors are never offset from zero.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n[agraf update to apply on top of changed ONE_REG patches]\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "1022fc3d3bfaca09d5d6bfcc93a168de16840814",
      "tree": "fee0d7dcceeb9704daf0bfc6b7e9a708f32b442e",
      "parents": [
        "e24ed81fedd551e80378be62fa0b0532480ea7d4"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Wed Sep 14 21:45:23 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:41 2012 +0200"
      },
      "message": "KVM: PPC: Add support for explicit HIOR setting\n\nUntil now, we always set HIOR based on the PVR, but this is just wrong.\nInstead, we should be setting HIOR explicitly, so user space can decide\nwhat the initial HIOR value is - just like on real hardware.\n\nWe keep the old PVR based way around for backwards compatibility, but\nonce user space uses the SET_ONE_REG based method, we drop the PVR logic.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "e24ed81fedd551e80378be62fa0b0532480ea7d4",
      "tree": "254bcf7fbe858bc75087432667c7409e58b35575",
      "parents": [
        "6b75e6bfef7ba108ac3df0d430d80dea68fde4bf"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Wed Sep 14 10:02:41 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:40 2012 +0200"
      },
      "message": "KVM: PPC: Add generic single register ioctls\n\nRight now we transfer a static struct every time we want to get or set\nregisters. Unfortunately, over time we realize that there are more of\nthese than we thought of before and the extensibility and flexibility of\ntransferring a full struct every time is limited.\n\nSo this is a new approach to the problem. With these new ioctls, we can\nget and set a single register that is identified by an ID. This allows for\nvery precise and limited transmittal of data. When we later realize that\nit\u0027s a better idea to shove over multiple registers at once, we can reuse\nmost of the infrastructure and simply implement a GET_MANY_REGS / SET_MANY_REGS\ninterface.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "6b75e6bfef7ba108ac3df0d430d80dea68fde4bf",
      "tree": "6b42f3eddc94650a55ccf8a6d57e0f2e9597a919",
      "parents": [
        "d37b1a037cae725e69e5bf96f58544b69d7c93a6"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Wed Dec 07 10:24:56 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:40 2012 +0200"
      },
      "message": "KVM: PPC: Use the vcpu kmem_cache when allocating new VCPUs\n\nCurrently the code kzalloc()s new VCPUs instead of using the kmem_cache\nwhich is created when KVM is initialized.\n\nModify it to allocate VCPUs from that kmem_cache.\n\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "d37b1a037cae725e69e5bf96f58544b69d7c93a6",
      "tree": "73db07a65bd9ebbeae0e982cbb5291a047dddb38",
      "parents": [
        "82ed36164c8a8ee685ea3fb3c4f741214ac070ca"
      ],
      "author": {
        "name": "Liu Yu",
        "email": "yu.liu@freescale.com",
        "time": "Tue Dec 20 14:42:56 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:40 2012 +0200"
      },
      "message": "KVM: PPC: booke: Add booke206 TLB trace\n\nThe existing kvm_stlb_write/kvm_gtlb_write were a poor match for\nthe e500/book3e MMU -- mas1 was passed as \"tid\", mas2 was limited\nto \"unsigned int\" which will be a problem on 64-bit, mas3/7 got\nsplit up rather than treated as a single 64-bit word, etc.\n\nSigned-off-by: Liu Yu \u003cyu.liu@freescale.com\u003e\n[scottwood@freescale.com: made mas2 64-bit, and added mas8 init]\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "82ed36164c8a8ee685ea3fb3c4f741214ac070ca",
      "tree": "259f2e7a839d7506d7fbb9a3be6763ad2f5e9fd2",
      "parents": [
        "55514893739d28f095f19b012133eea4cb4a9390"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Dec 15 02:03:22 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:39 2012 +0200"
      },
      "message": "KVM: PPC: Book3s HV: Implement get_dirty_log using hardware changed bit\n\nThis changes the implementation of kvm_vm_ioctl_get_dirty_log() for\nBook3s HV guests to use the hardware C (changed) bits in the guest\nhashed page table.  Since this makes the implementation quite different\nfrom the Book3s PR case, this moves the existing implementation from\nbook3s.c to book3s_pr.c and creates a new implementation in book3s_hv.c.\nThat implementation calls kvmppc_hv_get_dirty_log() to do the actual\nwork by calling kvm_test_clear_dirty on each page.  It iterates over\nthe HPTEs, clearing the C bit if set, and returns 1 if any C bit was\nset (including the saved C bit in the rmap entry).\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "55514893739d28f095f19b012133eea4cb4a9390",
      "tree": "53133098473395a8a4ff1f00414137c2481a5fd0",
      "parents": [
        "bad3b5075eeb18cb1641b4171618add638bc0fa7"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Dec 15 02:02:47 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:39 2012 +0200"
      },
      "message": "KVM: PPC: Book3S HV: Use the hardware referenced bit for kvm_age_hva\n\nThis uses the host view of the hardware R (referenced) bit to speed\nup kvm_age_hva() and kvm_test_age_hva().  Instead of removing all\nthe relevant HPTEs in kvm_age_hva(), we now just reset their R bits\nif set.  Also, kvm_test_age_hva() now scans the relevant HPTEs to\nsee if any of them have R set.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "bad3b5075eeb18cb1641b4171618add638bc0fa7",
      "tree": "11c599691f17ef931ef5dbb8d8e788c500752554",
      "parents": [
        "a92bce95f0f967dfa6205527d7143d276b0be6a7"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Dec 15 02:02:02 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:39 2012 +0200"
      },
      "message": "KVM: PPC: Book3s HV: Maintain separate guest and host views of R and C bits\n\nThis allows both the guest and the host to use the referenced (R) and\nchanged (C) bits in the guest hashed page table.  The guest has a view\nof R and C that is maintained in the guest_rpte field of the revmap\nentry for the HPTE, and the host has a view that is maintained in the\nrmap entry for the associated gfn.\n\nBoth view are updated from the guest HPT.  If a bit (R or C) is zero\nin either view, it will be initially set to zero in the HPTE (or HPTEs),\nuntil set to 1 by hardware.  When an HPTE is removed for any reason,\nthe R and C bits from the HPTE are ORed into both views.  We have to\nbe careful to read the R and C bits from the HPTE after invalidating\nit, but before unlocking it, in case of any late updates by the hardware.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "a92bce95f0f967dfa6205527d7143d276b0be6a7",
      "tree": "fe0fb65201a532f360f6100959b6442f6829c94d",
      "parents": [
        "b5434032fcfd7490c6453feb397fb781762b6f09"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Dec 15 02:01:10 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:39 2012 +0200"
      },
      "message": "KVM: PPC: Book3S HV: Keep HPTE locked when invalidating\n\nThis reworks the implementations of the H_REMOVE and H_BULK_REMOVE\nhcalls to make sure that we keep the HPTE locked and in the reverse-\nmapping chain until we have finished invalidating it.  Previously\nwe would remove it from the chain and unlock it before invalidating\nit, leaving a tiny window when the guest could access the page even\nthough we believe we have removed it from the guest (e.g.,\nkvm_unmap_hva() has been called for the page and has found no HPTEs\nin the chain).  In addition, we\u0027ll need this for future patches where\nwe will need to read the R and C bits in the HPTE after invalidating\nit.\n\nDoing this required restructuring kvmppc_h_bulk_remove() substantially.\nSince we want to batch up the tlbies, we now need to keep several\nHPTEs locked simultaneously.  In order to avoid possible deadlocks,\nwe don\u0027t spin on the HPTE bitlock for any except the first HPTE in\na batch.  If we can\u0027t acquire the HPTE bitlock for the second or\nsubsequent HPTE, we terminate the batch at that point, do the tlbies\nthat we have accumulated so far, unlock those HPTEs, and then start\na new batch to do the remaining invalidations.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "b5434032fcfd7490c6453feb397fb781762b6f09",
      "tree": "a0fade79c7b73169c1af134459392f489b025c56",
      "parents": [
        "03cdab5340b423ec88fc18eb158a62a8a7b94d7f"
      ],
      "author": {
        "name": "Matt Evans",
        "email": "matt@ozlabs.org",
        "time": "Wed Dec 07 16:55:57 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:38 2012 +0200"
      },
      "message": "KVM: PPC: Add KVM_CAP_NR_VCPUS and KVM_CAP_MAX_VCPUS\n\nPPC KVM lacks these two capabilities, and as such a userland system must assume\na max of 4 VCPUs (following api.txt).  With these, a userland can determine\na more realistic limit.\n\nSigned-off-by: Matt Evans \u003cmatt@ozlabs.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "03cdab5340b423ec88fc18eb158a62a8a7b94d7f",
      "tree": "d7cc6fe86d754690b28938b933ecc85cee3acb86",
      "parents": [
        "4cf302bc106566c5bad523337296ea8b72df63f5"
      ],
      "author": {
        "name": "Matt Evans",
        "email": "matt@ozlabs.org",
        "time": "Tue Dec 06 21:19:42 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:38 2012 +0200"
      },
      "message": "KVM: PPC: Fix vcpu_create dereference before validity check.\n\nFix usage of vcpu struct before check that it\u0027s actually valid.\n\nSigned-off-by: Matt Evans \u003cmatt@ozlabs.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "4cf302bc106566c5bad523337296ea8b72df63f5",
      "tree": "65c633e045baf08b5700301725093c3b43330e1f",
      "parents": [
        "a355aa54f1d25dff83c0feef8863d83a76988fdb"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:38:51 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:38 2012 +0200"
      },
      "message": "KVM: PPC: Allow for read-only pages backing a Book3S HV guest\n\nWith this, if a guest does an H_ENTER with a read/write HPTE on a page\nwhich is currently read-only, we make the actual HPTE inserted be a\nread-only version of the HPTE.  We now intercept protection faults as\nwell as HPTE not found faults, and for a protection fault we work out\nwhether it should be reflected to the guest (e.g. because the guest HPTE\ndidn\u0027t allow write access to usermode) or handled by switching to\nkernel context and calling kvmppc_book3s_hv_page_fault, which will then\nrequest write access to the page and update the actual HPTE.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "a355aa54f1d25dff83c0feef8863d83a76988fdb",
      "tree": "4fe27e8dd1a3935757b319726a8b8bdc10496930",
      "parents": [
        "342d3db763f2621ed4546ebf8f6c61cb29d7fbdb"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:37:21 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:38 2012 +0200"
      },
      "message": "KVM: Add barriers to allow mmu_notifier_retry to be used locklessly\n\nThis adds an smp_wmb in kvm_mmu_notifier_invalidate_range_end() and an\nsmp_rmb in mmu_notifier_retry() so that mmu_notifier_retry() will give\nthe correct answer when called without kvm-\u003emmu_lock being held.\nPowerPC Book3S HV KVM wants to use a bitlock per guest page rather than\na single global spinlock in order to improve the scalability of updates\nto the guest MMU hashed page table, and so needs this.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "342d3db763f2621ed4546ebf8f6c61cb29d7fbdb",
      "tree": "bc806911dd085905a5a97419fbc4f9fc1eeb142d",
      "parents": [
        "697d3899dcb4bcd918d060a92db57b794e56b077"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:38:05 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:38 2012 +0200"
      },
      "message": "KVM: PPC: Implement MMU notifiers for Book3S HV guests\n\nThis adds the infrastructure to enable us to page out pages underneath\na Book3S HV guest, on processors that support virtualized partition\nmemory, that is, POWER7.  Instead of pinning all the guest\u0027s pages,\nwe now look in the host userspace Linux page tables to find the\nmapping for a given guest page.  Then, if the userspace Linux PTE\ngets invalidated, kvm_unmap_hva() gets called for that address, and\nwe replace all the guest HPTEs that refer to that page with absent\nHPTEs, i.e. ones with the valid bit clear and the HPTE_V_ABSENT bit\nset, which will cause an HDSI when the guest tries to access them.\nFinally, the page fault handler is extended to reinstantiate the\nguest HPTE when the guest tries to access a page which has been paged\nout.\n\nSince we can\u0027t intercept the guest DSI and ISI interrupts on PPC970,\nwe still have to pin all the guest pages on PPC970.  We have a new flag,\nkvm-\u003earch.using_mmu_notifiers, that indicates whether we can page\nguest pages out.  If it is not set, the MMU notifier callbacks do\nnothing and everything operates as before.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "697d3899dcb4bcd918d060a92db57b794e56b077",
      "tree": "173cdd849eca204fec8b64ea520b619372c3d970",
      "parents": [
        "06ce2c63d933e347f8a199f123a8a293619ab3d2"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:36:37 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:37 2012 +0200"
      },
      "message": "KVM: PPC: Implement MMIO emulation support for Book3S HV guests\n\nThis provides the low-level support for MMIO emulation in Book3S HV\nguests.  When the guest tries to map a page which is not covered by\nany memslot, that page is taken to be an MMIO emulation page.  Instead\nof inserting a valid HPTE, we insert an HPTE that has the valid bit\nclear but another hypervisor software-use bit set, which we call\nHPTE_V_ABSENT, to indicate that this is an absent page.  An\nabsent page is treated much like a valid page as far as guest hcalls\n(H_ENTER, H_REMOVE, H_READ etc.) are concerned, except of course that\nan absent HPTE doesn\u0027t need to be invalidated with tlbie since it\nwas never valid as far as the hardware is concerned.\n\nWhen the guest accesses a page for which there is an absent HPTE, it\nwill take a hypervisor data storage interrupt (HDSI) since we now set\nthe VPM1 bit in the LPCR.  Our HDSI handler for HPTE-not-present faults\nlooks up the hash table and if it finds an absent HPTE mapping the\nrequested virtual address, will switch to kernel mode and handle the\nfault in kvmppc_book3s_hv_page_fault(), which at present just calls\nkvmppc_hv_emulate_mmio() to set up the MMIO emulation.\n\nThis is based on an earlier patch by Benjamin Herrenschmidt, but since\nheavily reworked.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "06ce2c63d933e347f8a199f123a8a293619ab3d2",
      "tree": "455cd4b0e245675f542649fe509797f60adfe76f",
      "parents": [
        "9d0ef5ea043d1242897d15c71bd1a15da79b4a5d"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:33:07 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:37 2012 +0200"
      },
      "message": "KVM: PPC: Maintain a doubly-linked list of guest HPTEs for each gfn\n\nThis expands the reverse mapping array to contain two links for each\nHPTE which are used to link together HPTEs that correspond to the\nsame guest logical page.  Each circular list of HPTEs is pointed to\nby the rmap array entry for the guest logical page, pointed to by\nthe relevant memslot.  Links are 32-bit HPT entry indexes rather than\nfull 64-bit pointers, to save space.  We use 3 of the remaining 32\nbits in the rmap array entries as a lock bit, a referenced bit and\na present bit (the present bit is needed since HPTE index 0 is valid).\nThe bit lock for the rmap chain nests inside the HPTE lock bit.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "9d0ef5ea043d1242897d15c71bd1a15da79b4a5d",
      "tree": "2847b3bd444b999f3c2a32d4cbb220d0e788e93a",
      "parents": [
        "da9d1d7f2875cc8c1ffbce8f3501d0b33f4e7a4d"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:32:27 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:37 2012 +0200"
      },
      "message": "KVM: PPC: Allow I/O mappings in memory slots\n\nThis provides for the case where userspace maps an I/O device into the\naddress range of a memory slot using a VM_PFNMAP mapping.  In that\ncase, we work out the pfn from vma-\u003evm_pgoff, and record the cache\nenable bits from vma-\u003evm_page_prot in two low-order bits in the\nslot_phys array entries.  Then, in kvmppc_h_enter() we check that the\ncache bits in the HPTE that the guest wants to insert match the cache\nbits in the slot_phys array entry.  However, we do allow the guest to\ncreate what it thinks is a non-cacheable or write-through mapping to\nmemory that is actually cacheable, so that we can use normal system\nmemory as part of an emulated device later on.  In that case the actual\nHPTE we insert is a cacheable HPTE.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "da9d1d7f2875cc8c1ffbce8f3501d0b33f4e7a4d",
      "tree": "a811ee19778715766e720646506311c8fc7d7bd0",
      "parents": [
        "c77162dee7aff6ab5f075da9b60f649cbbeb86cc"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:31:41 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:37 2012 +0200"
      },
      "message": "KVM: PPC: Allow use of small pages to back Book3S HV guests\n\nThis relaxes the requirement that the guest memory be provided as\n16MB huge pages, allowing it to be provided as normal memory, i.e.\nin pages of PAGE_SIZE bytes (4k or 64k).  To allow this, we index\nthe kvm-\u003earch.slot_phys[] arrays with a small page index, even if\nhuge pages are being used, and use the low-order 5 bits of each\nentry to store the order of the enclosing page with respect to\nnormal pages, i.e. log_2(enclosing_page_size / PAGE_SIZE).\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "c77162dee7aff6ab5f075da9b60f649cbbeb86cc",
      "tree": "c1f3f4f71a9fdad6612da20c67520b4fc8fa0b65",
      "parents": [
        "075295dd322b0c0de0c9ecf8e0cb19ee813438ed"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:31:00 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:36 2012 +0200"
      },
      "message": "KVM: PPC: Only get pages when actually needed, not in prepare_memory_region()\n\nThis removes the code from kvmppc_core_prepare_memory_region() that\nlooked up the VMA for the region being added and called hva_to_page\nto get the pfns for the memory.  We have no guarantee that there will\nbe anything mapped there at the time of the KVM_SET_USER_MEMORY_REGION\nioctl call; userspace can do that ioctl and then map memory into the\nregion later.\n\nInstead we defer looking up the pfn for each memory page until it is\nneeded, which generally means when the guest does an H_ENTER hcall on\nthe page.  Since we can\u0027t call get_user_pages in real mode, if we don\u0027t\nalready have the pfn for the page, kvmppc_h_enter() will return\nH_TOO_HARD and we then call kvmppc_virtmode_h_enter() once we get back\nto kernel context.  That calls kvmppc_get_guest_page() to get the pfn\nfor the page, and then calls back to kvmppc_h_enter() to redo the HPTE\ninsertion.\n\nWhen the first vcpu starts executing, we need to have the RMO or VRMA\nregion mapped so that the guest\u0027s real mode accesses will work.  Thus\nwe now have a check in kvmppc_vcpu_run() to see if the RMO/VRMA is set\nup and if not, call kvmppc_hv_setup_rma().  It checks if the memslot\nstarting at guest physical 0 now has RMO memory mapped there; if so it\nsets it up for the guest, otherwise on POWER7 it sets up the VRMA.\nThe function that does that, kvmppc_map_vrma, is now a bit simpler,\nas it calls kvmppc_virtmode_h_enter instead of creating the HPTE itself.\n\nSince we are now potentially updating entries in the slot_phys[]\narrays from multiple vcpu threads, we now have a spinlock protecting\nthose updates to ensure that we don\u0027t lose track of any references\nto pages.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "075295dd322b0c0de0c9ecf8e0cb19ee813438ed",
      "tree": "5e87ae30e3d74feaf2f39f919529f21518e6e17a",
      "parents": [
        "93e602490c1da83162a8b6ba86b4b48a7a0f0c9e"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:30:16 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:36 2012 +0200"
      },
      "message": "KVM: PPC: Make the H_ENTER hcall more reliable\n\nAt present, our implementation of H_ENTER only makes one try at locking\neach slot that it looks at, and doesn\u0027t even retry the ldarx/stdcx.\natomic update sequence that it uses to attempt to lock the slot.  Thus\nit can return the H_PTEG_FULL error unnecessarily, particularly when\nthe H_EXACT flag is set, meaning that the caller wants a specific PTEG\nslot.\n\nThis improves the situation by making a second pass when no free HPTE\nslot is found, where we spin until we succeed in locking each slot in\nturn and then check whether it is full while we hold the lock.  If the\nsecond pass fails, then we return H_PTEG_FULL.\n\nThis also moves lock_hpte to a header file (since later commits in this\nseries will need to use it from other source files) and renames it to\ntry_lock_hpte, which is a somewhat less misleading name.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "93e602490c1da83162a8b6ba86b4b48a7a0f0c9e",
      "tree": "7dd0407af03944cffcfdb7798d0ea6155156700e",
      "parents": [
        "b2b2f16508de10bb1863bdd4ec1fa212111df5b4"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:28:55 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:36 2012 +0200"
      },
      "message": "KVM: PPC: Add an interface for pinning guest pages in Book3s HV guests\n\nThis adds two new functions, kvmppc_pin_guest_page() and\nkvmppc_unpin_guest_page(), and uses them to pin the guest pages where\nthe guest has registered areas of memory for the hypervisor to update,\n(i.e. the per-cpu virtual processor areas, SLB shadow buffers and\ndispatch trace logs) and then unpin them when they are no longer\nrequired.\n\nAlthough it is not strictly necessary to pin the pages at this point,\nsince all guest pages are already pinned, later commits in this series\nwill mean that guest pages aren\u0027t all pinned.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "b2b2f16508de10bb1863bdd4ec1fa212111df5b4",
      "tree": "154d350360e1f619d357bf3ded4d2ac3cefeadb2",
      "parents": [
        "8936dda4c2ed070ecebd786baf35b08584accf4a"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:28:21 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:35 2012 +0200"
      },
      "message": "KVM: PPC: Keep page physical addresses in per-slot arrays\n\nThis allocates an array for each memory slot that is added to store\nthe physical addresses of the pages in the slot.  This array is\nvmalloc\u0027d and accessed in kvmppc_h_enter using real_vmalloc_addr().\nThis allows us to remove the ram_pginfo field from the kvm_arch\nstruct, and removes the 64GB guest RAM limit that we had.\n\nWe use the low-order bits of the array entries to store a flag\nindicating that we have done get_page on the corresponding page,\nand therefore need to call put_page when we are finished with the\npage.  Currently this is set for all pages except those in our\nspecial RMO regions.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "8936dda4c2ed070ecebd786baf35b08584accf4a",
      "tree": "7f75079f3814304050cbf880ecd7ddb9505f63a4",
      "parents": [
        "4e72dbe13528394a413889d73e5025dbdf6cab70"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:27:39 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:35 2012 +0200"
      },
      "message": "KVM: PPC: Keep a record of HV guest view of hashed page table entries\n\nThis adds an array that parallels the guest hashed page table (HPT),\nthat is, it has one entry per HPTE, used to store the guest\u0027s view\nof the second doubleword of the corresponding HPTE.  The first\ndoubleword in the HPTE is the same as the guest\u0027s idea of it, so we\ndon\u0027t need to store a copy, but the second doubleword in the HPTE has\nthe real page number rather than the guest\u0027s logical page number.\nThis allows us to remove the back_translate() and reverse_xlate()\nfunctions.\n\nThis \"reverse mapping\" array is vmalloc\u0027d, meaning that to access it\nin real mode we have to walk the kernel\u0027s page tables explicitly.\nThat is done by the new real_vmalloc_addr() function.  (In fact this\nreturns an address in the linear mapping, so the result is usable\nboth in real mode and in virtual mode.)\n\nThere are also some minor cleanups here: moving the definitions of\nHPT_ORDER etc. to a header file and defining HPT_NPTE for HPT_NPTEG \u003c\u003c 3.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "4e72dbe13528394a413889d73e5025dbdf6cab70",
      "tree": "e7aec9cbd0f0a141af136e76df240ee5673b287f",
      "parents": [
        "befdc0a65afd17181392eff3d43c63407f266a9f"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 12:24:48 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:34 2012 +0200"
      },
      "message": "KVM: PPC: Make wakeups work again for Book3S HV guests\n\nWhen commit f43fdc15fa (\"KVM: PPC: booke: Improve timer register\nemulation\") factored out some code in arch/powerpc/kvm/powerpc.c\ninto a new helper function, kvm_vcpu_kick(), an error crept in\nwhich causes Book3s HV guest vcpus to stall.  This fixes it.\nOn POWER7 machines, guest vcpus are grouped together into virtual\nCPU cores that share a single waitqueue, so it\u0027s important to use\nvcpu-\u003earch.wqp rather than \u0026vcpu-\u003ewq.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "befdc0a65afd17181392eff3d43c63407f266a9f",
      "tree": "1adf9e1cbef1f5d555334de5ce2a9b71ae8dd490",
      "parents": [
        "570135243a33174a5d74641de693b6c0233d1181"
      ],
      "author": {
        "name": "Liu Yu-B13201",
        "email": "Yu.Liu@freescale.com",
        "time": "Thu Dec 01 20:22:53 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:34 2012 +0200"
      },
      "message": "KVM: PPC: Avoid patching paravirt template code\n\nCurrently we patch the whole code include paravirt template code.\nThis isn\u0027t safe for scratch area and has impact to performance.\n\nSigned-off-by: Liu Yu \u003cyu.liu@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "570135243a33174a5d74641de693b6c0233d1181",
      "tree": "bf7e4f4c2d708e56896e1bb4a3db4c2a796df023",
      "parents": [
        "7b11dc993841f1643c0932cf0faf010406502572"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Tue Nov 29 10:40:23 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:34 2012 +0200"
      },
      "message": "KVM: PPC: e500: use hardware hint when loading TLB0 entries\n\nThe hardware maintains a per-set next victim hint.  Using this\nreduces conflicts, especially on e500v2 where a single guest\nTLB entry is mapped to two shadow TLB entries (user and kernel).\nWe want those two entries to go to different TLB ways.\n\nsesel is now only used for TLB1.\n\nReported-by: Liu Yu \u003cyu.liu@freescale.com\u003e\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "7b11dc993841f1643c0932cf0faf010406502572",
      "tree": "503aaa4c06825fd61c20e62c8cad33afb0d5759e",
      "parents": [
        "e371f713db6523d99d8ffae8f9da564055e6de17"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Mon Nov 28 15:20:02 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:32 2012 +0200"
      },
      "message": "KVM: PPC: e500: Fix TLBnCFG in KVM_CONFIG_TLB\n\nThe associativity, not just total size, can differ from the host\nhardware.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "e371f713db6523d99d8ffae8f9da564055e6de17",
      "tree": "87cf4fa16c010640611033c27a8353848bd8cd33",
      "parents": [
        "ae21216bece0a623d09980c120b9c98790a860b9"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Dec 19 13:36:55 2011 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:30 2012 +0200"
      },
      "message": "KVM: PPC: Book3S: PR: Fix signal check race\n\nAs Scott put it:\n\n\u003e If we get a signal after the check, we want to be sure that we don\u0027t\n\u003e receive the reschedule IPI until after we\u0027re in the guest, so that it\n\u003e will cause another signal check.\n\nwe need to have interrupts disabled from the point we do signal_check()\nall the way until we actually enter the guest.\n\nThis patch fixes potential signal loss races.\n\nReported-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "ae21216bece0a623d09980c120b9c98790a860b9",
      "tree": "0025f86a16c8cff37fecc01f7565c929102061bc",
      "parents": [
        "468a12c2b53776721ff83517d4a195b85c5fce54"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Fri Dec 09 15:20:46 2011 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:30 2012 +0200"
      },
      "message": "KVM: PPC: align vcpu_kick with x86\n\nOur vcpu kick implementation differs a bit from x86 which resulted in us not\ndisabling preemption during the kick. Get it a bit closer to what x86 does.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "468a12c2b53776721ff83517d4a195b85c5fce54",
      "tree": "ba417210997c2e3119525641764303d97db32815",
      "parents": [
        "d33ad328c0025c45f4688a769aeebddc342222c1"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Fri Dec 09 14:44:13 2011 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:30 2012 +0200"
      },
      "message": "KVM: PPC: Use get/set for to_svcpu to help preemption\n\nWhen running the 64-bit Book3s PR code without CONFIG_PREEMPT_NONE, we were\ndoing a few things wrong, most notably access to PACA fields without making\nsure that the pointers stay stable accross the access (preempt_disable()).\n\nThis patch moves to_svcpu towards a get/put model which allows us to disable\npreemption while accessing the shadow vcpu fields in the PACA. That way we\ncan run preemptible and everyone\u0027s happy!\n\nReported-by: Jörg Sommer \u003cjoerg@alea.gnuu.de\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "d33ad328c0025c45f4688a769aeebddc342222c1",
      "tree": "a19cbfe239e772d77da6aaebdef0b71bc813a215",
      "parents": [
        "7d82714d4d1293edc57439c796750310866624b2"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Fri Dec 09 15:47:53 2011 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:28 2012 +0200"
      },
      "message": "KVM: PPC: Book3s: PR: No irq_disable in vcpu_run\n\nSomewhere during merges we ended up from\n\n  local_irq_enable()\n  foo();\n  local_irq_disable()\n\nto always keeping irqs enabled during that part. However, we now\nhave the following code:\n\n  foo();\n  local_irq_disable()\n\nwhich disables interrupts without the surrounding code enabling them\nagain! So let\u0027s remove that disable and be happy.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "7d82714d4d1293edc57439c796750310866624b2",
      "tree": "dca025da598927203e640aecc1486470b26d8533",
      "parents": [
        "dfd4d47e9a71c5a35eb67a44cd311efbe1846b7e"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Fri Dec 09 15:46:21 2011 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:27 2012 +0200"
      },
      "message": "KVM: PPC: Book3s: PR: Disable preemption in vcpu_run\n\nWhen entering the guest, we want to make sure we\u0027re not getting preempted\naway, so let\u0027s disable preemption on entry, but enable it again while handling\nguest exits.\n\nReported-by: Jörg Sommer \u003cjoerg@alea.gnuu.de\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "dfd4d47e9a71c5a35eb67a44cd311efbe1846b7e",
      "tree": "1115128a884dabf7d853466b82c553561e4f7b27",
      "parents": [
        "b59049720dd95021dfe0d9f4e1fa9458a67cfe29"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Thu Nov 17 12:39:59 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:27 2012 +0200"
      },
      "message": "KVM: PPC: booke: Improve timer register emulation\n\nDecrementers are now properly driven by TCR/TSR, and the guest\nhas full read/write access to these registers.\n\nThe decrementer keeps ticking (and setting the TSR bit) regardless of\nwhether the interrupts are enabled with TCR.\n\nThe decrementer stops at zero, rather than going negative.\n\nDecrementers (and FITs, once implemented) are delivered as\nlevel-triggered interrupts -- dequeued when the TSR bit is cleared, not\non delivery.\n\nSigned-off-by: Liu Yu \u003cyu.liu@freescale.com\u003e\n[scottwood@freescale.com: significant changes]\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "b59049720dd95021dfe0d9f4e1fa9458a67cfe29",
      "tree": "3b54577e12ba4a84bec409518c6c8f399ebba6e0",
      "parents": [
        "940b45ec18cf00046b8b28299d97066a2c43d559"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Tue Nov 08 18:23:30 2011 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:26 2012 +0200"
      },
      "message": "KVM: PPC: Paravirtualize SPRG4-7, ESR, PIR, MASn\n\nThis allows additional registers to be accessed by the guest\nin PR-mode KVM without trapping.\n\nSPRG4-7 are readable from userspace.  On booke, KVM will sync\nthese registers when it enters the guest, so that accesses from\nguest userspace will work.  The guest kernel, OTOH, must consistently\nuse either the real registers or the shared area between exits.  This\nalso applies to the already-paravirted SPRG3.\n\nOn non-booke, it\u0027s not clear to what extent SPRG4-7 are supported\n(they\u0027re not architected for book3s, but exist on at least some classic\nchips).  They are copied in the get/set regs ioctls, but I do not see any\nnon-booke emulation.  I also do not see any syncing with real registers\n(in PR-mode) including the user-readable SPRG3.  This patch should not\nmake that situation any worse.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "940b45ec18cf00046b8b28299d97066a2c43d559",
      "tree": "a3a768ff3b6fcda9cbed00d93dac1bbf2b95f20c",
      "parents": [
        "29ac26efbdc651303643025c83009ce5766c1676"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Tue Nov 08 18:23:28 2011 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:26 2012 +0200"
      },
      "message": "KVM: PPC: booke: Paravirtualize wrtee\n\nAlso fix wrteei 1 paravirt to check for a pending interrupt.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "29ac26efbdc651303643025c83009ce5766c1676",
      "tree": "463d9c10951b527c6459b2e0d66088e71841f807",
      "parents": [
        "c59a6a3e4e5976a938e21faf3da65a2784187aa7"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Tue Nov 08 18:23:27 2011 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:26 2012 +0200"
      },
      "message": "KVM: PPC: booke: Fix int_pending calculation for MSR[EE] paravirt\n\nint_pending was only being lowered if a bit in pending_exceptions\nwas cleared during exception delivery -- but for interrupts, we clear\nit during IACK/TSR emulation.  This caused paravirt for enabling\nMSR[EE] to be ineffective.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "c59a6a3e4e5976a938e21faf3da65a2784187aa7",
      "tree": "b15779d6ac698f588762a0c42f504e178f630875",
      "parents": [
        "25051b5a5aff0bb71435421b4b80279b789fa0dc"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Tue Nov 08 18:23:25 2011 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:26 2012 +0200"
      },
      "message": "KVM: PPC: booke: Check for MSR[WE] in prepare_to_enter\n\nThis prevents us from inappropriately blocking in a KVM_SET_REGS\nioctl -- the MSR[WE] will take effect when the guest is next entered.\n\nIt also causes SRR1[WE] to be set when we enter the guest\u0027s interrupt\nhandler, which is what e500 hardware is documented to do.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "25051b5a5aff0bb71435421b4b80279b789fa0dc",
      "tree": "2bf51135f6dee991d80e83e4e59fe64b26d94f69",
      "parents": [
        "7e28e60ef974d0eeb43112ef264d8c130f7b7bf4"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Tue Nov 08 18:23:23 2011 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:26 2012 +0200"
      },
      "message": "KVM: PPC: Move prepare_to_enter call site into subarch code\n\nThis function should be called with interrupts disabled, to avoid\na race where an exception is delivered after we check, but the\nresched kick is received before we disable interrupts (and thus doesn\u0027t\nactually trigger the exit code that would recheck exceptions).\n\nbooke already does this properly in the lightweight exit case, but\nnot on initial entry.\n\nFor now, move the call of prepare_to_enter into subarch-specific code so\nthat booke can do the right thing here.  Ideally book3s would do the same\nthing, but I\u0027m having a hard time seeing where it does any interrupt\ndisabling of this sort (plus it has several additional call sites), so\nI\u0027m deferring the book3s fix to someone more familiar with that code.\nbook3s behavior should be unchanged by this patch.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "7e28e60ef974d0eeb43112ef264d8c130f7b7bf4",
      "tree": "8abf647afcd01a0768c1163e019a26856bd706d8",
      "parents": [
        "1d1ef22208876511224a8797657e40e287e1f93d"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Tue Nov 08 18:23:20 2011 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:25 2012 +0200"
      },
      "message": "KVM: PPC: Rename deliver_interrupts to prepare_to_enter\n\nThis function also updates paravirt int_pending, so rename it\nto be more obvious that this is a collection of checks run prior\nto (re)entering a guest.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "1d1ef22208876511224a8797657e40e287e1f93d",
      "tree": "19fb8d995cb0f4818868e5aceb21d3038d750b3d",
      "parents": [
        "7401f6266de021990efc7bc212289219ba8f9a7a"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Tue Nov 08 16:11:59 2011 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:25 2012 +0200"
      },
      "message": "KVM: PPC: booke: check for signals in kvmppc_vcpu_run\n\nCurrently we check prior to returning from a lightweight exit,\nbut not prior to initial entry.\n\nbook3s already does a similar test.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "7401f6266de021990efc7bc212289219ba8f9a7a",
      "tree": "829d48eedaa872ffa1b3d39e1cac0be0497788b5",
      "parents": [
        "dc2babfea592e633cf3890294af6545609b466be"
      ],
      "author": {
        "name": "Bharat Bhushan",
        "email": "r65777@freescale.com",
        "time": "Mon Oct 31 14:22:08 2011 +0530"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:25 2012 +0200"
      },
      "message": "KVM: PPC: booke: Do Not start decrementer when SPRN_DEC set 0\n\nAs per specification the decrementer interrupt not happen when DEC is written\nwith 0. Also when DEC is zero, no decrementer running. So we should not start\nhrtimer for decrementer when DEC \u003d 0.\n\nSigned-off-by: Bharat Bhushan \u003cbharat.bhushan@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "dc2babfea592e633cf3890294af6545609b466be",
      "tree": "7c125d33df2a5de4b433b4a7c635fa13096f4d90",
      "parents": [
        "f9208427f72e6cb52c71767af3bf8c14c43c27ac"
      ],
      "author": {
        "name": "Bharat Bhushan",
        "email": "r65777@freescale.com",
        "time": "Wed Oct 19 09:46:06 2011 +0530"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:25 2012 +0200"
      },
      "message": "KVM: PPC: Fix DEC truncation for greater than 0xffff_ffff/1000\n\nkvmppc_emulate_dec() uses dec_nsec of type unsigned long and does below calculation:\n\n        dec_nsec \u003d vcpu-\u003earch.dec;\n        dec_nsec *\u003d 1000;\nThis will truncate if DEC value \"vcpu-\u003earch.dec\" is greater than 0xffff_ffff/1000.\nFor example : For tb_ticks_per_usec \u003d 4a, we can not set decrementer more than ~58ms.\n\nSigned-off-by: Bharat Bhushan \u003cbharat.bhushan@freescale.com\u003e\nAcked-by: Liu Yu \u003cyu.liu@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "f9208427f72e6cb52c71767af3bf8c14c43c27ac",
      "tree": "051bd94371fa20d83848237a9a89ff6670a4b466",
      "parents": [
        "95325e6b190bb4ec3383aa1241d10675057bff45"
      ],
      "author": {
        "name": "Bharat Bhushan",
        "email": "r65777@freescale.com",
        "time": "Thu Oct 13 15:17:08 2011 +0530"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:24 2012 +0200"
      },
      "message": "PPC: Fix race in mtmsr paravirt implementation\n\nThe current implementation of mtmsr and mtmsrd are racy in that it does:\n\n  * check (int_pending \u003d\u003d 0)\n  ---\u003e host sets int_pending \u003d 1 \u003c---\n  * write shared page\n  * done\n\nwhile instead we should check for int_pending after the shared page is written.\n\nSigned-off-by: Bharat Bhushan \u003cbharat.bhushan@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "95325e6b190bb4ec3383aa1241d10675057bff45",
      "tree": "2920d458a8e25539f6031a4e520afa81331d9a7b",
      "parents": [
        "841741f23b91088810e657a535b8aa683136d870"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Tue Sep 20 01:31:48 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:24 2012 +0200"
      },
      "message": "KVM: PPC: E500: Support hugetlbfs\n\nWith hugetlbfs support emerging on e500, we should also support KVM\nbacking its guest memory by it.\n\nThis patch adds support for hugetlbfs into the e500 shadow mmu code.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nAcked-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "841741f23b91088810e657a535b8aa683136d870",
      "tree": "eae3be26cfc18bc2ca5bfec51504196ded2b6de1",
      "parents": [
        "303b7c97e369ec3d7ab7ba0551030160ce3f838a"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Fri Sep 02 17:39:37 2011 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:24 2012 +0200"
      },
      "message": "KVM: PPC: e500: Don\u0027t hardcode PIR\u003d0\n\nThe hardcoded behavior prevents proper SMP support.\n\nuser space shall specify the vcpu\u0027s PIR as the vcpu id.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "303b7c97e369ec3d7ab7ba0551030160ce3f838a",
      "tree": "303fd4e67a5a1c1a0084784ea2ac5506a5c7f2dd",
      "parents": [
        "dc83b8bc0256ee682506ed83853a98eaba529c6f"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Thu Aug 18 15:25:23 2011 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:24 2012 +0200"
      },
      "message": "KVM: PPC: e500: tlbsx: fix tlb0 esel\n\nIt should contain the way, not the absolute TLB0 index.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "dc83b8bc0256ee682506ed83853a98eaba529c6f",
      "tree": "0d5f73b725392104320894d606bba10151a9ea3c",
      "parents": [
        "0164c0f0c404017fb04defb0ceb23fd1c3c3a53e"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Thu Aug 18 15:25:21 2011 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:24 2012 +0200"
      },
      "message": "KVM: PPC: e500: MMU API\n\nThis implements a shared-memory API for giving host userspace access to\nthe guest\u0027s TLB.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "0164c0f0c404017fb04defb0ceb23fd1c3c3a53e",
      "tree": "c161e2268a1dfd367701e6208f52461f8e9b1022",
      "parents": [
        "90b92a6f51af9adf8c44e8ab3f435b336e5ba6ff"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Thu Aug 18 15:25:18 2011 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:23 2012 +0200"
      },
      "message": "KVM: PPC: e500: clear up confusion between host and guest entries\n\nSplit out the portions of tlbe_priv that should be associated with host\nentries into tlbe_ref.  Base victim selection on the number of hardware\nentries, not guest entries.\n\nFor TLB1, where one guest entry can be mapped by multiple host entries,\nwe use the host tlbe_ref for tracking page references.  For the guest\nTLB0 entries, we still track it with gtlb_priv, to avoid having to\nretranslate if the entry is evicted from the host TLB but not the\nguest TLB.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "90b92a6f51af9adf8c44e8ab3f435b336e5ba6ff",
      "tree": "c991452e7e93f256ac991e4551c78f2936bd34ba",
      "parents": [
        "3bf3cdcc148abcd0e9d398393d390ff136d6eb9a"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Thu Aug 18 15:25:16 2011 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:23 2012 +0200"
      },
      "message": "KVM: PPC: e500: Eliminate preempt_disable in local_sid_destroy_all\n\nThe only place it makes sense to call this function already needs\nto have preemption disabled.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "3bf3cdcc148abcd0e9d398393d390ff136d6eb9a",
      "tree": "6a315d5d4398144d0f7f876cec2d52d27e8cef4e",
      "parents": [
        "59674c1a6a35d56ae5197cbc9abe7bfec6762ba9"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Thu Aug 18 15:25:14 2011 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:23 2012 +0200"
      },
      "message": "KVM: PPC: e500: don\u0027t translate gfn to pfn with preemption disabled\n\nDelay allocation of the shadow pid until we\u0027re ready to disable\npreemption and write the entry.\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "59674c1a6a35d56ae5197cbc9abe7bfec6762ba9",
      "tree": "2847954840109377aac1305c5552a629eed943c2",
      "parents": [
        "5a32c1af56b3c74212b1de2a1d1658c303dd3516"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed Jan 11 11:20:33 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:22 2012 +0200"
      },
      "message": "KVM: s390: provide access guest registers via kvm_run\n\nThis patch adds the access registers to the kvm_run structure.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "5a32c1af56b3c74212b1de2a1d1658c303dd3516",
      "tree": "4eb6f52e1bdc4b2427fdea83c88a0c188ad54b4f",
      "parents": [
        "60b413c9248495ea400e80e08e4d1e28ed7ee05e"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed Jan 11 11:20:32 2012 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Mar 05 14:52:22 2012 +0200"
      },
      "message": "KVM: s390: provide general purpose guest registers via kvm_run\n\nThis patch adds the general purpose registers to the kvm_run structure.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    }
  ],
  "next": "60b413c9248495ea400e80e08e4d1e28ed7ee05e"
}
