)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
