)]}'
{
  "log": [
    {
      "commit": "1f4170e12db06fdde5279d665a7e6e2976b2b623",
      "tree": "6e804c79330dc3b93d05c56e66c9d53c461cd0a9",
      "parents": [
        "ed8486243379ef3e6c61363df915882945c0eaec"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Jul 29 23:48:42 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jul 31 11:57:18 2008 +0300"
      },
      "message": "KVM: s390: Fix kvm on IBM System z10\n\nThe z10 system supports large pages, kvm-s390 doesnt.\nMake sure that we dont advertise large pages to avoid the guest crashing as\nsoon as the guest kernel activates DAT.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5a00a5e7a3e013b2323f87c1b69ff9557eae5ec9",
      "tree": "1895de31abc875c5b7d818e9d900a92b6aa507bb",
      "parents": [
        "f5e10b09a5f8fc40666c95fe0cd6bcc2b8f11437"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Fri Jul 25 15:53:12 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 27 11:36:20 2008 +0300"
      },
      "message": "KVM: s390: Fix possible host kernel bug on lctl(g) handling\n\nThe lctl(g) instructions require a specific alignment for the parameters.\nThe architecture requires a specification program check if these alignments\nare not used. Enforcing this alignment also removes a possible host BUG,\nsince the get_guest functions check for proper alignment and emits a BUG.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f5e10b09a5f8fc40666c95fe0cd6bcc2b8f11437",
      "tree": "026877547d3f3c873455680d4e61db7a7482817c",
      "parents": [
        "3cd612998f17d5b3588be7f4937720411d247ff6"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Fri Jul 25 15:52:44 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 27 11:36:12 2008 +0300"
      },
      "message": "KVM: s390: Fix instruction naming for lctlg\n\nLets fix the name for the lctlg instruction...\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3cd612998f17d5b3588be7f4937720411d247ff6",
      "tree": "2d453cdd9c9f6e83caf404c2982701fb1a91c994",
      "parents": [
        "0096369daa9eaaef1a309e5d8167b023af3f998d"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Fri Jul 25 15:51:54 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 27 11:36:05 2008 +0300"
      },
      "message": "KVM: s390: Fix program check on interrupt delivery handling\n\nThe current interrupt handling on s390 misbehaves on an error case. On s390\neach cpu has the prefix area (lowcore) for interrupt delivery. This memory\nmust always be available. If we fail to access the prefix area for a guest\non interrupt delivery the configuration is completely unusable. There is no\npoint in sending another program interrupt to an inaccessible lowcore.\nFurthermore, we should not bug the host kernel, because this can be triggered\nby userspace. I think the guest kernel itself can not trigger the problem, as\nSET PREFIX and SIGNAL PROCESSOR SET PREFIX both check that the memory is\navailable and sane. As this is a userspace bug (e.g. setting the wrong guest\noffset, unmapping guest memory) we should kill the userspace process instead\nof BUGing the host kernel.\nIn the long term we probably should notify the userspace process about this\nproblem.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0096369daa9eaaef1a309e5d8167b023af3f998d",
      "tree": "ccd77da043cbdfa63907f54e10f07ed3452ba338",
      "parents": [
        "99e65c92f2bbf84f43766a8bf701e36817d62822"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Jul 25 15:51:00 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 27 11:35:57 2008 +0300"
      },
      "message": "KVM: s390: Change guestaddr type in gaccess\n\nAll registers are unsigned long types. This patch changes all occurences\nof guestaddr in gaccess from u64 to unsigned long.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2bd0ac4eb469ef58c3b1746fccd15da871fc55c4",
      "tree": "0ad78fd86d33e2d00b3010c69ff2706b0e440c94",
      "parents": [
        "cab7a1eeeb007be309cd99cf14407261a72d2418"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Fri Jul 25 15:49:13 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 27 11:35:40 2008 +0300"
      },
      "message": "KVM: s390: Advertise KVM_CAP_USER_MEMORY\n\nKVM_CAP_USER_MEMORY is used by s390, therefore, we should advertise it.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "34d4cb8fca1f2a31be152b74797e6cd160ec9de6",
      "tree": "1e8f2c3c4feb54763fd0d8b27ef83ba546215069",
      "parents": [
        "d6e88aec07aa8f6c7e4024f5734ec659fd7c5a40"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Thu Jul 10 20:49:31 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:40 2008 +0300"
      },
      "message": "KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction\n\nFlush the shadow mmu before removing regions to avoid stale entries.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "180c12fb22bd17c7187ae1bce023d24a42b2980c",
      "tree": "8dbe8b9bffc369862ea69569fb6fe86d19483bd3",
      "parents": [
        "4da29e909ea8087de09e27476f91f51a070cabe8"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Fri Jun 27 15:05:40 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:37 2008 +0300"
      },
      "message": "KVM: s390: rename private structures\n\nWhile doing some tests with our lcrash implementation I have seen a\nnaming conflict with prefix_info in kvm_host.h vs. addrconf.h\n\nTo avoid future conflicts lets rename private definitions in\nasm/kvm_host.h by adding the kvm_s390 prefix.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4da29e909ea8087de09e27476f91f51a070cabe8",
      "tree": "e87b67317cc517ea47a897456fd483c8194c9301",
      "parents": [
        "dfdded7c41e5b68c79a9f8a942d41f56bc265ba4"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Fri Jun 27 15:05:38 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:37 2008 +0300"
      },
      "message": "KVM: s390: Set guest storage limit and offset to sane values\n\nSome machines do not accept 16EB as guest storage limit. Lets change the\ndefault for the guest storage limit to a sane value. We also should set\nthe guest_origin to what userspace thinks it is. This allows guests\nstarting at an address !\u003d 0.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "dfdded7c41e5b68c79a9f8a942d41f56bc265ba4",
      "tree": "7e5949075ae9e2f47bc953c45cb7c8419d776761",
      "parents": [
        "eff0114ac3d3a20a5c93b31b00134e59bfc75189"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Fri Jun 27 15:05:34 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:37 2008 +0300"
      },
      "message": "KVM: Fix memory leak on guest exit\n\nThis patch fixes a memory leak, we want to free the physmem when destroying\nthe vm.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7cc8883074b040aa8c1ebd3a17463b0ea3a9ef16",
      "tree": "79feae8f0093534317d75f1776bd9f115d62dd91",
      "parents": [
        "543e42436643d68ad007d0bae2f485caac9c8a02"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 13 16:29:20 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:25 2008 +0300"
      },
      "message": "KVM: Remove decache_vcpus_on_cpu() and related callbacks\n\nObsoleted by the vmx-specific per-cpu list.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e52b2af541bcb299212a63cfa3e3231618a415be",
      "tree": "745f8d30f645b052cb96909148f4dfe80d952361",
      "parents": [
        "1f0d0f094df9a570dfc26d5eb825986b7e165e1d"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed May 21 13:37:44 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jun 06 21:08:26 2008 +0300"
      },
      "message": "KVM: s390: Fix race condition in kvm_s390_handle_wait\n\nThe call to add_timer was issued before local_int.lock was taken and before\ntimer_due was set to 0. If the timer expires before the lock is being taken,\nthe timer function will set timer_due to 1 and exit before the vcpu falls\nasleep. Depending on other external events, the vcpu might sleep forever.\nThis fix pulls setting timer_due to the beginning of the function before\nadd_timer, which ensures correct behavior.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1f0d0f094df9a570dfc26d5eb825986b7e165e1d",
      "tree": "4f598069f3a17c926deb70bbbd3d088d881efbfc",
      "parents": [
        "0ff318674503ce3787ef62d84f4d948db204b268"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed May 21 13:37:40 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jun 06 21:08:26 2008 +0300"
      },
      "message": "KVM: s390: Send program check on access error\n\nIf the guest accesses non-existing memory, the sie64a function returns\n-EFAULT. We must check the return value and send a program check to the\nguest if the sie instruction faulted, otherwise the guest will loop at\nthe faulting code.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0ff318674503ce3787ef62d84f4d948db204b268",
      "tree": "7e3f964df1961aa858bbaf28aa2d455d156cdcc9",
      "parents": [
        "71cde5879f10b639506bc0b9f29a89f58b42a17e"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed May 21 13:37:37 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jun 06 21:08:26 2008 +0300"
      },
      "message": "KVM: s390: fix interrupt delivery\n\nThe current code delivers pending interrupts before it checks for\nneed_resched. On a busy host, this can lead to a longer interrupt\nlatency if the interrupt is injected while the process is scheduled\naway. This patch moves delivering the interrupt _after_ schedule(),\nwhich makes more sense.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "71cde5879f10b639506bc0b9f29a89f58b42a17e",
      "tree": "5e8e8da042eede41ef4b9b74fd14e959e61f5b4a",
      "parents": [
        "74b6b522ec83f9c44fc7743f2adcb24664aa8f45"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed May 21 13:37:34 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jun 06 21:08:26 2008 +0300"
      },
      "message": "KVM: s390: handle machine checks when guest is running\n\nThe low-level interrupt handler on s390 checks for _TIF_WORK_INT and\nexits the guest context, if work is pending.\nTIF_WORK_INT is defined as_TIF_SIGPENDING | _TIF_NEED_RESCHED |\n _TIF_MCCK_PENDING. Currently the sie loop checks for signals and\nreschedule, but it does not check for machine checks. That means that\nwe exit the guest context if a machine check is pending, but we do not\nhandle the machine check.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nCC: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b8cee18cc75d7b9dbe6c6526dfae9ab49e84fa95",
      "tree": "9b058143e7454ced9493b1b229905f8af6d40d25",
      "parents": [
        "33e3885de25148e00595c4dd808d6eb15db2edcf"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed May 21 13:37:16 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jun 06 21:08:26 2008 +0300"
      },
      "message": "KVM: s390: use yield instead of schedule to implement diag 0x44\n\ndiag 0x44 is the common way on s390 to yield the cpu to the hypervisor.\nIt is called by the guest in cpu_relax and in the spinlock code to\nyield to other guest cpus.\n\nThis semantic is similar to yield. Lets replace the call to schedule with\nyield to make sure that current is really yielding.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0eaeafa10f3b2bd027e95859a6785d4c7fcc174c",
      "tree": "97676107c28393326944bd3d922e7eeaa5caf942",
      "parents": [
        "2688905e6a9b3647bf7b452cb0ff2bdb166bd8fe"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed May 07 09:22:53 2008 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed May 07 09:23:01 2008 +0200"
      },
      "message": "[S390] s390-kvm: leave sie context on work. Removes preemption requirement\n\nFrom: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n\nThis patch fixes a bug with cpu bound guest on kvm-s390. Sometimes it\nwas impossible to deliver a signal to a spinning guest. We used\npreemption as a circumvention. The preemption notifiers called\nvcpu_load, which checked for pending signals and triggered a host\nintercept. But even with preemption, a sigkill was not delivered\nimmediately.\n\nThis patch changes the low level host interrupt handler to check for the\nSIE  instruction, if TIF_WORK is set. In that case we change the\ninstruction pointer of the return PSW to rerun the vcpu_run loop. The kvm\ncode sees an intercept reason 0 if that happens. This patch adds accounting\nfor these types of intercept as well.\n\nThe advantages:\n- works with and without preemption\n- signals are delivered immediately\n- much better host latencies without preemption\n\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "484875b11f355b1b54d508a3f4671888f07e643c",
      "tree": "ff639e4bd108e48f4b3ab7789e1c0e880453b034",
      "parents": [
        "ccf183e469be89e065ed389da9d3f50bd2faa215"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Apr 30 13:38:43 2008 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Apr 30 13:38:46 2008 +0200"
      },
      "message": "[S390] Move stfl to system.h and delete duplicated version.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "62d9f0dbc92d7e398fde53fc6021338393522e68",
      "tree": "028e62807ead3db11f15694323743b90c8211ef8",
      "parents": [
        "a45352908b88d383bc40e1e4d1a6cc5bbcefc895"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Apr 11 13:24:45 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 18:21:16 2008 +0300"
      },
      "message": "KVM: add ioctls to save/store mpstate\n\nSo userspace can save/restore the mpstate during migration.\n\n[avi: export the #define constants describing the value]\n[christian: add s390 stubs]\n[avi: ditto for ia64]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3d80840d96127401ba6aeadd813c3a15b84e70fe",
      "tree": "b3e083c651f09fee362d88f0d1fc140194f2431d",
      "parents": [
        "3564990af1b9f77a63692c1079e9c41af229f066"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Apr 11 14:53:26 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:04:11 2008 +0300"
      },
      "message": "KVM: hlt emulation should take in-kernel APIC/PIT timers into account\n\nTimers that fire between guest hlt and vcpu_block\u0027s add_wait_queue() are\nignored, possibly resulting in hangs.\n\nAlso make sure that atomic_inc and waitqueue_active tests happen in the\nspecified order, otherwise the following race is open:\n\nCPU0                                        CPU1\n                                            if (waitqueue_active(wq))\nadd_wait_queue()\nif (!atomic_read(pit_timer-\u003epending))\n    schedule()\n                                            atomic_inc(pit_timer-\u003epending)\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7732a8d19bdc6ae18f68f9adb47d11c82a3a86cd",
      "tree": "dde426704b4484be957980a58eab527cd169ecef",
      "parents": [
        "2714d1d3d6be882b97cd0125140fccf9976a460a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Apr 11 02:50:40 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:01:20 2008 +0300"
      },
      "message": "KVM: s390: Stub out kvmtrace\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f603f0731f43421403160f5f8b12e90f2e51f064",
      "tree": "5e8bbc51d2a7be8b58e310689cebee2a6881f128",
      "parents": [
        "7e8e6ab48d78147f69c1ba2d6a362f8d33254468"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Apr 04 15:12:40 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:59 2008 +0300"
      },
      "message": "KVM: s390: rename stfl to kvm_stfl\n\nTemporarily rename this function to avoid merge conflicts and/or\ndependencies. This function will be removed as soon as git-s390\nand kvm.git are finally upstream.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7e8e6ab48d78147f69c1ba2d6a362f8d33254468",
      "tree": "760391ea70e033a7b2551663430da3f737e3db59",
      "parents": [
        "bed1d1dfc4a458d82bcd258082638cbba860190d"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Apr 04 15:12:35 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:58 2008 +0300"
      },
      "message": "KVM: s390: Fix incorrect return value\n\nkvm_arch_vcpu_ioctl_run currently incorrectly always returns 0.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "77b455f1bcfa0fddb31b8e6f9f2adc246acb4216",
      "tree": "f16f4479739b1de7752c12363efbf82034258a5b",
      "parents": [
        "e28acfea5dd9dbc67c2594cbefc140129dbd0e3f"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:36 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:47 2008 +0300"
      },
      "message": "KVM: s390: add kvm to kconfig on s390\n\nThis patch adds the virtualization submenu and the kvm option to the kernel\nconfig. It also defines HAVE_KVM for 64bit kernels.\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e28acfea5dd9dbc67c2594cbefc140129dbd0e3f",
      "tree": "2f66c3afcf18fd938bae1460f1c5d35ccbf75550",
      "parents": [
        "5288fbf0ef041ba0e8b4dcb2df4536b5e3a48b32"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:34 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:46 2008 +0300"
      },
      "message": "KVM: s390: intercepts for diagnose instructions\n\nThis patch introduces interpretation of some diagnose instruction intercepts.\nDiagnose is our classic architected way of doing a hypercall. This patch\nfeatures the following diagnose codes:\n- vm storage size, that tells the guest about its memory layout\n- time slice end, which is used by the guest to indicate that it waits\n  for a lock and thus cannot use up its time slice in a useful way\n- ipl functions, which a guest can use to reset and reboot itself\n\nIn order to implement ipl functions, we also introduce an exit reason that\ncauses userspace to perform various resets on the virtual machine. All resets\nare described in the principles of operation book, except KVM_S390_RESET_IPL\nwhich causes a reboot of the machine.\n\nAcked-by: Martin Schwidefsky \u003cmartin.schwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5288fbf0ef041ba0e8b4dcb2df4536b5e3a48b32",
      "tree": "6f81a87294c9026ac91a84e5a94e55e565002d3b",
      "parents": [
        "453423dce2785b8e22077e3b3eeecb4f60fe3470"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:31 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:46 2008 +0300"
      },
      "message": "KVM: s390: interprocessor communication via sigp\n\nThis patch introduces in-kernel handling of _some_ sigp interprocessor\nsignals (similar to ipi).\nkvm_s390_handle_sigp() decodes the sigp instruction and calls individual\nhandlers depending on the operation requested:\n- sigp sense tries to retrieve information such as existence or running state\n  of the remote cpu\n- sigp emergency sends an external interrupt to the remove cpu\n- sigp stop stops a remove cpu\n- sigp stop store status stops a remote cpu, and stores its entire internal\n  state to the cpus lowcore\n- sigp set arch sets the architecture mode of the remote cpu. setting to\n  ESAME (s390x 64bit) is accepted, setting to ESA/S390 (s390, 31 or 24 bit) is\n  denied, all others are passed to userland\n- sigp set prefix sets the prefix register of a remote cpu\n\nFor implementation of this, the stop intercept indication starts to get reused\non purpose: a set of action bits defines what to do once a cpu gets stopped:\nACTION_STOP_ON_STOP  really stops the cpu when a stop intercept is recognized\nACTION_STORE_ON_STOP stores the cpu status to lowcore when a stop intercept is\n                     recognized\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "453423dce2785b8e22077e3b3eeecb4f60fe3470",
      "tree": "afe9d502d7fa07d5b59175dfb990f818e0642720",
      "parents": [
        "ba5c1e9b6ceebdc39343cc03eb39f077abd3c571"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:29 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:45 2008 +0300"
      },
      "message": "KVM: s390: intercepts for privileged instructions\n\nThis patch introduces in-kernel handling of some intercepts for privileged\ninstructions:\n\nhandle_set_prefix()        sets the prefix register of the local cpu\nhandle_store_prefix()      stores the content of the prefix register to memory\nhandle_store_cpu_address() stores the cpu number of the current cpu to memory\nhandle_skey()              just decrements the instruction address and retries\nhandle_stsch()             delivers condition code 3 \"operation not supported\"\nhandle_chsc()              same here\nhandle_stfl()              stores the facility list which contains the\n                           capabilities of the cpu\nhandle_stidp()             stores cpu type/model/revision and such\nhandle_stsi()              stores information about the system topology\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ba5c1e9b6ceebdc39343cc03eb39f077abd3c571",
      "tree": "ab07e763ad7d9aad2ef189def5537e73a50c7503",
      "parents": [
        "8f2abe6a1e525e878bdf58f68ccd146d543fde84"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Mar 25 18:47:26 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:44 2008 +0300"
      },
      "message": "KVM: s390: interrupt subsystem, cpu timer, waitpsw\n\nThis patch contains the s390 interrupt subsystem (similar to in kernel apic)\nincluding timer interrupts (similar to in-kernel-pit) and enabled wait\n(similar to in kernel hlt).\n\nIn order to achieve that, this patch also introduces intercept handling\nfor instruction intercepts, and it implements load control instructions.\n\nThis patch introduces an ioctl KVM_S390_INTERRUPT which is valid for both\nthe vm file descriptors and the vcpu file descriptors. In case this ioctl is\nissued against a vm file descriptor, the interrupt is considered floating.\nFloating interrupts may be delivered to any virtual cpu in the configuration.\n\nThe following interrupts are supported:\nSIGP STOP       - interprocessor signal that stops a remote cpu\nSIGP SET PREFIX - interprocessor signal that sets the prefix register of a\n                  (stopped) remote cpu\nINT EMERGENCY   - interprocessor interrupt, usually used to signal need_reshed\n                  and for smp_call_function() in the guest.\nPROGRAM INT     - exception during program execution such as page fault, illegal\n                  instruction and friends\nRESTART         - interprocessor signal that starts a stopped cpu\nINT VIRTIO      - floating interrupt for virtio signalisation\nINT SERVICE     - floating interrupt for signalisations from the system\n                  service processor\n\nstruct kvm_s390_interrupt, which is submitted as ioctl parameter when injecting\nan interrupt, also carrys parameter data for interrupts along with the interrupt\ntype. Interrupts on s390 usually have a state that represents the current\noperation, or identifies which device has caused the interruption on s390.\n\nkvm_s390_handle_wait() does handle waitpsw in two flavors: in case of a\ndisabled wait (that is, disabled for interrupts), we exit to userspace. In case\nof an enabled wait we set up a timer that equals the cpu clock comparator value\nand sleep on a wait queue.\n\n[christian: change virtio interrupt to 0x2603]\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8f2abe6a1e525e878bdf58f68ccd146d543fde84",
      "tree": "5f52959474a16847c740fb8668ebd9d6cbc75d07",
      "parents": [
        "b0c632db637d68ad39d9f97f452ce176253f5f4e"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:23 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:43 2008 +0300"
      },
      "message": "KVM: s390: sie intercept handling\n\nThis path introduces handling of sie intercepts in three flavors: Intercepts\nare either handled completely in-kernel by kvm_handle_sie_intercept(),\nor passed to userspace with corresponding data in struct kvm_run in case\nkvm_handle_sie_intercept() returns -ENOTSUPP.\nIn case of partial execution in kernel with the need of userspace support,\nkvm_handle_sie_intercept() may choose to set up struct kvm_run and return\n-EREMOTE.\n\nThe trivial intercept reasons are handled in this patch:\nhandle_noop() just does nothing for intercepts that don\u0027t require our support\n  at all\nhandle_stop() is called when a cpu enters stopped state, and it drops out to\n  userland after updating our vcpu state\nhandle_validity() faults in the cpu lowcore if needed, or passes the request\n  to userland\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b0c632db637d68ad39d9f97f452ce176253f5f4e",
      "tree": "770d68c17cbcabc1543d1e9125669130fcf4fee4",
      "parents": [
        "8a88ac6183975c73c65b45f365f6f3b875c1348b"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Mar 25 18:47:20 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:42 2008 +0300"
      },
      "message": "KVM: s390: arch backend for the kvm kernel module\n\nThis patch contains the port of Qumranet\u0027s kvm kernel module to IBM zSeries\n (aka s390x, mainframe) architecture. It uses the mainframe\u0027s virtualization\ninstruction SIE to run virtual machines with up to 64 virtual CPUs each.\nThis port is only usable on 64bit host kernels, and can only run 64bit guest\nkernels. However, running 31bit applications in guest userspace is possible.\n\nThe following source files are introduced by this patch\narch/s390/kvm/kvm-s390.c    similar to arch/x86/kvm/x86.c, this implements all\n                            arch callbacks for kvm. __vcpu_run calls back into\n                            sie64a to enter the guest machine context\narch/s390/kvm/sie64a.S      assembler function sie64a, which enters guest\n                            context via SIE, and switches world before and after                            that\ninclude/asm-s390/kvm_host.h contains all vital data structures needed to run\n                            virtual machines on the mainframe\ninclude/asm-s390/kvm.h      defines kvm_regs and friends for user access to\n                            guest register content\narch/s390/kvm/gaccess.h     functions similar to uaccess to access guest memory\narch/s390/kvm/kvm-s390.h    header file for kvm-s390 internals, extended by\n                            later patches\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    }
  ]
}
