)]}'
{
  "log": [
    {
      "commit": "3200f405a1e8e06c8634f11d33614455baa4e6be",
      "tree": "806116d2495dd7fd93b5c0db98a72fe4fa854787",
      "parents": [
        "25c5f225beda4fbea878ed8b6203ab4ecc7de2d1"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo@kvack.org",
        "time": "Sat Mar 29 20:17:59 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:52 2008 +0300"
      },
      "message": "KVM: MMU: unify slots_lock usage\n\nUnify slots_lock acquision around vcpu_run(). This is simpler and less\nerror-prone.\n\nAlso fix some callsites that were not grabbing the lock properly.\n\n[avi: drop slots_lock while in guest mode to avoid holding the lock\n      for indefinite periods]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "25c5f225beda4fbea878ed8b6203ab4ecc7de2d1",
      "tree": "b15dc6e9a311c556a9c5ed1ccbc0ed0830d24b23",
      "parents": [
        "e976a2b997fc4ad70ccc53acfe62811c4aaec851"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Fri Mar 28 13:18:56 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:52 2008 +0300"
      },
      "message": "KVM: VMX: Enable MSR Bitmap feature\n\nMSR Bitmap controls whether the accessing of an MSR causes VM Exit.\nEliminating exits on automatically saved and restored MSRs yields a\nsmall performance gain.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e976a2b997fc4ad70ccc53acfe62811c4aaec851",
      "tree": "55994dda8046c9220c345a69b11d849323309703",
      "parents": [
        "fa5877439d5a062d91c3abd5a690483bbdb4268e"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:46 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:51 2008 +0300"
      },
      "message": "s390: KVM guest: virtio device support, and kvm hypercalls\n\nThis patch implements kvm guest kernel support for paravirtualized devices\nand contains two parts:\no a basic virtio stub using virtio_ring and external interrupts and hypercalls\no full hypercall implementation in kvm_para.h\n\nCurrently we dont have PCI on s390. Making virtio_pci usable for s390 seems\nmore complicated that providing an own stub. This virtio stub is similar to\nthe lguest one, the memory for the descriptors and the device detection is made\nvia additional mapped memory on top of the guest storage. We use an external\ninterrupt with extint code 0x2603 for host-\u003eguest notification.\n\nThe hypercall definition uses the diag instruction for issuing a hypercall. The\nparameters are written in R2-R7, the hypercall number is written in R1. This is\nsimilar to the system call ABI (svc) which can use R1 for the number and R2-R6\nfor the parameters.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@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": "fa5877439d5a062d91c3abd5a690483bbdb4268e",
      "tree": "0bd9c1794134d891678e3602ba78a6facec39d78",
      "parents": [
        "85f8fffe3c2ab13f13526c46b5471fc22e98ccfe"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Mar 25 18:47:44 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:50 2008 +0300"
      },
      "message": "s390: KVM guest: detect when running on kvm\n\nThis patch adds functionality to detect if the kernel runs under the KVM\nhypervisor. A macro MACHINE_IS_KVM is exported for device drivers. This\nallows drivers to skip device detection if the systems runs non-virtualized.\nWe also define a preferred console to avoid having the ttyS0, which is a line\nmode only console.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@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": "85f8fffe3c2ab13f13526c46b5471fc22e98ccfe",
      "tree": "a402e1832bd9c50e4c5e9de9c524949ff8f2762f",
      "parents": [
        "5ecee4ba4eb2ada7ece7c41eb08cf7bc51b579e2"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:41 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:49 2008 +0300"
      },
      "message": "KVM: s390: update maintainers\n\nThis patch adds an entry for kvm on s390 to the MAINTAINERS file :-). We intend\nto push all patches regarding this via Avi\u0027s kvm.git.\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": "5ecee4ba4eb2ada7ece7c41eb08cf7bc51b579e2",
      "tree": "bd81e83d221f9b17f71de04f9cfa117e732f4605",
      "parents": [
        "77b455f1bcfa0fddb31b8e6f9f2adc246acb4216"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Mar 25 18:47:38 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:48 2008 +0300"
      },
      "message": "KVM: s390: API documentation\n\nThis patch adds Documentation/s390/kvm.txt, which describes specifics of kvm\u0027s\nuser interface that are unique to s390 architecture.\n\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"
    },
    {
      "commit": "8a88ac6183975c73c65b45f365f6f3b875c1348b",
      "tree": "d921046d5cdc8818abec6c7fa39432b89fb205e3",
      "parents": [
        "5b7baf05783b1ac97a510243d7e82293416a7cf6"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:15 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:41 2008 +0300"
      },
      "message": "s390: KVM preparation: address of the 64bit extint parm in lowcore\n\nThe address 0x11b8 is used by z/VM for pfault and diag 250 I/O to\nprovide a 64 bit extint parameter. virtio uses the same address, so\nits time to update the lowcore structure.\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": "5b7baf05783b1ac97a510243d7e82293416a7cf6",
      "tree": "15b753206d9a3fd5edd0029405f8acfc69237861",
      "parents": [
        "402b08622d9ac6e32e25289573272e0f21bb58a7"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Mar 25 18:47:12 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:40 2008 +0300"
      },
      "message": "s390: KVM preparation: host memory management changes for s390 kvm\n\nThis patch changes the s390 memory management defintions to use the pgste field\nfor dirty and reference bit tracking of host and guest code. Usually on s390,\ndirty and referenced are tracked in storage keys, which belong to the physical\npage. This changes with virtualization: The guest and host dirty/reference bits\nare defined to be the logical OR of the values for the mapping and the physical\npage. This patch implements the necessary changes in pgtable.h for s390.\n\nThere is a common code change in mm/rmap.c, the call to\npage_test_and_clear_young must be moved. This is a no-op for all\narchitecture but s390. page_referenced checks the referenced bits for\nthe physiscal page and for all mappings:\no The physical page is checked with page_test_and_clear_young.\no The mappings are checked with ptep_test_and_clear_young and friends.\n\nWithout pgstes (the current implementation on Linux s390) the physical page\ncheck is implemented but the mapping callbacks are no-ops because dirty\nand referenced are not tracked in the s390 page tables. The pgstes introduces\nguest and host dirty and reference bits for s390 in the host mapping. These\nmapping must be checked before page_test_and_clear_young resets the reference\nbit.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "402b08622d9ac6e32e25289573272e0f21bb58a7",
      "tree": "40d7386154cef85c9bfd2bd862db025933820776",
      "parents": [
        "37817f2982d0f559f90cecc66e150dd9d2c2df05"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Mar 25 18:47:10 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:40 2008 +0300"
      },
      "message": "s390: KVM preparation: provide hook to enable pgstes in user pagetable\n\nThe SIE instruction on s390 uses the 2nd half of the page table page to\nvirtualize the storage keys of a guest. This patch offers the s390_enable_sie\nfunction, which reorganizes the page tables of a single-threaded process to\nreserve space in the page table:\ns390_enable_sie makes sure that the process is single threaded and then uses\ndup_mm to create a new mm with reorganized page tables. The old mm is freed\nand the process has now a page status extended field after every page table.\n\nCode that wants to exploit pgstes should SELECT CONFIG_PGSTE.\n\nThis patch has a small common code hit, namely making dup_mm non-static.\n\nEdit (Carsten): I\u0027ve modified Martin\u0027s patch, following Jeremy Fitzhardinge\u0027s\nreview feedback. Now we do have the prototype for dup_mm in\ninclude/linux/sched.h. Following Martin\u0027s suggestion, s390_enable_sie() does now\ncall task_lock() to prevent race against ptrace modification of mm_users.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "37817f2982d0f559f90cecc66e150dd9d2c2df05",
      "tree": "45114b5720d7a13bdbe48cc6a75dc6de03d6fcd2",
      "parents": [
        "2e4d2653497856b102c90153f970c9e344ba96c6"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Mon Mar 24 23:14:53 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:39 2008 +0300"
      },
      "message": "KVM: x86: hardware task switching support\n\nThis emulates the x86 hardware task switch mechanism in software, as it is\nunsupported by either vmx or svm.  It allows operating systems which use it,\nlike freedos, to run as kvm guests.\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2e4d2653497856b102c90153f970c9e344ba96c6",
      "tree": "8a1929d5caa1f9436c25a104f75403fb2b3e5e2f",
      "parents": [
        "4c9fc8ef501790732ed035585b491756b75ea4c6"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Mon Mar 24 19:38:34 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:38 2008 +0300"
      },
      "message": "KVM: x86: add functions to get the cpl of vcpu\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4c9fc8ef501790732ed035585b491756b75ea4c6",
      "tree": "5d5fd13456178c756170a6dabbec99c52eeeb6be",
      "parents": [
        "268fe02ae058c0c5e84ad678d67e5d7b013e664f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Mar 24 18:15:14 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:37 2008 +0300"
      },
      "message": "KVM: VMX: Add module option to disable flexpriority\n\nUseful for debugging.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "268fe02ae058c0c5e84ad678d67e5d7b013e664f",
      "tree": "325cc9f186bcf921082af0d3cc22467a74bb5da2",
      "parents": [
        "0b49ea8659fd3b5005823e02d2d0a775521770e5"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 23 18:36:30 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:36 2008 +0300"
      },
      "message": "KVM: no longer EXPERIMENTAL\n\nLong overdue.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0b49ea8659fd3b5005823e02d2d0a775521770e5",
      "tree": "8ae968a018fac99eb923714e77ae87e02fe11d51",
      "parents": [
        "855149aaa90016c576a0e684361a34f8047307d0"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 23 15:06:23 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:35 2008 +0300"
      },
      "message": "KVM: MMU: Introduce and use spte_to_page()\n\nEncapsulate the pte mask\u0027n\u0027shift in a function.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "855149aaa90016c576a0e684361a34f8047307d0",
      "tree": "bfca7a0e52e4a4e7857a2e9fc0ff9f98e9f26dfa",
      "parents": [
        "69a9f69bb24d6d3dbf3d2ba542ddceeda40536d5"
      ],
      "author": {
        "name": "Izik Eidus",
        "email": "izike@qumranet.com",
        "time": "Thu Mar 20 18:17:24 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:34 2008 +0300"
      },
      "message": "KVM: MMU: fix dirty bit setting when removing write permissions\n\nWhen mmu_set_spte() checks if a page related to spte should be release as\ndirty or clean, it check if the shadow pte was writeble, but in case\nrmap_write_protect() is called called it is possible for shadow ptes that were\nwriteble to become readonly and therefor mmu_set_spte will release the pages\nas clean.\n\nThis patch fix this issue by marking the page as dirty inside\nrmap_write_protect().\n\nSigned-off-by: Izik Eidus \u003cizike@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "69a9f69bb24d6d3dbf3d2ba542ddceeda40536d5",
      "tree": "f91803eb5a185cfd2f545098ac5da2a31cbf5bee",
      "parents": [
        "947da53830690cbd77d7f2b625d0df1f161ffd54"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Mar 21 12:38:23 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:34 2008 +0300"
      },
      "message": "KVM: Move some x86 specific constants and structures to include/asm-x86\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "947da53830690cbd77d7f2b625d0df1f161ffd54",
      "tree": "32db5b7e97b5df34ada31ac9de8f3250b90dfd55",
      "parents": [
        "97646202bc3f190dfcb48a3d506ea2445717d392"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 18 11:05:52 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:33 2008 +0300"
      },
      "message": "KVM: MMU: Set the accessed bit on non-speculative shadow ptes\n\nIf we populate a shadow pte due to a fault (and not speculatively due to a\npte write) then we can set the accessed bit on it, as we know it will be\nset immediately on the next guest instruction.  This saves a read-modify-write\noperation.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "97646202bc3f190dfcb48a3d506ea2445717d392",
      "tree": "0715fd746a29360522154e0a15f91da94a243555",
      "parents": [
        "1e977aa12dd4f80688b1f243762212e75c6d7fe8"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed Mar 12 18:10:45 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:32 2008 +0300"
      },
      "message": "KVM: kvm.h: __user requires compiler.h\n\ninclude/linux/kvm.h defines struct kvm_dirty_log to\n\t[...]\n\tunion {\n\t\tvoid __user *dirty_bitmap; /* one bit per page */\n\t\t__u64 padding;\n\t};\n\n__user requires compiler.h to compile. Currently, this works on x86\nonly coincidentally due to other include files. This patch makes\nkvm.h compile in all cases.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1e977aa12dd4f80688b1f243762212e75c6d7fe8",
      "tree": "572941849e9d63c0de7233d2352d346dc097be49",
      "parents": [
        "3c62c62502bea24448d4e82aa1f33c7dbca61a32"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Mar 17 16:08:40 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:31 2008 +0300"
      },
      "message": "x86: KVM guest: disable clock before rebooting.\n\nThis patch writes 0 (actually, what really matters is that the\nLSB is cleared) to the system time msr before shutting down\nthe machine for kexec.\n\nWithout it, we can have a random memory location being written\nwhen the guest comes back\n\nIt overrides the functions shutdown, used in the path of kernel_kexec() (sys.c)\nand crash_shutdown, used in the path of crash_kexec() (kexec.c)\n\nSigned-off-by: Glauber Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3c62c62502bea24448d4e82aa1f33c7dbca61a32",
      "tree": "d317c2ce20be6fa75404c0b65c8169ad0b491a10",
      "parents": [
        "ed23dc6f5bc950ebbe683dd0bed1d5878230c171"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Mar 17 16:08:39 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:30 2008 +0300"
      },
      "message": "x86: make native_machine_shutdown non-static\n\nit will allow external users to call it. It is mainly\nuseful for routines that will override its machine_ops\nfield for its own special purposes, but want to call the\nnormal shutdown routine after they\u0027re done\n\nSigned-off-by: Glauber Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ed23dc6f5bc950ebbe683dd0bed1d5878230c171",
      "tree": "7a25b86c600b5429196dd56d684ea72d3e0be63c",
      "parents": [
        "096d14a3b57e4a87d27be09cc64b4f84660acd08"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Mar 17 16:08:38 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:29 2008 +0300"
      },
      "message": "x86: allow machine_crash_shutdown to be replaced\n\nThis patch a llows machine_crash_shutdown to\nbe replaced, just like any of the other functions\nin machine_ops\n\nSigned-off-by: Glauber Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "096d14a3b57e4a87d27be09cc64b4f84660acd08",
      "tree": "73408f02e84397483a88fb8855fc5c5cb6687bd3",
      "parents": [
        "1da8a77bdc294acdc37e8504926383b86f72d6be"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:38 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:28 2008 +0300"
      },
      "message": "x86: KVM guest: hypercall batching\n\nBatch pte updates and tlb flushes in lazy MMU mode.\n\n[avi:\n - adjust to mmu_op\n - helper for getting para_state without debug warnings]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1da8a77bdc294acdc37e8504926383b86f72d6be",
      "tree": "d4a65e134a8d087ef23ba6ece6788bf15e1740b6",
      "parents": [
        "2f333bcb4edd8daef99dabe4e7df8277af73cff1"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:37 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:28 2008 +0300"
      },
      "message": "x86: KVM guest: hypercall based pte updates and TLB flushes\n\nHypercall based pte updates are faster than faults, and also allow use\nof the lazy MMU mode to batch operations.\n\nDon\u0027t report the feature if two dimensional paging is enabled.\n\n[avi:\n - guest/host split\n - fix 32-bit truncation issues\n - adjust to mmu_op\n - adjust to -\u003erelease_*() renamed\n - add -\u003erelease_pud()]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2f333bcb4edd8daef99dabe4e7df8277af73cff1",
      "tree": "c984466e7756e0910bf470a094558b52bd10df33",
      "parents": [
        "9f81128591ca1e9907f2e7a7b195e33232167d60"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:37 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:27 2008 +0300"
      },
      "message": "KVM: MMU: hypercall based pte updates and TLB flushes\n\nHypercall based pte updates are faster than faults, and also allow use\nof the lazy MMU mode to batch operations.\n\nDon\u0027t report the feature if two dimensional paging is enabled.\n\n[avi:\n - one mmu_op hypercall instead of one per op\n - allow 64-bit gpa on hypercall\n - don\u0027t pass host errors (-ENOMEM) to guest]\n\n[akpm: warning fix on i386]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9f81128591ca1e9907f2e7a7b195e33232167d60",
      "tree": "2abca5f4181f3bc0570bab60d85b473a595f1285",
      "parents": [
        "0cf1bfd2737f41e59f974a61eab11af206d2042a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Mar 02 14:06:05 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:26 2008 +0300"
      },
      "message": "KVM: Provide unlocked version of emulator_write_phys()\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0cf1bfd2737f41e59f974a61eab11af206d2042a",
      "tree": "4edd67efa000f4cb94ef834daa21ac07c2016989",
      "parents": [
        "a28e4f5a621289fe0d9c8a461b0c256f9e17f3bc"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:36 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:25 2008 +0300"
      },
      "message": "x86: KVM guest: add basic paravirt support\n\nAdd basic KVM paravirt support. Avoid vm-exits on IO delays.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a28e4f5a621289fe0d9c8a461b0c256f9e17f3bc",
      "tree": "dfa62426cf55dfb2fad66e924eab34e9840bff12",
      "parents": [
        "308b0f239e8d6754b8b903d279e5b5b987e257ac"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Feb 22 12:21:36 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:24 2008 +0300"
      },
      "message": "KVM: add basic paravirt support\n\nAdd basic KVM paravirt support. Avoid vm-exits on IO delays.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "308b0f239e8d6754b8b903d279e5b5b987e257ac",
      "tree": "7d5787dd227874b89d1e5935080aa903dc7f1875",
      "parents": [
        "e0f63cb9277b64850854aee301762beeeb463473"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Thu Mar 13 10:22:26 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:23 2008 +0300"
      },
      "message": "KVM: Add reset support for in kernel PIT\n\nSeparate the reset part and prepare for reset support.\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e0f63cb9277b64850854aee301762beeeb463473",
      "tree": "ae10bac92ee6cc1a658b479a311fac67ebd3524c",
      "parents": [
        "7837699fa6d7adf81f26ab73a5f6897ea1ab9d6a"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Tue Mar 04 00:50:59 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:22 2008 +0300"
      },
      "message": "KVM: Add save/restore supporting of in kernel PIT\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7837699fa6d7adf81f26ab73a5f6897ea1ab9d6a",
      "tree": "37a89d5c10869a9ada59df75b49d685708661434",
      "parents": [
        "4fcaa98267efc4d39ded9b0bc33c6b4a2f62fecd"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Mon Jan 28 05:10:22 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:21 2008 +0300"
      },
      "message": "KVM: In kernel PIT model\n\nThe patch moves the PIT model from userspace to kernel, and increases\nthe timer accuracy greatly.\n\n[marcelo: make last_injected_time per-guest]\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nTested-and-Acked-by: Alex Davis \u003calex14641@yahoo.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4fcaa98267efc4d39ded9b0bc33c6b4a2f62fecd",
      "tree": "d078b35ea7744f3dc3c2549ad5ef01073dd99e96",
      "parents": [
        "019960ae9933161c2809fa4ee608ba30d9639fd2"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Mar 05 09:33:44 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:27 2008 +0300"
      },
      "message": "KVM: Remove pointless desc_ptr #ifdef\n\nThe desc_struct changes left an unnecessary #ifdef; remove it.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "019960ae9933161c2809fa4ee608ba30d9639fd2",
      "tree": "c4ded864dfd339a2c64451220d0866eba854b63c",
      "parents": [
        "b8688d51bbe4872fbcec751e04369606082ac610"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Mar 04 10:44:51 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:27 2008 +0300"
      },
      "message": "KVM: VMX: Don\u0027t adjust tsc offset forward\n\nMost Intel hosts have a stable tsc, and playing with the offset only\nreduces accuracy.  By limiting tsc offset adjustment only to forward updates,\nwe effectively disable tsc offset adjustment on these hosts.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b8688d51bbe4872fbcec751e04369606082ac610",
      "tree": "a48191f442d49530265dc92e98fc4877d2e286f7",
      "parents": [
        "71c4dfafc0932d92cc99c7e839d25174b0ce10a1"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Mar 03 12:59:56 2008 -0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:27 2008 +0300"
      },
      "message": "KVM: replace remaining __FUNCTION__ occurances\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "71c4dfafc0932d92cc99c7e839d25174b0ce10a1",
      "tree": "991320ed3bce4cc2665721454c7f10a69fb98b1a",
      "parents": [
        "3e4bb3ac9e0ada5df5f6729648d403ea9f071d10"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Feb 26 16:49:16 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:27 2008 +0300"
      },
      "message": "KVM: detect if VCPU triple faults\n\nIn the current inject_page_fault path KVM only checks if there is another PF\npending and injects a DF then. But it has to check for a pending DF too to\ndetect a shutdown condition in the VCPU.  If this is not detected the VCPU goes\nto a PF -\u003e DF -\u003e PF loop when it should triple fault. This patch detects this\ncondition and handles it with an KVM_SHUTDOWN exit to userspace.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3e4bb3ac9e0ada5df5f6729648d403ea9f071d10",
      "tree": "3178508a16ef6455908d07be2135ae27c19a8c6c",
      "parents": [
        "2d3ad1f40c841bd3e97d30d423eea53915d085dc"
      ],
      "author": {
        "name": "Xiantao Zhang",
        "email": "xiantao.zhang@intel.com",
        "time": "Mon Feb 25 18:52:20 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:26 2008 +0300"
      },
      "message": "KVM: Use kzalloc to avoid allocating kvm_regs from kernel stack\n\nSince the size of kvm_regs is too big to allocate from kernel stack on ia64,\nuse kzalloc to allocate it.\n\nSigned-off-by: Xiantao Zhang \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2d3ad1f40c841bd3e97d30d423eea53915d085dc",
      "tree": "39f4a5a7814cc306d002366e1af922d32b7713c5",
      "parents": [
        "05da45583de9b383dc81dd695fe248431d6c9f2b"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Feb 24 11:20:43 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:26 2008 +0300"
      },
      "message": "KVM: Prefix control register accessors with kvm_ to avoid namespace pollution\n\nNames like \u0027set_cr3()\u0027 look dangerously close to affecting the host.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "05da45583de9b383dc81dd695fe248431d6c9f2b",
      "tree": "a76d699e60aca4f775d5f67254214654235e2e17",
      "parents": [
        "2e53d63acba75795aa226febd140f67c58c6a353"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo@kvack.org",
        "time": "Sat Feb 23 11:44:30 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:25 2008 +0300"
      },
      "message": "KVM: MMU: large page support\n\nCreate large pages mappings if the guest PTE\u0027s are marked as such and\nthe underlying memory is hugetlbfs backed.  If the largepage contains\nwrite-protected pages, a large pte is not used.\n\nGives a consistent 2% improvement for data copies on ram mounted\nfilesystem, without NPT/EPT.\n\nAnthony measures a 4% improvement on 4-way kernbench, with NPT.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2e53d63acba75795aa226febd140f67c58c6a353",
      "tree": "be4ad4e5b28c737053af78a950d270a657e9f628",
      "parents": [
        "847f0ad8cbfa70c1af6948025836dfbd9ed6da1e"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Wed Feb 20 14:47:24 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:25 2008 +0300"
      },
      "message": "KVM: MMU: ignore zapped root pagetables\n\nMark zapped root pagetables as invalid and ignore such pages during lookup.\n\nThis is a problem with the cr3-target feature, where a zapped root table fools\nthe faulting code into creating a read-only mapping. The result is a lockup\nif the instruction can\u0027t be emulated.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "847f0ad8cbfa70c1af6948025836dfbd9ed6da1e",
      "tree": "d3e1f91b460648189922cbb27b6a9571beb312cf",
      "parents": [
        "14af3f3c56103d8c3bb173c255ef5d89fb0c9350"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "alex@csgraf.de",
        "time": "Thu Feb 21 12:11:01 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:25 2008 +0300"
      },
      "message": "KVM: Implement dummy values for MSR_PERF_STATUS\n\nDarwin relies on this and ceases to work without.\n\nSigned-off-by: Alexander Graf \u003calex@csgraf.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "14af3f3c56103d8c3bb173c255ef5d89fb0c9350",
      "tree": "aee57781bbd073a123b8191ace0261f339dc06ee",
      "parents": [
        "4866d5e3d59c7831c7fa117c246a39165817db0d"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Feb 19 10:25:50 2008 -0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:24 2008 +0300"
      },
      "message": "KVM: sparse fixes for kvm/x86.c\n\nIn two case statements, use the ever popular \u0027i\u0027 instead of index:\narch/x86/kvm/x86.c:1063:7: warning: symbol \u0027index\u0027 shadows an earlier one\narch/x86/kvm/x86.c:1000:9: originally declared here\narch/x86/kvm/x86.c:1079:7: warning: symbol \u0027index\u0027 shadows an earlier one\narch/x86/kvm/x86.c:1000:9: originally declared here\n\nMake it static.\narch/x86/kvm/x86.c:1945:24: warning: symbol \u0027emulate_ops\u0027 was not declared. Should it be static?\n\nDrop the return statements.\narch/x86/kvm/x86.c:2878:2: warning: returning void-valued expression\narch/x86/kvm/x86.c:2944:2: warning: returning void-valued expression\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4866d5e3d59c7831c7fa117c246a39165817db0d",
      "tree": "60210932670ba91014d8059a3ce3f3706f5a716c",
      "parents": [
        "77cd337f2246ae72915538383e8f5a6b7ffb363d"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Feb 19 10:32:02 2008 -0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:24 2008 +0300"
      },
      "message": "KVM: SVM: make iopm_base static\n\nFixes sparse warning as well.\narch/x86/kvm/svm.c:69:15: warning: symbol \u0027iopm_base\u0027 was not declared. Should it be static?\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "77cd337f2246ae72915538383e8f5a6b7ffb363d",
      "tree": "c810a1dba3ca581854fb4c790d6c39270a3c4443",
      "parents": [
        "f11c3a8d84d7bf091bf963edd7104dd4ba6416c3"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Feb 19 10:43:11 2008 -0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:24 2008 +0300"
      },
      "message": "KVM: x86 emulator: fix sparse warnings in x86_emulate.c\n\nNesting __emulate_2op_nobyte inside__emulate_2op produces many shadowed\nvariable warnings on the internal variable _tmp used by both macros.\n\nChange the outer macro to use __tmp.\n\nAvoids a sparse warning like the following at every call site of __emulate_2op\narch/x86/kvm/x86_emulate.c:1091:3: warning: symbol \u0027_tmp\u0027 shadows an earlier one\narch/x86/kvm/x86_emulate.c:1091:3: originally declared here\n[18 more warnings suppressed]\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f11c3a8d84d7bf091bf963edd7104dd4ba6416c3",
      "tree": "e297b6cee55b06c8ec40fe00998deef7cfe4a7ce",
      "parents": [
        "a5f61300c489e334ddf99781a13a7f8d4b580781"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@qumranet.com",
        "time": "Thu Feb 21 01:00:30 2008 +0530"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:24 2008 +0300"
      },
      "message": "KVM: Add stat counter for hypercalls\n\nSigned-off-by: Amit Shah \u003camit.shah@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a5f61300c489e334ddf99781a13a7f8d4b580781",
      "tree": "54d9587f08ddfc847aebfdff17cb4d6e9ec25ad7",
      "parents": [
        "ef2979bd98dac86ea6a4cd9bdd6820a466108017"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 17:57:21 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:24 2008 +0300"
      },
      "message": "KVM: Use x86\u0027s segment descriptor struct instead of private definition\n\nThe x86 desc_struct unification allows us to remove segment_descriptor.h.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ef2979bd98dac86ea6a4cd9bdd6820a466108017",
      "tree": "5c5fb4ab189cce45148c8d73086b39f88f486f36",
      "parents": [
        "a988b910ef816ed57e1cecbec14e98e906453f91"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 12:04:47 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: Increase the number of user memory slots per vm\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "a988b910ef816ed57e1cecbec14e98e906453f91",
      "tree": "ff76b7c516db08bb5adafd87d895f53356144d0d",
      "parents": [
        "edbe6c325da48e707a3b31310c5ff5783cf6c0be"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 11:59:20 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: Add API for determining the number of supported memory slots\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "edbe6c325da48e707a3b31310c5ff5783cf6c0be",
      "tree": "397e11e558da67fc025e5ab7a6ff5d2628d94af1",
      "parents": [
        "f725230af9ea03f6cc6f4a90e87aa428df46ec19"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 11:56:51 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: Increase vcpu count to 16\n\nWith NPT support, scalability is much improved.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f725230af9ea03f6cc6f4a90e87aa428df46ec19",
      "tree": "dcbeae15414805505a71b25c0ee989d698522ea4",
      "parents": [
        "7a95727567f0991751c2db774a110b4f8080de7f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Feb 20 11:53:16 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: Add API to retrieve the number of supported vcpus per vm\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7a95727567f0991751c2db774a110b4f8080de7f",
      "tree": "dc2cc8725cbc8cd8ed8d79bffc68a6e01ed99736",
      "parents": [
        "e4706772ea46e57cf69a7140c40063a21884c8e0"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Feb 19 07:40:41 2008 -0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:23 2008 +0300"
      },
      "message": "KVM: x86 emulator: make register_address_increment and JMP_REL static inlines\n\nChange jmp_rel() to a function as well.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e4706772ea46e57cf69a7140c40063a21884c8e0",
      "tree": "a8de3773d511d2b989c2e4c033dd4faaac3defa6",
      "parents": [
        "ddcb2885e2902ebfc422eccd763b02c5ee22d68b"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Feb 19 07:40:38 2008 -0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:22 2008 +0300"
      },
      "message": "KVM: x86 emulator: make register_address, address_mask static inlines\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ddcb2885e2902ebfc422eccd763b02c5ee22d68b",
      "tree": "22acf0af546e312713cfe9516e41fb51f27ba521",
      "parents": [
        "790c73f6289a204f858ffdcbe4a2b38e91657ec6"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Feb 18 11:12:48 2008 -0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:22 2008 +0300"
      },
      "message": "KVM: x86 emulator: add ad_mask static inline\n\nReplaces open-coded mask calculation in macros.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "790c73f6289a204f858ffdcbe4a2b38e91657ec6",
      "tree": "3d6b146538b11e45a713bb4fa1b44af4509ca27f",
      "parents": [
        "18068523d3a0b41fcee5b53cdb437a0ab4d65e4b"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Fri Feb 15 17:52:48 2008 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:22 2008 +0300"
      },
      "message": "x86: KVM guest: paravirtualized clocksource\n\nThis is the guest part of kvm clock implementation\nIt does not do tsc-only timing, as tsc can have deltas\nbetween cpus, and it did not seem worthy to me to keep\nadjusting them.\n\nWe do use it, however, for fine-grained adjustment.\n\nOther than that, time comes from the host.\n\n[randy dunlap: add missing include]\n[randy dunlap: disallow on Voyager or Visual WS]\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "18068523d3a0b41fcee5b53cdb437a0ab4d65e4b",
      "tree": "cbedbd4371cb57c34728137988a7433ae736d79a",
      "parents": [
        "24e09cbf480a72f9c952af4ca77b159503dca44b"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Fri Feb 15 17:52:47 2008 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:22 2008 +0300"
      },
      "message": "KVM: paravirtualized clocksource: host part\n\nThis is the host part of kvm clocksource implementation. As it does\nnot include clockevents, it is a fairly simple implementation. We\nonly have to register a per-vcpu area, and start writing to it periodically.\n\nThe area is binary compatible with xen, as we use the same shadow_info\nstructure.\n\n[marcelo: fix bad_page on MSR_KVM_SYSTEM_TIME]\n[avi: save full value of the msr, even if enable bit is clear]\n[avi: clear previous value of time_page]\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "24e09cbf480a72f9c952af4ca77b159503dca44b",
      "tree": "f1f321963c620d26172f8fd0878374d9598c0ad0",
      "parents": [
        "f65c229c3e7743c6654c16b9ec6248466b5eef21"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Feb 13 18:58:47 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:21 2008 +0300"
      },
      "message": "KVM: SVM: enable LBR virtualization\n\nThis patch implements the Last Branch Record Virtualization (LBRV) feature of\nthe AMD Barcelona and Phenom processors into the kvm-amd module. It will only\nbe enabled if the guest enables last branch recording in the DEBUG_CTL MSR. So\nthere is no increased world switch overhead when the guest doesn\u0027t use these\nMSRs.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f65c229c3e7743c6654c16b9ec6248466b5eef21",
      "tree": "0326e1e3e7a407c8271d2ae5427c300e6e741a39",
      "parents": [
        "e6101a96c9efb74c98bba6322d4c5ea89e47e0fe"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Feb 13 18:58:46 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:21 2008 +0300"
      },
      "message": "KVM: SVM: allocate the MSR permission map per VCPU\n\nThis patch changes the kvm-amd module to allocate the SVM MSR permission map\nper VCPU instead of a global map for all VCPUs. With this we have more\nflexibility allowing specific guests to access virtualized MSRs. This is\nrequired for LBR virtualization.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e6101a96c9efb74c98bba6322d4c5ea89e47e0fe",
      "tree": "904d422bed1443ec0dabf4d22b99bd73551d110d",
      "parents": [
        "2e11384c2c6f1ce662b1e5b05ba49b216a052f2a"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Feb 13 18:58:45 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:21 2008 +0300"
      },
      "message": "KVM: SVM: let init_vmcb() take struct vcpu_svm as parameter\n\nChange the parameter of the init_vmcb() function in the kvm-amd module from\nstruct vmcb to struct vcpu_svm.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Markus Rechberger \u003cmarkus.rechberger@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2e11384c2c6f1ce662b1e5b05ba49b216a052f2a",
      "tree": "694fecbf8caf6fc1618bfa0920cc5dc7e1c72c5b",
      "parents": [
        "709ddebf81cb40e3c36c6109a7892e8b93a09464"
      ],
      "author": {
        "name": "Ryan Harper",
        "email": "ryanh@us.ibm.com",
        "time": "Mon Feb 11 10:26:38 2008 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:21 2008 +0300"
      },
      "message": "KVM: VMX: fix typo in VMX header define\n\nLooking at Intel Volume 3b, page 148, table 20-11 and noticed\nthat the field name is \u0027Deliver\u0027 not \u0027Deliever\u0027.  Attached patch changes\nthe define name and its user in vmx.c\n\nSigned-off-by: Ryan Harper \u003cryanh@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "709ddebf81cb40e3c36c6109a7892e8b93a09464",
      "tree": "e7b275fde77ed005c60182e093875c13656ec43a",
      "parents": [
        "fb72d1674d860b0c9ef9b66b7f4f01fe5b3d2c00"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Feb 07 13:47:45 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:21 2008 +0300"
      },
      "message": "KVM: SVM: add support for Nested Paging\n\nThis patch contains the SVM architecture dependent changes for KVM to enable\nsupport for the Nested Paging feature of AMD Barcelona and Phenom processors.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fb72d1674d860b0c9ef9b66b7f4f01fe5b3d2c00",
      "tree": "d24d0f67fde02b87263ebfe8c3bde2d0ff3d67e4",
      "parents": [
        "cc4b6871e771e76dc1de06adb8aed261a1c66be8"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Feb 07 13:47:44 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:20 2008 +0300"
      },
      "message": "KVM: MMU: add TDP support to the KVM MMU\n\nThis patch contains the changes to the KVM MMU necessary for support of the\nNested Paging feature in AMD Barcelona and Phenom Processors.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cc4b6871e771e76dc1de06adb8aed261a1c66be8",
      "tree": "e64b3524153846180a2a481fe1e412d3cfc6d3fd",
      "parents": [
        "4d9976bbdc09e08b69fc12fee2042c3528187b32"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Feb 07 13:47:43 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:20 2008 +0300"
      },
      "message": "KVM: export the load_pdptrs() function to modules\n\nThe load_pdptrs() function is required in the SVM module for NPT support.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4d9976bbdc09e08b69fc12fee2042c3528187b32",
      "tree": "908e6d3b59a3854d9a3db88b4d47817fee9b8517",
      "parents": [
        "1855267210e1a8c9d41fe3a3c7a0d42eca5fb7cd"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Feb 07 13:47:42 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:20 2008 +0300"
      },
      "message": "KVM: MMU: make the __nonpaging_map function generic\n\nThe mapping function for the nonpaging case in the softmmu does basically the\nsame as required for Nested Paging. Make this function generic so it can be\nused for both.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1855267210e1a8c9d41fe3a3c7a0d42eca5fb7cd",
      "tree": "2af29e610ce7c7196798cc5f580f7282f902df2a",
      "parents": [
        "6c7dac72d5c7dc0e09512dce865398167be9a8f7"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Feb 07 13:47:41 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:19 2008 +0300"
      },
      "message": "KVM: export information about NPT to generic x86 code\n\nThe generic x86 code has to know if the specific implementation uses Nested\nPaging. In the generic code Nested Paging is called Two Dimensional Paging\n(TDP) to avoid confusion with (future) TDP implementations of other vendors.\nThis patch exports the availability of TDP to the generic x86 code.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6c7dac72d5c7dc0e09512dce865398167be9a8f7",
      "tree": "2c10ebc4871ce0a688f139dbb4c6e81a45cc4286",
      "parents": [
        "e3da3acdb32c1804a5c853feebcc037b7434076f"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Feb 07 13:47:40 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:19 2008 +0300"
      },
      "message": "KVM: SVM: add module parameter to disable Nested Paging\n\nTo disable the use of the Nested Paging feature even if it is available in\nhardware this patch adds a module parameter. Nested Paging can be disabled by\npassing npt\u003d0 to the kvm_amd module.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e3da3acdb32c1804a5c853feebcc037b7434076f",
      "tree": "b0dec2b3e0abfbef09f3688397250048f6a0ebe2",
      "parents": [
        "33bd6a0b3e8baed6469c8e68ea1b16cb50c4f5af"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Feb 07 13:47:39 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:19 2008 +0300"
      },
      "message": "KVM: SVM: add detection of Nested Paging feature\n\nLet SVM detect if the Nested Paging feature is available on the hardware.\nDisable it to keep this patch series bisectable.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "33bd6a0b3e8baed6469c8e68ea1b16cb50c4f5af",
      "tree": "3f7d915c6146d6e490da9577f0e5e3923b34510b",
      "parents": [
        "9457a712a2f464c4b21bb7f78998775c69673a0c"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Feb 07 13:47:38 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:19 2008 +0300"
      },
      "message": "KVM: SVM: move feature detection to hardware setup code\n\nBy moving the SVM feature detection from the each_cpu code to the hardware\nsetup code it runs only once. As an additional advance the feature check is now\navailable earlier in the module setup process.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9457a712a2f464c4b21bb7f78998775c69673a0c",
      "tree": "29297b37bb28b1a6255f75da6a5f745fcf3af589",
      "parents": [
        "9f62e19a1107466b9e9501e23a9dd5acb81fdca1"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Jan 31 14:57:40 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:19 2008 +0300"
      },
      "message": "KVM: allow access to EFER in 32bit KVM\n\nThis patch makes the EFER register accessible on a 32bit KVM host. This is\nnecessary to boot 32 bit PAE guests under SVM.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9f62e19a1107466b9e9501e23a9dd5acb81fdca1",
      "tree": "bb99f0372f4ac48a1d341ce340a422abe0c4d9aa",
      "parents": [
        "50a37eb4e05efaa7bac6a948fd4db1a48c728b99"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Jan 31 14:57:39 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:18 2008 +0300"
      },
      "message": "KVM: VMX: unifdef the EFER specific code\n\nTo allow access to the EFER register in 32bit KVM the EFER specific code has to\nbe exported to the x86 generic code. This patch does this in a backwards\ncompatible manner.\n\n[avi: add check for EFER-less hosts]\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "50a37eb4e05efaa7bac6a948fd4db1a48c728b99",
      "tree": "34195810be002db84cfafb9ed706d48bb6752d52",
      "parents": [
        "f2b4b7ddf633ffa24ce7c89c9e0d8a06463484e3"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Jan 31 14:57:38 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:18 2008 +0300"
      },
      "message": "KVM: align valid EFER bits with the features of the host system\n\nThis patch aligns the bits the guest can set in the EFER register with the\nfeatures in the host processor. Currently it lets EFER.NX disabled if the\nprocessor does not support it and enables EFER.LME and EFER.LMA only for KVM on\n64 bit hosts.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f2b4b7ddf633ffa24ce7c89c9e0d8a06463484e3",
      "tree": "db27a5a3cff2e60497ec60194a9f754372bf01e1",
      "parents": [
        "0aac03f07b37da96e00371e66973d5ffaae578a4"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Jan 31 14:57:37 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:18 2008 +0300"
      },
      "message": "KVM: make EFER_RESERVED_BITS configurable for architecture code\n\nThis patch give the SVM and VMX implementations the ability to add some bits\nthe guest can set in its EFER register.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "0aac03f07b37da96e00371e66973d5ffaae578a4",
      "tree": "f744219287c43ea0ff356cd84baa206a43fd903f",
      "parents": [
        "31bb117eb48f2629e030ca547ca89a1c34150183"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@qumranet.com",
        "time": "Wed Jan 30 19:57:35 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:18 2008 +0300"
      },
      "message": "KVM: Disable pagefaults during copy_from_user_inatomic()\n\nWith CONFIG_PREEMPT\u003dn, this is needed in order to disable the fault-in\ncode from sleeping.\n\nSigned-off-by: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "31bb117eb48f2629e030ca547ca89a1c34150183",
      "tree": "9923c209e353dfac4843ae067eaade9f3154ced3",
      "parents": [
        "2384d2b32640839a4d4d260ca7c5aa4edbf68d91"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Mon Jan 28 17:42:34 2008 -0600"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:18 2008 +0300"
      },
      "message": "KVM: Use CONFIG_PREEMPT_NOTIFIERS around struct preempt_notifier\n\nThis allows kvm_host.h to be #included even when struct preempt_notifier is\nundefined. This is needed to build ppc asm-offsets.h.\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2384d2b32640839a4d4d260ca7c5aa4edbf68d91",
      "tree": "812ba0ea30b2fd59553bc7064b13cc107f276e6b",
      "parents": [
        "adb1ff46754a87f3f6c9e7ee0a92f9a8a183bb38"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Thu Jan 17 15:14:33 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:17 2008 +0300"
      },
      "message": "KVM: VMX: Enable Virtual Processor Identification (VPID)\n\nTo allow TLB entries to be retained across VM entry and VM exit, the VMM\ncan now identify distinct address spaces through a new virtual-processor ID\n(VPID) field of the VMCS.\n\n[avi: drop vpid_sync_all()]\n[avi: add \"cc\" to asm constraints]\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "adb1ff46754a87f3f6c9e7ee0a92f9a8a183bb38",
      "tree": "033c1e021019242d9a47594993cbfaecd62ab540",
      "parents": [
        "d196e343361c229496adeda42335856da9d057de"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jan 24 15:13:08 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:17 2008 +0300"
      },
      "message": "KVM: Limit vcpu mmap size to one page on non-x86\n\nThe second page is only needed on archs that support pio.\n\nNoted by Carsten Otte.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d196e343361c229496adeda42335856da9d057de",
      "tree": "167f9f75636769efdc9fa9dd32883b5c780a4c12",
      "parents": [
        "1d6ad2073e5354912291277c606a57fd37330f04"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jan 24 11:44:11 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:17 2008 +0300"
      },
      "message": "KVM: MMU: Decouple mmio from shadow page tables\n\nCurrently an mmio guest pte is encoded in the shadow pagetable as a\nnot-present trapping pte, with the SHADOW_IO_MARK bit set.  However\nnothing is ever done with this information, so maintaining it is a\nuseless complication.\n\nThis patch moves the check for mmio to before shadow ptes are instantiated,\nso the shadow code is never invoked for ptes that reference mmio.  The code\nis simpler, and with future work, can be made to handle mmio concurrently.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1d6ad2073e5354912291277c606a57fd37330f04",
      "tree": "cdd755cff23797f15cdc9474c0eef1a7179b8273",
      "parents": [
        "09566765efd034feba45611f9d0ae9a702f8bb1d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 23 22:26:09 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:16 2008 +0300"
      },
      "message": "KVM: x86 emulator: group decoding for group 1 instructions\n\nOpcodes 0x80-0x83\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "09566765efd034feba45611f9d0ae9a702f8bb1d",
      "tree": "3abe1b831ed5dc62bfdb6e06987f65180aad271e",
      "parents": [
        "5c5027425ec23ded452879ee5d0775a9a90fb9bf"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Jan 23 18:14:23 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:15 2008 +0300"
      },
      "message": "KVM: Only x86 has pio\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5c5027425ec23ded452879ee5d0775a9a90fb9bf",
      "tree": "7284914cb8d2a4a6e87b81b677d827c0735c7b10",
      "parents": [
        "d95058a1a7170ae2af2939cbdab0ff5d5e005238"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Tue Jan 22 20:46:14 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:15 2008 +0300"
      },
      "message": "KVM: constify function pointer tables\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d95058a1a7170ae2af2939cbdab0ff5d5e005238",
      "tree": "c50fa7fbb4fce139c8921d085209ead86338eaaf",
      "parents": [
        "fd60754e4ffa992586346dd56451723b4c096626"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 18 13:36:50 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:15 2008 +0300"
      },
      "message": "KVM: x86 emulator: add group 7 decoding\n\nThis adds group decoding for opcode 0x0f 0x01 (group 7).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "fd60754e4ffa992586346dd56451723b4c096626",
      "tree": "0d03253f9d5b564f0f2da916a753f51870dbda92",
      "parents": [
        "7d858a19efe5844a98e060931570359b70dea6d1"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 18 13:12:26 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:15 2008 +0300"
      },
      "message": "KVM: x86 emulator: Group decoding for groups 4 and 5\n\nAdd group decoding support for opcode 0xfe (group 4) and 0xff (group 5).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7d858a19efe5844a98e060931570359b70dea6d1",
      "tree": "62ee800fb0f1a8a976ab47b015717b34636f3275",
      "parents": [
        "43bb19cd3398d3f544d8e2d6ed6c5c5d7b4e5819"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 18 12:58:04 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:14 2008 +0300"
      },
      "message": "KVM: x86 emulator: Group decoding for group 3\n\nThis adds group decoding support for opcodes 0xf6, 0xf7 (group 3).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "43bb19cd3398d3f544d8e2d6ed6c5c5d7b4e5819",
      "tree": "a5a868abf0ce93aeb7e5916c60f5d3775ab061ee",
      "parents": [
        "e09d082c03e137015bc0a17ca77e4b9dca08a5d7"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 18 12:46:50 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:14 2008 +0300"
      },
      "message": "KVM: x86 emulator: group decoding for group 1A\n\nThis adds group decode support for opcode 0x8f.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e09d082c03e137015bc0a17ca77e4b9dca08a5d7",
      "tree": "bde45c9b0015445a777f1a20a88048721d9387e3",
      "parents": [
        "1ae0a13def678876b9acfb5ac1e2cf7d5d45a60d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Fri Jan 18 12:38:59 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:14 2008 +0300"
      },
      "message": "KVM: x86 emulator: add support for group decoding\n\nCertain x86 instructions use bits 3:5 of the byte following the opcode as an\nopcode extension, with the decode sometimes depending on bits 6:7 as well.\nAdd support for this in the main decoding table rather than an ad-hock\nadaptation per opcode.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1ae0a13def678876b9acfb5ac1e2cf7d5d45a60d",
      "tree": "6127e3b33d325cf88053f38a9c9d5cea1be3b65d",
      "parents": [
        "489f1d6526ab68ca1842398fa3ae95c597fe3d32"
      ],
      "author": {
        "name": "Dong, Eddie",
        "email": "eddie.dong@intel.com",
        "time": "Mon Jan 07 13:20:25 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:14 2008 +0300"
      },
      "message": "KVM: MMU: Simplify hash table indexing\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "489f1d6526ab68ca1842398fa3ae95c597fe3d32",
      "tree": "ce86e117d8bc74c410ad8168928c036497a93eb8",
      "parents": [
        "c3bf9bc243092c53946fd6d8ebd6dc2f4e572d48"
      ],
      "author": {
        "name": "Dong, Eddie",
        "email": "eddie.dong@intel.com",
        "time": "Mon Jan 07 11:14:20 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 11:53:13 2008 +0300"
      },
      "message": "KVM: MMU: Update shadow ptes on partial guest pte writes\n\nA guest partial guest pte write will leave shadow_trap_nonpresent_pte\nin spte, which generates a vmexit at the next guest access through that pte.\n\nThis patch improves this by reading the full guest pte in advance and thus\nbeing able to update the spte and eliminate the vmexit.\n\nThis helps pae guests which use two 32-bit writes to set a single 64-bit pte.\n\n[truncation fix by Eric]\n\nSigned-off-by: Yaozu (Eddie) Dong \u003ceddie.dong@intel.com\u003e\nSigned-off-by: Feng (Eric) Liu \u003ceric.e.liu@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "c3bf9bc243092c53946fd6d8ebd6dc2f4e572d48",
      "tree": "4cabbf33e11e3a71b64394b24fe70453f41cefe8",
      "parents": [
        "e3505dd50caf54e6f81f897cb347441409974a15",
        "c2b91e2eec9678dbda274e906cc32ea8f711da3b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 26 14:04:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 26 14:04:32 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-bigbox-bootmem-v3\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-bigbox-bootmem-v3:\n  x86_64/mm: check and print vmemmap allocation continuous\n  x86_64: fix setup_node_bootmem to support big mem excluding with memmap\n  x86_64: make reserve_bootmem_generic() use new reserve_bootmem()\n  mm: allow reserve_bootmem() cross nodes\n  mm: offset align in alloc_bootmem()\n  mm: fix alloc_bootmem_core to use fast searching for all nodes\n  mm: make mem_map allocation continuous\n"
    },
    {
      "commit": "e3505dd50caf54e6f81f897cb347441409974a15",
      "tree": "3519b3e61d040f6c6874e5199ca640b3868f2407",
      "parents": [
        "9b79ed952bd7344d40152f8a560ad8a0d93f3886",
        "f5093913c0b5b93e3ccafd39d056e76557169ced"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 26 14:03:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 26 14:03:54 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:\n  kbuild: scripts/Makefile.modpost typo fix\n  kbuild: soften MODULE_LICENSE check\n"
    },
    {
      "commit": "c2b91e2eec9678dbda274e906cc32ea8f711da3b",
      "tree": "fd9e9799078c65c8282ca3a996e6c3bd9e94fa4c",
      "parents": [
        "1a27fc0a42162964d758e9d36d2d1b49c082a67c"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel.send@gmail.com",
        "time": "Sat Apr 12 01:19:24 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 22:51:09 2008 +0200"
      },
      "message": "x86_64/mm: check and print vmemmap allocation continuous\n\nOn big systems with lots of memory, don\u0027t print out too much during\nbootup, and make it easy to find if it is continuous.\n\non 256G 8 sockets system will get\n [ffffe20000000000-ffffe20002bfffff] PMD -\u003e [ffff810001400000-ffff810003ffffff] on node 0\n[ffffe2001c700000-ffffe2001c7fffff] potential offnode page_structs\n [ffffe20002c00000-ffffe2001c7fffff] PMD -\u003e [ffff81000c000000-ffff8100255fffff] on node 0\n[ffffe20038700000-ffffe200387fffff] potential offnode page_structs\n [ffffe2001c800000-ffffe200387fffff] PMD -\u003e [ffff810820200000-ffff81083c1fffff] on node 1\n [ffffe20040000000-ffffe2007fffffff] PUD -\u003effff811027a00000 on node 2\n [ffffe20038800000-ffffe2003fffffff] PMD -\u003e [ffff811020200000-ffff8110279fffff] on node 2\n[ffffe20054700000-ffffe200547fffff] potential offnode page_structs\n [ffffe20040000000-ffffe200547fffff] PMD -\u003e [ffff811027c00000-ffff81103c3fffff] on node 2\n[ffffe20070700000-ffffe200707fffff] potential offnode page_structs\n [ffffe20054800000-ffffe200707fffff] PMD -\u003e [ffff811820200000-ffff81183c1fffff] on node 3\n [ffffe20080000000-ffffe200bfffffff] PUD -\u003effff81202fa00000 on node 4\n [ffffe20070800000-ffffe2007fffffff] PMD -\u003e [ffff812020200000-ffff81202f9fffff] on node 4\n[ffffe2008c700000-ffffe2008c7fffff] potential offnode page_structs\n [ffffe20080000000-ffffe2008c7fffff] PMD -\u003e [ffff81202fc00000-ffff81203c3fffff] on node 4\n[ffffe200a8700000-ffffe200a87fffff] potential offnode page_structs\n [ffffe2008c800000-ffffe200a87fffff] PMD -\u003e [ffff812820200000-ffff81283c1fffff] on node 5\n [ffffe200c0000000-ffffe200ffffffff] PUD -\u003effff813037a00000 on node 6\n [ffffe200a8800000-ffffe200bfffffff] PMD -\u003e [ffff813020200000-ffff8130379fffff] on node 6\n[ffffe200c4700000-ffffe200c47fffff] potential offnode page_structs\n [ffffe200c0000000-ffffe200c47fffff] PMD -\u003e [ffff813037c00000-ffff81303c3fffff] on node 6\n [ffffe200c4800000-ffffe200e07fffff] PMD -\u003e [ffff813820200000-ffff81383c1fffff] on node 7\n\ninstead of a very long print out...\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1a27fc0a42162964d758e9d36d2d1b49c082a67c",
      "tree": "b94c4864edd0869d8ab7b25b9c3942a14bb6f9db",
      "parents": [
        "8b3cd09ed23049fcb02479c6286744b36324ac9d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Mar 18 12:52:37 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 22:51:08 2008 +0200"
      },
      "message": "x86_64: fix setup_node_bootmem to support big mem excluding with memmap\n\ntypical case: four sockets system, every node has 4g ram, and we are using:\n\n\tmemmap\u003d10g$4g\n\nto mask out memory on node1 and node2\n\nwhen numa is enabled, early_node_mem is used to get node_data and node_bootmap.\n\nif it can not get memory from the same node with find_e820_area(), it will\nuse alloc_bootmem to get buff from previous nodes.\n\nso check it and print out some info about it.\n\nneed to move early_res_to_bootmem into every setup_node_bootmem.\nand it takes range that node has. otherwise alloc_bootmem could return addr\nthat reserved early.\n\ndepends on \"mm: make reserve_bootmem can crossed the nodes\".\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b3cd09ed23049fcb02479c6286744b36324ac9d",
      "tree": "cc775b442750533d9854466a8da58088349b5d5b",
      "parents": [
        "a5645a61b3b7e7d7de15e1a642ead600150ce94d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Mar 18 12:50:21 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 22:51:08 2008 +0200"
      },
      "message": "x86_64: make reserve_bootmem_generic() use new reserve_bootmem()\n\n\"mm: make reserve_bootmem can crossed the nodes\" provides new\nreserve_bootmem(), let reserve_bootmem_generic() use that.\n\nreserve_bootmem_generic() is used to reserve initramdisk, so this way\nwe can make sure even when bootloader or kexec load ranges cross the\nnode memory boundaries, reserve_bootmem still works.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a5645a61b3b7e7d7de15e1a642ead600150ce94d",
      "tree": "76fad06bc64a00b71821a9df63c474ea5341eab2",
      "parents": [
        "9a2dc04cf070ee98e014a172695782ff42015fc4"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Mar 18 12:49:12 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 22:51:08 2008 +0200"
      },
      "message": "mm: allow reserve_bootmem() cross nodes\n\nsplit reserve_bootmem_core() into two functions, one which checks\nconflicts, and one which sets the bits.\n\nand make reserve_bootmem to loop bdata_list to cross the nodes.\n\nuser could be crashkernel and ramdisk..., in case the range provided\nby those externalities crosses the nodes.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a2dc04cf070ee98e014a172695782ff42015fc4",
      "tree": "3a068d5e6625a931f2cf3f7a7133e6f194c962c2",
      "parents": [
        "ad09315cad17458e51c7f1f8b371cb942c54b955"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Mar 18 12:44:48 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 22:51:08 2008 +0200"
      },
      "message": "mm: offset align in alloc_bootmem()\n\nneed offset alignment when node_boot_start\u0027s alignment is less than\nthe alignment required.\n\nuse local node_boot_start to match alignment - so don\u0027t add extra operation\nin search loop.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad09315cad17458e51c7f1f8b371cb942c54b955",
      "tree": "5838f3a78b7697c0d0a7d2ae88b8424226a92067",
      "parents": [
        "e123dd3f0ec1664576456ea1ea045591a0a95f0c"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Mon Mar 10 23:23:42 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 22:51:07 2008 +0200"
      },
      "message": "mm: fix alloc_bootmem_core to use fast searching for all nodes\n\nMake the nodes other than node 0 use bdata-\u003elast_success for fast\nsearch too.\n\nWe need to use __alloc_bootmem_core() for vmemmap allocation for other\nnodes when numa and sparsemem/vmemmap are enabled.\n\nAlso, make fail_block path increase i with incr only after ALIGN\nto avoid extra increase when size is larger than align.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e123dd3f0ec1664576456ea1ea045591a0a95f0c",
      "tree": "b73895fd0750749a1b0d85599ca02da4a920c9c0",
      "parents": [
        "539a5fe22620a1665cce504167953a71a43232ad"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sun Apr 13 11:51:06 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 22:51:07 2008 +0200"
      },
      "message": "mm: make mem_map allocation continuous\n\nvmemmap allocation currently has this layout:\n\n [ffffe20000000000-ffffe200001fffff] PMD -\u003effff810001400000 on node 0\n [ffffe20000200000-ffffe200003fffff] PMD -\u003effff810001800000 on node 0\n [ffffe20000400000-ffffe200005fffff] PMD -\u003effff810001c00000 on node 0\n [ffffe20000600000-ffffe200007fffff] PMD -\u003effff810002000000 on node 0\n [ffffe20000800000-ffffe200009fffff] PMD -\u003effff810002400000 on node 0\n...\n\nnote that there is a 2M hole between them - not optimal.\n\nthe root cause is that usemap (24 bytes) will be allocated after every 2M\nmem_map, and it will push next vmemmap (2M) to the next (2M) alignment.\n\nsolution: try to allocate the mem_map continously.\n\nafter the patch, we get:\n\n [ffffe20000000000-ffffe200001fffff] PMD -\u003effff810001400000 on node 0\n [ffffe20000200000-ffffe200003fffff] PMD -\u003effff810001600000 on node 0\n [ffffe20000400000-ffffe200005fffff] PMD -\u003effff810001800000 on node 0\n [ffffe20000600000-ffffe200007fffff] PMD -\u003effff810001a00000 on node 0\n [ffffe20000800000-ffffe200009fffff] PMD -\u003effff810001c00000 on node 0\n...\n\nwhich is the ideal layout.\n\nand usemap will share a page because of they are allocated continuously too:\n\nsparse_early_usemap_alloc: usemap \u003d ffff810024e00000 size \u003d 24\nsparse_early_usemap_alloc: usemap \u003d ffff810024e00080 size \u003d 24\nsparse_early_usemap_alloc: usemap \u003d ffff810024e00100 size \u003d 24\nsparse_early_usemap_alloc: usemap \u003d ffff810024e00180 size \u003d 24\n...\n\nso we make the bootmem allocation more compact and use less memory\nfor usemap \u003d\u003e mission accomplished ;-)\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "9b79ed952bd7344d40152f8a560ad8a0d93f3886"
}
