)]}'
{
  "log": [
    {
      "commit": "bb75c627fb0dfb8c0ab75d3033709ff928896e16",
      "tree": "a012b220304a44a949b2be98ac2b07e50e52fe01",
      "parents": [
        "e7fc6f93b4242b2b566f0070709e27257d6da8a2"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Thu Nov 17 15:26:35 2011 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Nov 17 16:30:25 2011 +0200"
      },
      "message": "Revert \"KVM: PPC: Add support for explicit HIOR setting\"\n\nThis reverts commit a15bd354f083f20f257db450488db52ac27df439.\n\nIt exceeded the padding on the SREGS struct, rendering the ABI\nbackwards-incompatible.\n\nConflicts:\n\n\tarch/powerpc/kvm/powerpc.c\n\tinclude/linux/kvm.h\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7697e71f72b45a1bd0abe70918c383100fcc8514",
      "tree": "afad6ff9dcd00a031de31b9cd34d2ae09484586a",
      "parents": [
        "7eef87dc99e419b1cc051e4417c37e4744d7b661"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Tue Oct 18 12:27:15 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 30 12:24:05 2011 +0200"
      },
      "message": "KVM: s390: implement sigp external call\n\nImplement sigp external call, which might be required for guests that\nissue an external call instead of an emergency signal for IPI.\n\nThis fixes an issue with \"KVM: unknown SIGP: 0x02\" when booting\nsuch an SMP guest.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "930b412a005bde2ea3f05911eaaeeb10f11d79ab",
      "tree": "aac017faf38837319a24fe9276e056fa6af1f4d8",
      "parents": [
        "a668f2bd3f14ce7f92e119f4b5d9b50cdc59e855"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Aug 08 17:29:42 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Sep 25 19:52:26 2011 +0300"
      },
      "message": "KVM: PPC: Enable the PAPR CAP for Book3S\n\nNow that Book3S PV mode can also run PAPR guests, we can add a PAPR cap and\nenable it for all Book3S targets. Enabling that CAP switches KVM into PAPR\nmode.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n"
    },
    {
      "commit": "a15bd354f083f20f257db450488db52ac27df439",
      "tree": "06d382a5fd5a4811c00deeda261eca70975c445e",
      "parents": [
        "77e675ad825d1106f973afd353e8af84cd8d3960"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Aug 08 17:17:09 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Sep 25 19:52:23 2011 +0300"
      },
      "message": "KVM: PPC: Add support for explicit HIOR setting\n\nUntil now, we always set HIOR based on the PVR, but this is just wrong.\nInstead, we should be setting HIOR explicitly, so user space can decide\nwhat the initial HIOR value is - just like on real hardware.\n\nWe keep the old PVR based way around for backwards compatibility, but\nonce user space uses the SREGS based method, we drop the PVR logic.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n"
    },
    {
      "commit": "8c3ba334f8588e1d5099f8602cf01897720e0eca",
      "tree": "3f195eba4ff341817990db4b60c4aae829a80d82",
      "parents": [
        "c298125f4bc30fdbe4b7c33460ef57271cc51a7d"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Mon Jul 18 17:17:15 2011 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Sep 25 19:17:57 2011 +0300"
      },
      "message": "KVM: x86: Raise the hard VCPU count limit\n\nThe patch raises the hard limit of VCPU count to 254.\n\nThis will allow developers to easily work on scalability\nand will allow users to test high VCPU setups easily without\npatching the kernel.\n\nTo prevent possible issues with current setups, KVM_CAP_NR_VCPUS\nnow returns the recommended VCPU limit (which is still 64) - this\nshould be a safe value for everybody, while a new KVM_CAP_MAX_VCPUS\nreturns the hard limit which is now 254.\n\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSuggested-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "b6cf8788a3382c2000743a0e393bcc8aeb0601cb",
      "tree": "3af86a59e2884f66068019571ce725e81878b5cf",
      "parents": [
        "480e5926ce3bb61ec229be2dab08bdce8abb8d2e"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Sep 20 17:07:29 2011 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Sep 20 17:07:34 2011 +0200"
      },
      "message": "[S390] kvm: extension capability for new address space layout\n\n598841ca9919d008b520114d8a4378c4ce4e40a1 ([S390] use gmap address\nspaces for kvm guest images) changed kvm on s390 to use a separate\naddress space for kvm guests. We can now put KVM guests anywhere\nin the user address mode with a size up to 8PB - as long as the\nmemory is 1MB-aligned. This change was done without KVM extension\ncapability bit.\nThe change was added after 3.0, but we still have a chance to add\na feature bit before 3.1 (keeping the releases in a sane state).\nWe use number 71 to avoid collisions with other pending kvm patches\nas requested by Alexander Graf.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "aa04b4cc5be64b4fb9ef4e0fdf2418e2f4737fb2",
      "tree": "97a3ff14e43424e28a27e0f3be088649818c1b76",
      "parents": [
        "371fefd6f2dc46668e00871930dde613b88d4bde"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Jun 29 00:25:44 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jul 12 13:16:57 2011 +0300"
      },
      "message": "KVM: PPC: Allocate RMAs (Real Mode Areas) at boot for use by guests\n\nThis adds infrastructure which will be needed to allow book3s_hv KVM to\nrun on older POWER processors, including PPC970, which don\u0027t support\nthe Virtual Real Mode Area (VRMA) facility, but only the Real Mode\nOffset (RMO) facility.  These processors require a physically\ncontiguous, aligned area of memory for each guest.  When the guest does\nan access in real mode (MMU off), the address is compared against a\nlimit value, and if it is lower, the address is ORed with an offset\nvalue (from the Real Mode Offset Register (RMOR)) and the result becomes\nthe real address for the access.  The size of the RMA has to be one of\na set of supported values, which usually includes 64MB, 128MB, 256MB\nand some larger powers of 2.\n\nSince we are unlikely to be able to allocate 64MB or more of physically\ncontiguous memory after the kernel has been running for a while, we\nallocate a pool of RMAs at boot time using the bootmem allocator.  The\nsize and number of the RMAs can be set using the kvm_rma_size\u003dxx and\nkvm_rma_count\u003dxx kernel command line options.\n\nKVM exports a new capability, KVM_CAP_PPC_RMA, to signal the availability\nof the pool of preallocated RMAs.  The capability value is 1 if the\nprocessor can use an RMA but doesn\u0027t require one (because it supports\nthe VRMA facility), or 2 if the processor requires an RMA for each guest.\n\nThis adds a new ioctl, KVM_ALLOCATE_RMA, which allocates an RMA from the\npool and returns a file descriptor which can be used to map the RMA.  It\nalso returns the size of the RMA in the argument structure.\n\nHaving an RMA means we will get multiple KMV_SET_USER_MEMORY_REGION\nioctl calls from userspace.  To cope with this, we now preallocate the\nkvm-\u003earch.ram_pginfo array when the VM is created with a size sufficient\nfor up to 64GB of guest memory.  Subsequently we will get rid of this\narray and use memory associated with each memslot instead.\n\nThis moves most of the code that translates the user addresses into\nhost pfns (page frame numbers) out of kvmppc_prepare_vrma up one level\nto kvmppc_core_prepare_memory_region.  Also, instead of having to look\nup the VMA for each page in order to check the page size, we now check\nthat the pages we get are compound pages of 16MB.  However, if we are\nadding memory that is mapped to an RMA, we don\u0027t bother with calling\nget_user_pages_fast and instead just offset from the base pfn for the\nRMA.\n\nTypically the RMA gets added after vcpus are created, which makes it\ninconvenient to have the LPCR (logical partition control register) value\nin the vcpu-\u003earch struct, since the LPCR controls whether the processor\nuses RMA or VRMA for the guest.  This moves the LPCR value into the\nkvm-\u003earch struct and arranges for the MER (mediated external request)\nbit, which is the only bit that varies between vcpus, to be set in\nassembly code when going into the guest if there is a pending external\ninterrupt request.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n"
    },
    {
      "commit": "371fefd6f2dc46668e00871930dde613b88d4bde",
      "tree": "35fe799343861405914d27873eb175eb04d6dce5",
      "parents": [
        "54738c097163c3f01e67ccc85462b78d4d4f495f"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Jun 29 00:23:08 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jul 12 13:16:57 2011 +0300"
      },
      "message": "KVM: PPC: Allow book3s_hv guests to use SMT processor modes\n\nThis lifts the restriction that book3s_hv guests can only run one\nhardware thread per core, and allows them to use up to 4 threads\nper core on POWER7.  The host still has to run single-threaded.\n\nThis capability is advertised to qemu through a new KVM_CAP_PPC_SMT\ncapability.  The return value of the ioctl querying this capability\nis the number of vcpus per virtual CPU core (vcore), currently 4.\n\nTo use this, the host kernel should be booted with all threads\nactive, and then all the secondary threads should be offlined.\nThis will put the secondary threads into nap mode.  KVM will then\nwake them from nap mode and use them for running guest code (while\nthey are still offline).  To wake the secondary threads, we send\nthem an IPI using a new xics_wake_cpu() function, implemented in\narch/powerpc/sysdev/xics/icp-native.c.  In other words, at this stage\nwe assume that the platform has a XICS interrupt controller and\nwe are using icp-native.c to drive it.  Since the woken thread will\nneed to acknowledge and clear the IPI, we also export the base\nphysical address of the XICS registers using kvmppc_set_xics_phys()\nfor use in the low-level KVM book3s code.\n\nWhen a vcpu is created, it is assigned to a virtual CPU core.\nThe vcore number is obtained by dividing the vcpu number by the\nnumber of threads per core in the host.  This number is exported\nto userspace via the KVM_CAP_PPC_SMT capability.  If qemu wishes\nto run the guest in single-threaded mode, it should make all vcpu\nnumbers be multiples of the number of threads per core.\n\nWe distinguish three states of a vcpu: runnable (i.e., ready to execute\nthe guest), blocked (that is, idle), and busy in host.  We currently\nimplement a policy that the vcore can run only when all its threads\nare runnable or blocked.  This way, if a vcpu needs to execute elsewhere\nin the kernel or in qemu, it can do so without being starved of CPU\nby the other vcpus.\n\nWhen a vcore starts to run, it executes in the context of one of the\nvcpu threads.  The other vcpu threads all go to sleep and stay asleep\nuntil something happens requiring the vcpu thread to return to qemu,\nor to wake up to run the vcore (this can happen when another vcpu\nthread goes from busy in host state to blocked).\n\nIt can happen that a vcpu goes from blocked to runnable state (e.g.\nbecause of an interrupt), and the vcore it belongs to is already\nrunning.  In that case it can start to run immediately as long as\nthe none of the vcpus in the vcore have started to exit the guest.\nWe send the next free thread in the vcore an IPI to get it to start\nto execute the guest.  It synchronizes with the other threads via\nthe vcore-\u003eentry_exit_count field to make sure that it doesn\u0027t go\ninto the guest if the other vcpus are exiting by the time that it\nis ready to actually enter the guest.\n\nNote that there is no fixed relationship between the hardware thread\nnumber and the vcpu number.  Hardware threads are assigned to vcpus\nas they become runnable, so we will always use the lower-numbered\nhardware threads in preference to higher-numbered threads if not all\nthe vcpus in the vcore are runnable, regardless of which vcpus are\nrunnable.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n"
    },
    {
      "commit": "54738c097163c3f01e67ccc85462b78d4d4f495f",
      "tree": "cba8d389d50251856cbe967c16ba2193a30d6d12",
      "parents": [
        "a8606e20e41a8149456bafdf76ad29d47672027c"
      ],
      "author": {
        "name": "David Gibson",
        "email": "dwg@au1.ibm.com",
        "time": "Wed Jun 29 00:22:41 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jul 12 13:16:56 2011 +0300"
      },
      "message": "KVM: PPC: Accelerate H_PUT_TCE by implementing it in real mode\n\nThis improves I/O performance for guests using the PAPR\nparavirtualization interface by making the H_PUT_TCE hcall faster, by\nimplementing it in real mode.  H_PUT_TCE is used for updating virtual\nIOMMU tables, and is used both for virtual I/O and for real I/O in the\nPAPR interface.\n\nSince this moves the IOMMU tables into the kernel, we define a new\nKVM_CREATE_SPAPR_TCE ioctl to allow qemu to create the tables.  The\nioctl returns a file descriptor which can be used to mmap the newly\ncreated table.  The qemu driver models use them in the same way as\nuserspace managed tables, but they can be updated directly by the\nguest with a real-mode H_PUT_TCE implementation, reducing the number\nof host/guest context switches during guest IO.\n\nThere are certain circumstances where it is useful for userland qemu\nto write to the TCE table even if the kernel H_PUT_TCE path is used\nmost of the time.  Specifically, allowing this will avoid awkwardness\nwhen we need to reset the table.  More importantly, we will in the\nfuture need to write the table in order to restore its state after a\ncheckpoint resume or migration.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n"
    },
    {
      "commit": "de56a948b9182fbcf92cb8212f114de096c2d574",
      "tree": "633ab73672aa2543b683686fc8fb023629c5f8f8",
      "parents": [
        "3c42bf8a717cb636e0ed2ed77194669e2ac3ed56"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Jun 29 00:21:34 2011 +0000"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jul 12 13:16:54 2011 +0300"
      },
      "message": "KVM: PPC: Add support for Book3S processors in hypervisor mode\n\nThis adds support for KVM running on 64-bit Book 3S processors,\nspecifically POWER7, in hypervisor mode.  Using hypervisor mode means\nthat the guest can use the processor\u0027s supervisor mode.  That means\nthat the guest can execute privileged instructions and access privileged\nregisters itself without trapping to the host.  This gives excellent\nperformance, but does mean that KVM cannot emulate a processor\narchitecture other than the one that the hardware implements.\n\nThis code assumes that the guest is running paravirtualized using the\nPAPR (Power Architecture Platform Requirements) interface, which is the\ninterface that IBM\u0027s PowerVM hypervisor uses.  That means that existing\nLinux distributions that run on IBM pSeries machines will also run\nunder KVM without modification.  In order to communicate the PAPR\nhypercalls to qemu, this adds a new KVM_EXIT_PAPR_HCALL exit code\nto include/linux/kvm.h.\n\nCurrently the choice between book3s_hv support and book3s_pr support\n(i.e. the existing code, which runs the guest in user mode) has to be\nmade at kernel configuration time, so a given kernel binary can only\ndo one or the other.\n\nThis new book3s_hv code doesn\u0027t support MMIO emulation at present.\nSince we are running paravirtualized guests, this isn\u0027t a serious\nrestriction.\n\nWith the guest running in supervisor mode, most exceptions go straight\nto the guest.  We will never get data or instruction storage or segment\ninterrupts, alignment interrupts, decrementer interrupts, program\ninterrupts, single-step interrupts, etc., coming to the hypervisor from\nthe guest.  Therefore this introduces a new KVMTEST_NONHV macro for the\nexception entry path so that we don\u0027t have to do the KVM test on entry\nto those exception handlers.\n\nWe do however get hypervisor decrementer, hypervisor data storage,\nhypervisor instruction storage, and hypervisor emulation assist\ninterrupts, so we have to handle those.\n\nIn hypervisor mode, real-mode accesses can access all of RAM, not just\na limited amount.  Therefore we put all the guest state in the vcpu.arch\nand use the shadow_vcpu in the PACA only for temporary scratch space.\nWe allocate the vcpu with kzalloc rather than vzalloc, and we don\u0027t use\nanything in the kvmppc_vcpu_book3s struct, so we don\u0027t allocate it.\nWe don\u0027t have a shared page with the guest, but we still need a\nkvm_vcpu_arch_shared struct to store the values of various registers,\nso we include one in the vcpu_arch struct.\n\nThe POWER7 processor has a restriction that all threads in a core have\nto be in the same partition.  MMU-on kernel code counts as a partition\n(partition 0), so we have to do a partition switch on every entry to and\nexit from the guest.  At present we require the host and guest to run\nin single-thread mode because of this hardware restriction.\n\nThis code allocates a hashed page table for the guest and initializes\nit with HPTEs for the guest\u0027s Virtual Real Memory Area (VRMA).  We\nrequire that the guest memory is allocated using 16MB huge pages, in\norder to simplify the low-level memory management.  This also means that\nwe can get away without tracking paging activity in the host for now,\nsince huge pages can\u0027t be paged or swapped.\n\nThis also adds a few new exports needed by the book3s_hv code.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n"
    },
    {
      "commit": "91e3d71db29d9b3b67b64e2a08e724a7ff538b4c",
      "tree": "5bdaf33de54e039faa8892ab4291e6089de03675",
      "parents": [
        "e57d4a356ad3ac46881399c424cc6cf6dd16359d"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Fri Jun 03 08:51:05 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jul 12 13:16:16 2011 +0300"
      },
      "message": "KVM: Clarify KVM_ASSIGN_PCI_DEVICE documentation\n\nNeither host_irq nor the guest_msi struct are used anymore today.\nTag the former, drop the latter to avoid confusion.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "5ce941ee4258b836cf818d2ac159d8cf3ebad648",
      "tree": "082526b38824e8f763944c39a7e0e9390f298882",
      "parents": [
        "eab176722f4628b2d9cf76221a43dd3a0e37e632"
      ],
      "author": {
        "name": "Scott Wood",
        "email": "scottwood@freescale.com",
        "time": "Wed Apr 27 17:24:21 2011 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun May 22 08:47:53 2011 -0400"
      },
      "message": "KVM: PPC: booke: add sregs support\n\nSigned-off-by: Scott Wood \u003cscottwood@freescale.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n"
    },
    {
      "commit": "92a1f12d2598f429bd8639e21d89305e787115c5",
      "tree": "48a6b7d6c50b5583b5163185dd097db100a471c6",
      "parents": [
        "857e40999e35906baa367a79137019912cfb5434"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Mar 25 09:44:51 2011 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed May 11 07:57:06 2011 -0400"
      },
      "message": "KVM: X86: Implement userspace interface to set virtual_tsc_khz\n\nThis patch implements two new vm-ioctls to get and set the\nvirtual_tsc_khz if the machine supports tsc-scaling. Setting\nthe tsc-frequency is only possible before userspace creates\nany vcpu.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "344d9588a9df06182684168be4f1408b55c7da3e",
      "tree": "16890e3f0f10ac767265e650a1d6d38b78780040",
      "parents": [
        "ca3f10172eea9b95bbb66487656f3c3e93855702"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Thu Oct 14 11:22:50 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jan 12 11:23:12 2011 +0200"
      },
      "message": "KVM: Add PV MSR to enable asynchronous page faults delivery.\n\nGuest enables async PF vcpu functionality using this MSR.\n\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "7b4203e8cb5c5d9bc49da62b7a6fa4ba876a1b3f",
      "tree": "b14c7ef749a8ec5c5b11b958a94ad25b19a3e6d4",
      "parents": [
        "17bd158006a33615270f9dba15c62f49bd447435"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Aug 30 13:50:45 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 24 10:52:19 2010 +0200"
      },
      "message": "KVM: PPC: Expose level based interrupt cap\n\nNow that we have all the level interrupt magic in place, let\u0027s\nexpose the capability to user space, so it can make use of it!\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n"
    },
    {
      "commit": "15711e9c927bfc08e66791cbf0ca7887c0880768",
      "tree": "0b44274b4592b298177122178e83927d45919a19",
      "parents": [
        "d7d3c2ea99c4845611997cf728af88c4c232e908"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Thu Jul 29 14:48:08 2010 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 24 10:50:57 2010 +0200"
      },
      "message": "KVM: PPC: Add get_pvinfo interface to query hypercall instructions\n\nWe need to tell the guest the opcodes that make up a hypercall through\ninterfaces that are controlled by userspace. So we need to add a call\nfor userspace to allow it to query those opcodes so it can pass them\non.\n\nThis is required because the hypercall opcodes can change based on\nthe hypervisor conditions. If we\u0027re running in hardware accelerated\nhypervisor mode, a hypercall looks different from when we\u0027re running\nwithout hardware acceleration.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a1f4d39500ad8ed61825eff061debff42386ab5b",
      "tree": "58b72188b1356329e78951773f4be41e66b11d21",
      "parents": [
        "fc34531db3cf8c422f2ff7cf4ef507a3ca672cd2"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jun 21 11:44:20 2010 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:00 2010 +0300"
      },
      "message": "KVM: Remove memory alias support\n\nAs advertised in feature-removal-schedule.txt.  Equivalent support is provided\nby overlapping memory regions.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "2d5b5a665508c60577c1088e0405850a965b6795",
      "tree": "3549325770a39b0c7fd2b7f81aa6fa42295803e2",
      "parents": [
        "69b61833f7ce6e61e196c8a724e4d1278b24ac02"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Sun Jun 13 17:29:39 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:46:37 2010 +0300"
      },
      "message": "KVM: x86: XSAVE/XRSTOR live migration support\n\nThis patch enable save/restore of xsave state.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "ad0a048b096ac819f28667602285453468a8d8f9",
      "tree": "491128ccab48eb277a5cf5919a798b0507da9859",
      "parents": [
        "71fbfd5f38f73515f1516a68fbe04dba198b70f0"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Wed Mar 24 21:48:30 2010 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 17 12:17:10 2010 +0300"
      },
      "message": "KVM: PPC: Add OSI hypercall interface\n\nMOL uses its own hypercall interface to call back into userspace when\nthe guest wants to do something.\n\nSo let\u0027s implement that as an exit reason, specify it with a CAP and\nonly really use it when userspace wants us to.\n\nThe only user of it so far is MOL.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "71fbfd5f38f73515f1516a68fbe04dba198b70f0",
      "tree": "653626126cef565890652f83f4eba7f376642709",
      "parents": [
        "ca7f4203b9b66e12d0d9968ff7dfe781f3a9695a"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Wed Mar 24 21:48:29 2010 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 17 12:17:09 2010 +0300"
      },
      "message": "KVM: Add support for enabling capabilities per-vcpu\n\nSome times we don\u0027t want all capabilities to be available to all\nour vcpus. One example for that is the OSI interface, implemented\nin the next patch.\n\nIn order to have a generic mechanism in how to enable capabilities\nindividually, this patch introduces a new ioctl that can be used\nfor this purpose. That way features we don\u0027t want in all guests or\nuserspace configurations can just not be enabled and we\u0027re good.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "18978768d89f638165646718c50ced19f2a10164",
      "tree": "024cb2b334769c0526fe8bf9cc4e221ddaa8ea34",
      "parents": [
        "3eeafd7da2b0293b512abe95c86843fc4ab42add"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Wed Mar 24 21:48:18 2010 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 17 12:16:51 2010 +0300"
      },
      "message": "KVM: PPC: Allow userspace to unset the IRQ line\n\nUserspace can tell us that it wants to trigger an interrupt. But\nso far it can\u0027t tell us that it wants to stop triggering one.\n\nSo let\u0027s interpret the parameter to the ioctl that we have anyways\nto tell us if we want to raise or lower the interrupt line.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\n\nv2 -\u003e v3:\n\n - Add CAP for unset irq\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a1efbe77c1fd7c34a97a76a61520bf23fb3663f6",
      "tree": "d2e42935b12867d1b0dcd9c78bb06f76c0c71078",
      "parents": [
        "48005f64d0ea965d454e38b5181af4aba9bdef5b"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Mon Feb 15 10:45:43 2010 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Apr 25 12:39:10 2010 +0300"
      },
      "message": "KVM: x86: Add support for saving\u0026restoring debug registers\n\nSo far user space was not able to save and restore debug registers for\nmigration or after reset. Plug this hole.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "48005f64d0ea965d454e38b5181af4aba9bdef5b",
      "tree": "15aa4fe79716e3089893c8e9d48d7e0b898d2693",
      "parents": [
        "03b82a30ea8b26199901b219848d706dbd70c609"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Fri Feb 19 19:38:07 2010 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Apr 25 12:38:28 2010 +0300"
      },
      "message": "KVM: x86: Save\u0026restore interrupt shadow mask\n\nThe interrupt shadow created by STI or MOV-SS-like operations is part of\nthe VCPU state and must be preserved across migration. Transfer it in\nthe spare padding field of kvm_vcpu_events.interrupt.\n\nAs a side effect we now have to make vmx_set_interrupt_shadow robust\nagainst both shadow types being set. Give MOV SS a higher priority and\nskip STI in that case to avoid that VMX throws a fault on next entry.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c10207fe86b1761c3ad135eb922fdb41bbde3025",
      "tree": "ce0ae22580dd0869b6a80a2523cf0d31f4f6fef4",
      "parents": [
        "831317b605e7d7ce0bdadb3b0f50560fc13cecbf"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Fri Feb 19 11:00:45 2010 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Apr 25 12:37:47 2010 +0300"
      },
      "message": "KVM: PPC: Add capability for paired singles\n\nWe need to tell userspace that we can emulate paired single instructions.\nSo let\u0027s add a capability export.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "d2be1651b736002e0c76d7095d6c0ba77b4a897c",
      "tree": "fbbf39d27d894ce9e6d2f57cc252893fc6195065",
      "parents": [
        "c573cd22939e54fc1b8e672054a505048987a7cb"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Tue Feb 23 17:47:57 2010 +0100"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Mar 01 12:36:14 2010 -0300"
      },
      "message": "KVM: x86: Add KVM_CAP_X86_ROBUST_SINGLESTEP\n\nThis marks the guest single-step API improvement of 94fe45da and\n91586a3b with a capability flag to allow reliable detection by user\nspace.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nCc: stable@kernel.org (2.6.33)\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "ab9f4ecbb6d39a18e300a0d10a4968c37404aa76",
      "tree": "1f7fba2feaeca2f6d643437167c7b9036c909c98",
      "parents": [
        "6d3e435e708fa32f99b780caf6c5508a606a513b"
      ],
      "author": {
        "name": "Zhai, Edwin",
        "email": "edwin.zhai@intel.com",
        "time": "Fri Jan 29 14:38:44 2010 +0800"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Mar 01 12:36:06 2010 -0300"
      },
      "message": "KVM: enable PCI multiple-segments for pass-through device\n\nEnable optional parameter (default 0) - PCI segment (or domain) besides\nBDF, when assigning PCI device to guest.\n\nSigned-off-by: Zhai Edwin \u003cedwin.zhai@intel.com\u003e\nAcked-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "c25bc1638a1211f57cccbabdd8b732813b852340",
      "tree": "84ab4bad029c31e7cf121f53d6d19010f4743944",
      "parents": [
        "10388a07164c1512b3a3d0273b9adc230f82790e"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Sun Jan 17 15:51:24 2010 +0200"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Mar 01 12:36:00 2010 -0300"
      },
      "message": "KVM: Implement NotifyLongSpinWait HYPER-V hypercall\n\nWindows issues this hypercall after guest was spinning on a spinlock\nfor too many iterations.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Vadim Rozenfeld \u003cvrozenfe@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "10388a07164c1512b3a3d0273b9adc230f82790e",
      "tree": "1a1a5de7c0c639143fbfa4f2b01bb59bc7135882",
      "parents": [
        "55cd8e5a4edb8e235163ffe8264b9aaa8d7c050f"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Sun Jan 17 15:51:23 2010 +0200"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Mar 01 12:36:00 2010 -0300"
      },
      "message": "KVM: Add HYPER-V apic access MSRs\n\nImplement HYPER-V apic MSRs. Spec defines three MSRs that speed-up\naccess to EOI/TPR/ICR apic registers for PV guests.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Vadim Rozenfeld \u003cvrozenfe@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "55cd8e5a4edb8e235163ffe8264b9aaa8d7c050f",
      "tree": "f7d0091ead058a6c5bc427253b031374b3463b8d",
      "parents": [
        "1d5103c11e32b5028262c073d56375691d51a886"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Sun Jan 17 15:51:22 2010 +0200"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Mar 01 12:35:57 2010 -0300"
      },
      "message": "KVM: Implement bare minimum of HYPER-V MSRs\n\nMinimum HYPER-V implementation should have GUEST_OS_ID, HYPERCALL and\nVP_INDEX MSRs.\n\n[avi: fix build on i386]\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Vadim Rozenfeld \u003cvrozenfe@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "bc6678a33d9b952981a8e44a4f876c3ad64ca4d8",
      "tree": "e26027179eb0d76f234509145a395dd6e5910074",
      "parents": [
        "3ad26d8139a82b0510b1e0435ee82ae461d33401"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Wed Dec 23 14:35:21 2009 -0200"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Mar 01 12:35:44 2010 -0300"
      },
      "message": "KVM: introduce kvm-\u003esrcu and convert kvm_set_memory_region to SRCU update\n\nUse two steps for memslot deletion: mark the slot invalid (which stops\ninstantiation of new shadow pages for that slot, but allows destruction),\nthen instantiate the new empty slot.\n\nAlso simplifies kvm_handle_hva locking.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "bcd6acd51f3d4d1ada201e9bc5c40a31d6d80c71",
      "tree": "2f6dffd2d3e4dd67355a224de7e7a960335a92fd",
      "parents": [
        "11c34c7deaeeebcee342cbc35e1bb2a6711b2431",
        "3ff6a468b45b5dfeb0e903e56f4eb27d34b2437c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Dec 09 17:14:38 2009 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Dec 09 17:14:38 2009 +1100"
      },
      "message": "Merge commit \u0027origin/master\u0027 into next\n\nConflicts:\n\tinclude/linux/kvm.h\n"
    },
    {
      "commit": "e15a113700324f7fdcee95589875daed2b98a2fe",
      "tree": "f2a528fb83219a748c86d0c03efd54c6980165ab",
      "parents": [
        "c0cefebc0b6ae1bc4c92672223a54e1ee96ea7f0"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon Nov 30 03:02:02 2009 +0000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Dec 08 16:02:50 2009 +1100"
      },
      "message": "powerpc/kvm: Sync guest visible MMU state\n\nCurrently userspace has no chance to find out which virtual address space we\u0027re\nin and resolve addresses. While that is a big problem for migration, it\u0027s also\nunpleasent when debugging, as gdb and the monitor don\u0027t work on virtual\naddresses.\n\nThis patch exports enough of the MMU segment state to userspace to make\ndebugging work and thus also includes the groundwork for migration.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "d7b0b5eb3000c6fb902f08c619fcd673a23d8fab",
      "tree": "4c7aa92657435c687f98383aaea5ce15ee9fba9c",
      "parents": [
        "3cfc3092f40bc37c57ba556cfd8de4218f2135ab"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "carsteno@de.ibm.com",
        "time": "Thu Nov 19 14:21:16 2009 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:25 2009 +0200"
      },
      "message": "KVM: s390: Make psw available on all exits, not just a subset\n\nThis patch moves s390 processor status word into the base kvm_run\nstruct and keeps it up-to date on all userspace exits.\n\nThe userspace ABI is broken by this, however there are no applications\nin the wild using this.  A capability check is provided so users can\nverify the updated API exists.\n\nCc: stable@kernel.org\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "3cfc3092f40bc37c57ba556cfd8de4218f2135ab",
      "tree": "562d61febfe7d3c99ea08e376b3f3c016cff613c",
      "parents": [
        "65ac7264043740572ba804edca03c374d70427c9"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Thu Nov 12 01:04:25 2009 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:25 2009 +0200"
      },
      "message": "KVM: x86: Add KVM_GET/SET_VCPU_EVENTS\n\nThis new IOCTL exports all yet user-invisible states related to\nexceptions, interrupts, and NMIs. Together with appropriate user space\nchanges, this fixes sporadic problems of vmsave/restore, live migration\nand system reset.\n\n[avi: future-proof abi by adding a flags field]\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "65ac7264043740572ba804edca03c374d70427c9",
      "tree": "9adc0414526ed289a7f9d6ff7c2ae4e968113cd8",
      "parents": [
        "a9c7399d6cda0a092b347f8ee49bbe44f6e1fe66"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Nov 04 11:59:01 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:24 2009 +0200"
      },
      "message": "KVM: VMX: Report unexpected simultaneous exceptions as internal errors\n\nThese happen when we trap an exception when another exception is being\ndelivered; we only expect these with MCEs and page faults.  If something\nunexpected happens, things probably went south and we\u0027re better off reporting\nan internal error and freezing.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "a9c7399d6cda0a092b347f8ee49bbe44f6e1fe66",
      "tree": "a00b781aa1521efc387ae9b59875862cb37c1d3f",
      "parents": [
        "c54d2aba27f0c505d61700d656c5943e96982e60"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Nov 04 11:54:59 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:24 2009 +0200"
      },
      "message": "KVM: Allow internal errors reported to userspace to carry extra data\n\nUsually userspace will freeze the guest so we can inspect it, but some\ninternal state is not available.  Add extra data to internal error\nreporting so we can expose it to the debugger.  Extra data is specific\nto the suberror.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c54d2aba27f0c505d61700d656c5943e96982e60",
      "tree": "cbf5fff26e2a061f9ec8b2bb2e98aa9279e82f29",
      "parents": [
        "4f926bf291863c237188bd2e27222ed801f12094"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Mon Nov 02 17:20:28 2009 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:24 2009 +0200"
      },
      "message": "KVM: Reorder IOCTLs in main kvm.h\n\nObviously, people tend to extend this header at the bottom - more or\nless blindly. Ensure that deprecated stuff gets its own corner again by\nmoving things to the top. Also add some comments and reindent IOCTLs to\nmake them more readable and reduce the risk of number collisions.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "afbcf7ab8d1bc8c2d04792f6d9e786e0adeb328d",
      "tree": "14320a1c768562139a550fd0c576d6d52829d9ec",
      "parents": [
        "cd5a2685de4a642fd0bd763e8c19711ef08dbe27"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@redhat.com",
        "time": "Fri Oct 16 15:28:36 2009 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:19 2009 +0200"
      },
      "message": "KVM: allow userspace to adjust kvmclock offset\n\nWhen we migrate a kvm guest that uses pvclock between two hosts, we may\nsuffer a large skew. This is because there can be significant differences\nbetween the monotonic clock of the hosts involved. When a new host with\na much larger monotonic time starts running the guest, the view of time\nwill be significantly impacted.\n\nSituation is much worse when we do the opposite, and migrate to a host with\na smaller monotonic clock.\n\nThis proposed ioctl will allow userspace to inform us what is the monotonic\nclock value in the source host, so we can keep the time skew short, and\nmore importantly, never goes backwards. Userspace may also need to trigger\nthe current data, since from the first migration onwards, it won\u0027t be\nreflected by a simple call to clock_gettime() anymore.\n\n[marcelo: future-proof abi with a flags field]\n[jan: fix KVM_GET_CLOCK by clearing flags field instead of checking it]\n\nSigned-off-by: Glauber Costa \u003cglommer@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "ffde22ac53b6d6b1d7206f1172176a667eead778",
      "tree": "16ab77d364ba26928136e6d18463845941b6dd2c",
      "parents": [
        "94c30d9ca6fd00a69e367b91b6e13572c41938c5"
      ],
      "author": {
        "name": "Ed Swierk",
        "email": "eswierk@aristanetworks.com",
        "time": "Thu Oct 15 15:21:43 2009 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Dec 03 09:32:18 2009 +0200"
      },
      "message": "KVM: Xen PV-on-HVM guest support\n\nSupport for Xen PV-on-HVM guests can be implemented almost entirely in\nuserspace, except for handling one annoying MSR that maps a Xen\nhypercall blob into guest address space.\n\nA generic mechanism to delegate MSR writes to userspace seems overkill\nand risks encouraging similar MSR abuse in the future.  Thus this patch\nadds special support for the Xen HVM MSR.\n\nI implemented a new ioctl, KVM_XEN_HVM_CONFIG, that lets userspace tell\nKVM which MSR the guest will write to, as well as the starting address\nand size of the hypercall blobs (one each for 32-bit and 64-bit) that\nuserspace has loaded from files.  When the guest writes to the MSR, KVM\ncopies one page of the blob from userspace to the guest.\n\nI\u0027ve tested this patch with a hacked-up version of Gerd\u0027s userspace\ncode, booting a number of guests (CentOS 5.3 i386 and x86_64, and\nFreeBSD 8.0-RC1 amd64) and exercising PV network and block devices.\n\n[jan: fix i386 build warning]\n[avi: future proof abi with a flags field]\n\nSigned-off-by: Ed Swierk \u003ceswierk@aristanetworks.com\u003e\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "b927a3cec081a605142f5b7e90b730611bee28b1",
      "tree": "ed7609e83e89c0830d568aa8304200cdb0c58736",
      "parents": [
        "b792c344dfd57ee2cf737440e4a9b4a5bc39d1db"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Jul 21 10:42:48 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:33:16 2009 +0300"
      },
      "message": "KVM: VMX: Introduce KVM_SET_IDENTITY_MAP_ADDR ioctl\n\nNow KVM allow guest to modify guest\u0027s physical address of EPT\u0027s identity mapping page.\n\n(change from v1, discard unnecessary check, change ioctl to accept parameter\naddress rather than value)\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "d34e6b175e61821026893ec5298cc8e7558df43a",
      "tree": "8f2934bb0df05d18372509f9ac59aecee5884997",
      "parents": [
        "090b7aff27120cdae76a346a70db394844fea598"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Tue Jul 07 17:08:49 2009 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:33:12 2009 +0300"
      },
      "message": "KVM: add ioeventfd support\n\nioeventfd is a mechanism to register PIO/MMIO regions to trigger an eventfd\nsignal when written to by a guest.  Host userspace can register any\narbitrary IO address with a corresponding eventfd and then pass the eventfd\nto a specific end-point of interest for handling.\n\nNormal IO requires a blocking round-trip since the operation may cause\nside-effects in the emulated model or may return data to the caller.\nTherefore, an IO in KVM traps from the guest to the host, causes a VMX/SVM\n\"heavy-weight\" exit back to userspace, and is ultimately serviced by qemu\u0027s\ndevice model synchronously before returning control back to the vcpu.\n\nHowever, there is a subclass of IO which acts purely as a trigger for\nother IO (such as to kick off an out-of-band DMA request, etc).  For these\npatterns, the synchronous call is particularly expensive since we really\nonly want to simply get our notification transmitted asychronously and\nreturn as quickly as possible.  All the sychronous infrastructure to ensure\nproper data-dependencies are met in the normal IO case are just unecessary\noverhead for signalling.  This adds additional computational load on the\nsystem, as well as latency to the signalling path.\n\nTherefore, we provide a mechanism for registration of an in-kernel trigger\npoint that allows the VCPU to only require a very brief, lightweight\nexit just long enough to signal an eventfd.  This also means that any\nclients compatible with the eventfd interface (which includes userspace\nand kernelspace equally well) can now register to be notified. The end\nresult should be a more flexible and higher performance notification API\nfor the backend KVM hypervisor and perhipheral components.\n\nTo test this theory, we built a test-harness called \"doorbell\".  This\nmodule has a function called \"doorbell_ring()\" which simply increments a\ncounter for each time the doorbell is signaled.  It supports signalling\nfrom either an eventfd, or an ioctl().\n\nWe then wired up two paths to the doorbell: One via QEMU via a registered\nio region and through the doorbell ioctl().  The other is direct via\nioeventfd.\n\nYou can download this test harness here:\n\nftp://ftp.novell.com/dev/ghaskins/doorbell.tar.bz2\n\nThe measured results are as follows:\n\nqemu-mmio:       110000 iops, 9.09us rtt\nioeventfd-mmio: 200100 iops, 5.00us rtt\nioeventfd-pio:  367300 iops, 2.72us rtt\n\nI didn\u0027t measure qemu-pio, because I have to figure out how to register a\nPIO region with qemu\u0027s device model, and I got lazy.  However, for now we\ncan extrapolate based on the data from the NULLIO runs of +2.56us for MMIO,\nand -350ns for HC, we get:\n\nqemu-pio:      153139 iops, 6.53us rtt\nioeventfd-hc: 412585 iops, 2.37us rtt\n\nthese are just for fun, for now, until I can gather more data.\n\nHere is a graph for your convenience:\n\nhttp://developer.novell.com/wiki/images/7/76/Iofd-chart.png\n\nThe conclusion to draw is that we save about 4us by skipping the userspace\nhop.\n\n--------------------\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e9f4275732add046fed4a548b8dbb98dbe500d2f",
      "tree": "8d9e22bbc6a9557f95712aaa98534d5983034252",
      "parents": [
        "0d1de2d901f4ba0972a3886496a44fb1d3300dbd"
      ],
      "author": {
        "name": "Beth Kon",
        "email": "eak@us.ibm.com",
        "time": "Tue Jul 07 11:50:38 2009 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:33:12 2009 +0300"
      },
      "message": "KVM: PIT support for HPET legacy mode\n\nWhen kvm is in hpet_legacy_mode, the hpet is providing the timer\ninterrupt and the pit should not be. So in legacy mode, the pit timer\nis destroyed, but the *state* of the pit is maintained. So if kvm or\nthe guest tries to modify the state of the pit, this modification is\naccepted, *except* that the timer isn\u0027t actually started. When we exit\nhpet_legacy_mode, the current state of the pit (which is up to date\nsince we\u0027ve been accepting modifications) is used to restart the pit\ntimer.\n\nThe saved_mode code in kvm_pit_load_count temporarily changes mode to\n0xff in order to destroy the timer, but then restores the actual\nvalue, again maintaining \"current\" state of the pit for possible later\nreenablement.\n\n[avi: add some reserved storage in the ioctl; make SET_PIT2 IOW]\n[marcelo: fix memory corruption due to reserved storage]\n\nSigned-off-by: Beth Kon \u003ceak@us.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "2023a29cbe34139afcea8f65f8aef78c325c5dc0",
      "tree": "142223b88f59710a366321a1b47b54b33ba8e19c",
      "parents": [
        "46f43c6ee022c3aeb9686b104234b9f27fac03c2"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Thu Jun 18 11:47:28 2009 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:33:03 2009 +0300"
      },
      "message": "KVM: remove old KVMTRACE support code\n\nReturn EOPNOTSUPP for KVM_TRACE_ENABLE/PAUSE/DISABLE ioctls.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "3f5d18a96577fd78277e08c467041573b9a65eaf",
      "tree": "5c9e15a3b48d188729bb77283cf353fd42903155",
      "parents": [
        "988a2cae6a3c0dea6df59808a935a9a697bfc28c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Jun 11 15:43:28 2009 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:52 2009 +0300"
      },
      "message": "KVM: Return to userspace on emulation failure\n\nInstead of mindlessly retrying to execute the instruction, report the\nfailure to userspace.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "73880c80aa9c8dc353cd0ad26579023213cd5314",
      "tree": "d5bee5c87c3468feb941cc898e342f52c0adce19",
      "parents": [
        "1ed0ce000a6c20c36ec649e32fc24393ef418ed8"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Jun 09 15:56:28 2009 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:52 2009 +0300"
      },
      "message": "KVM: Break dependency between vcpu index in vcpus array and vcpu_id.\n\nArchs are free to use vcpu_id as they see fit. For x86 it is used as\nvcpu\u0027s apic id. New ioctl is added to configure boot vcpu id that was\nassumed to be 0 till now.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "6a4a98397331723dce25a7537270548d91523431",
      "tree": "36aedb4d6a2724fff0d838eec812f2233b6a3381",
      "parents": [
        "3a624e29c7587b79abab60e279f9d1a62a3d4716"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jun 09 11:33:36 2009 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:50 2009 +0300"
      },
      "message": "KVM: Reorder ioctls in kvm.h\n\nSomehow the VM ioctls got unsorted; resort.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e7333391403b31feb27a05bc0dcd052a471f1276",
      "tree": "91e4966938853cc97a1d686f9e1643e96ee56ff3",
      "parents": [
        "628eb9b8a8f3ef31d8316112a4596b1a21b38159"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Thu May 21 13:50:13 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:43 2009 +0300"
      },
      "message": "KVM: Downsize max support MSI-X entry to 256\n\nWe only trap one page for MSI-X entry now, so it\u0027s 4k/(128/8) \u003d 256 entries at\nmost.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c5ff41ce66382d657a76bc06ba252d848826950f",
      "tree": "4b7bc3674faa6259b1e6b07fc616b17dcf281d98",
      "parents": [
        "721eecbf4fe995ca94a9edec0c9843b1cc0eaaf3"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Thu May 14 22:42:53 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:41 2009 +0300"
      },
      "message": "KVM: Allow PIT emulation without speaker port\n\nThe in-kernel speaker emulation is only a dummy and also unneeded from\nthe performance point of view. Rather, it takes user space support to\ngenerate sound output on the host, e.g. console beeps.\n\nTo allow this, introduce KVM_CREATE_PIT2 which controls in-kernel\nspeaker port emulation via a flag passed along the new IOCTL. It also\nleaves room for future extensions of the PIT configuration interface.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "721eecbf4fe995ca94a9edec0c9843b1cc0eaaf3",
      "tree": "c759fe98a4ea5e2e2a7694e4b44a558407077290",
      "parents": [
        "0ba12d10817a8db1fd7d96d3283ec6c0b294aeab"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed May 20 10:30:49 2009 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:41 2009 +0300"
      },
      "message": "KVM: irqfd\n\nKVM provides a complete virtual system environment for guests, including\nsupport for injecting interrupts modeled after the real exception/interrupt\nfacilities present on the native platform (such as the IDT on x86).\nVirtual interrupts can come from a variety of sources (emulated devices,\npass-through devices, etc) but all must be injected to the guest via\nthe KVM infrastructure.  This patch adds a new mechanism to inject a specific\ninterrupt to a guest using a decoupled eventfd mechnanism:  Any legal signal\non the irqfd (using eventfd semantics from either userspace or kernel) will\ntranslate into an injected interrupt in the guest at the next available\ninterrupt window.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "890ca9aefa78f7831f8f633cab9e4803636dffe4",
      "tree": "1a66ca576b6b0c396de79214e2262dc218ec5d56",
      "parents": [
        "af24a4e4aec77ef16c1971cf4465f767ba946034"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon May 11 16:48:15 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Thu Sep 10 08:32:39 2009 +0300"
      },
      "message": "KVM: Add MCE support\n\nThe related MSRs are emulated. MCE capability is exported via\nextension KVM_CAP_MCE and ioctl KVM_X86_GET_MCE_CAP_SUPPORTED.  A new\nvcpu ioctl command KVM_X86_SETUP_MCE is used to setup MCE emulation\nsuch as the mcg_cap. MCE is injected via vcpu ioctl command\nKVM_X86_SET_MCE. Extended machine-check state (MCG_EXT_P) and CMCI are\nnot implemented.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "2f8b9ee14eb439008e0c5131116ea6baa40dba50",
      "tree": "7c269a25ba379aef925c8cc462232c116f297a37",
      "parents": [
        "ede2ccc51742059d356d419260460cbbf3e36273"
      ],
      "author": {
        "name": "nathan binkert",
        "email": "nate@binkert.org",
        "time": "Fri Mar 27 21:53:05 2009 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:39 2009 +0300"
      },
      "message": "KVM: Make kvm header C++ friendly\n\nTwo things needed fixing: 1) g++ does not allow a named structure type\nwithin an anonymous union and 2) Avoid name clash between two padding\nfields within the same struct by giving them different names as is\ndone elsewhere in the header.\n\nSigned-off-by: Nathan Binkert \u003cnate@binkert.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e56d532f20c890a06bbe7cd479f4201e3a03cd73",
      "tree": "6c8b1a019a77bf2081ac7482eea322f5b0a636e8",
      "parents": [
        "386eb6e8b3caface8a0514da70a47c05cabb5b96"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Thu Mar 12 21:45:39 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:29 2009 +0300"
      },
      "message": "KVM: Device assignment framework rework\n\nAfter discussion with Marcelo, we decided to rework device assignment framework\ntogether. The old problems are kernel logic is unnecessary complex. So Marcelo\nsuggest to split it into a more elegant way:\n\n1. Split host IRQ assign and guest IRQ assign. And userspace determine the\ncombination. Also discard msi2intx parameter, userspace can specific\nKVM_DEV_IRQ_HOST_MSI | KVM_DEV_IRQ_GUEST_INTX in assigned_irq-\u003eflags to\nenable MSI to INTx convertion.\n\n2. Split assign IRQ and deassign IRQ. Import two new ioctls:\nKVM_ASSIGN_DEV_IRQ and KVM_DEASSIGN_DEV_IRQ.\n\nThis patch also fixed the reversed _IOR vs _IOW in definition(by deprecated the\nold interface).\n\n[avi: replace homemade bitcount() by hweight_long()]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "d510d6cc653bc4b3094ea73afe12600d0ab445b3",
      "tree": "60ea170465dcddcd5cdd7c29a29df3f28407c202",
      "parents": [
        "2350bd1f62c8706c22b8e58c3bfff10806c0a31b"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Wed Feb 25 17:22:28 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:23 2009 +0300"
      },
      "message": "KVM: Enable MSI-X for KVM assigned device\n\nThis patch finally enable MSI-X.\n\nWhat we need for MSI-X:\n1. Intercept one page in MMIO region of device. So that we can get guest desired\nMSI-X table and set up the real one. Now this have been done by guest, and\ntransfer to kernel using ioctl KVM_SET_MSIX_NR and KVM_SET_MSIX_ENTRY.\n\n2. Information for incoming interrupt. Now one device can have more than one\ninterrupt, and they are all handled by one workqueue structure. So we need to\nidentify them. The previous patch enable gsi_msg_pending_bitmap get this done.\n\n3. Mapping from host IRQ to guest gsi as well as guest gsi to real MSI/MSI-X\nmessage address/data. We used same entry number for the host and guest here, so\nthat it\u0027s easy to find the correlated guest gsi.\n\nWhat we lack for now:\n1. The PCI spec said nothing can existed with MSI-X table in the same page of\nMMIO region, except pending bits. The patch ignore pending bits as the first\nstep (so they are always 0 - no pending).\n\n2. The PCI spec allowed to change MSI-X table dynamically. That means, the OS\ncan enable MSI-X, then mask one MSI-X entry, modify it, and unmask it. The patch\ndidn\u0027t support this, and Linux also don\u0027t work in this way.\n\n3. The patch didn\u0027t implement MSI-X mask all and mask single entry. I would\nimplement the former in driver/pci/msi.c later. And for single entry, userspace\nshould have reposibility to handle it.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c1e01514296e8a4a43ff0c88dcff635cb90feb5f",
      "tree": "299a54da71c4900fc3b71840e2c6eec98b35f8b4",
      "parents": [
        "bfd349d073b2838a6a031f057d25e266619b7093"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Wed Feb 25 17:22:26 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:23 2009 +0300"
      },
      "message": "KVM: Ioctls for init MSI-X entry\n\nIntroduce KVM_SET_MSIX_NR and KVM_SET_MSIX_ENTRY two ioctls.\n\nThis two ioctls are used by userspace to specific guest device MSI-X entry\nnumber and correlate MSI-X entry with GSI during the initialization stage.\n\nMSI-X should be well initialzed before enabling.\n\nDon\u0027t support change MSI-X entry number for now.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4cd481f68dde99ac416003b825c835f71e364393",
      "tree": "ee30cd2e24534285cdb2b4315e7d441c9689ea99",
      "parents": [
        "bf47a760f66add7870fba33ab50f58b550d6bbd1"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Mon Apr 13 11:59:32 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Apr 22 13:52:09 2009 +0300"
      },
      "message": "KVM: Fix overlapping check for memory slots\n\nWhen checking for overlapping slots on registration of a new one, kvm\ncurrently also considers zero-length (ie. deleted) slots and rejects\nrequests incorrectly. This finally denies user space from joining slots.\nFix the check by skipping deleted slots and advertise this via a\nKVM_CAP_JOIN_MEMORY_REGIONS_WORKS.\n\nCc: stable@kernel.org\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "bc7a8660df62da3fb5cad025322eda75fbee8731",
      "tree": "fd65bc4aa3046b3dffc843389be52869576aa99b",
      "parents": [
        "046a48b35baa7c66d0d0331256ba12ca51665411"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Mar 17 19:27:19 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:15 2009 +0200"
      },
      "message": "KVM: Correct deassign device ioctl to IOW\n\nIt\u0027s IOR by mistake, so fix it before release.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "2df8a40bccf5999261d0d3a82eac5a77678e61bd",
      "tree": "dee31e8e129b9ef90ae57e93e83ce76e6f44015b",
      "parents": [
        "b0a1835d53c57bc38b36867c04436b60454cb610"
      ],
      "author": {
        "name": "Weidong Han",
        "email": "weidong.han@intel.com",
        "time": "Fri Feb 13 10:50:56 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:12 2009 +0200"
      },
      "message": "KVM: define KVM_CAP_DEVICE_DEASSIGNMENT\n\ndefine KVM_CAP_DEVICE_DEASSIGNMENT and KVM_DEASSIGN_PCI_DEVICE\nfor device deassignment.\n\nthe ioctl has been already implemented in the\ncommit: 0a920356748df4fb06e86c21c23d2ed6d31d37ad\n\nAcked-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nSigned-off-by: Weidong Han \u003cweidong.han@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "4925663a079c77d95d8685228ad6675fc5639c8e",
      "tree": "52e93df78b23a44ed21d015f835688f673dd351a",
      "parents": [
        "452425dbaa1974e9fc489e64a8de46a47b4c2754"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Wed Feb 04 17:28:14 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:11 2009 +0200"
      },
      "message": "KVM: Report IRQ injection status to userspace.\n\nIRQ injection status is either -1 (if there was no CPU found\nthat should except the interrupt because IRQ was masked or\nioapic was misconfigured or ...) or \u003e\u003d 0 in that case the\nnumber indicates to how many CPUs interrupt was injected.\nIf the value is 0 it means that the interrupt was coalesced\nand probably should be reinjected.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "79950e1073150909619b7c0f9a39a2fea83a42d8",
      "tree": "5dc96ee5d69029d61b90bc18d44cb42baaa925cd",
      "parents": [
        "34c33d163fe509da8414a736c6328855f8c164e5"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Feb 10 13:57:06 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:09 2009 +0200"
      },
      "message": "KVM: Use irq routing API for MSI\n\nMerge MSI userspace interface with IRQ routing table. Notice the API have been\nchanged, and using IRQ routing table would be the only interface kvm-userspace\nsupported.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "91b2ae773d3b168b763237fac33f75b13d891f20",
      "tree": "739ec0a4debd058277493707c8ebf6226dbe41a3",
      "parents": [
        "399ec807ddc38ecccf8c06dbde04531cbdc63e11"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jan 19 14:57:52 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:06 2009 +0200"
      },
      "message": "KVM: Avoid using CONFIG_ in userspace visible headers\n\nKconfig symbols are not available in userspace, and are not stripped by\nheaders-install.  Avoid their use by adding #defines in \u003casm/kvm.h\u003e to\nsuit each architecture.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "399ec807ddc38ecccf8c06dbde04531cbdc63e11",
      "tree": "75a4e3ee9cfffb4ecf7b4608bb592c89f2b62219",
      "parents": [
        "193554750441d91e127dd5066b8aebe0f769101c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Nov 19 13:58:46 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:06 2009 +0200"
      },
      "message": "KVM: Userspace controlled irq routing\n\nCurrently KVM has a static routing from GSI numbers to interrupts (namely,\n0-15 are mapped 1:1 to both PIC and IOAPIC, and 16:23 are mapped 1:1 to\nthe IOAPIC).  This is insufficient for several reasons:\n\n- HPET requires non 1:1 mapping for the timer interrupt\n- MSIs need a new method to assign interrupt numbers and dispatch them\n- ACPI APIC mode needs to be able to reassign the PCI LINK interrupts to the\n  ioapics\n\nThis patch implements an interrupt routing table (as a linked list, but this\ncan be easily changed) and a userspace interface to replace the table.  The\nrouting table is initialized according to the current hardwired mapping.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "17071fe74fe0fbfdb03cd9b82f2490447cf1f986",
      "tree": "1090267522ecf64960c0745ccf6dca32927e481d",
      "parents": [
        "67346440e83d2a2f2e9801f370b6240317c7d9bd"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Tue Jan 06 16:25:11 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:03:02 2009 +0200"
      },
      "message": "KVM: Add support to disable MSI for assigned device\n\nMSI is always enabled by default for msi2intx\u003d1. But if msi2intx\u003d0, we\nhave to disable MSI if guest require to do so.\n\nThe patch also discard unnecessary msi2intx judgment if guest want to update\nMSI state.\n\nNotice KVM_DEV_IRQ_ASSIGN_MSI_ACTION is a mask which should cover all MSI\nrelated operations, though we only got one for now.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "52d939a0bf44081bc9f69b4fbdc9e7f416df27c7",
      "tree": "27a14385847f5585cdccaf5e5c18074595642970",
      "parents": [
        "61a6bd672bda3b9468bf5895c1be085c4e481138"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Tue Dec 30 15:55:06 2008 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:02:55 2009 +0200"
      },
      "message": "KVM: PIT: provide an option to disable interrupt reinjection\n\nCertain clocks (such as TSC) in older 2.6 guests overaccount for lost\nticks, causing severe time drift. Interrupt reinjection magnifies the\nproblem.\n\nProvide an option to disable it.\n\n[avi: allow room for expansion in case we want to disable reinjection\n      of other timers]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "971cc3dcbc0e020b82f568e61a47b72be03307dd",
      "tree": "f21c0865fd26ea820a88fe7bb7fea59840ada7e1",
      "parents": [
        "2b3d2a206037b1471de6a6dc51427af034cfdb47"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Fri Dec 19 18:13:54 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:02:52 2009 +0200"
      },
      "message": "KVM: Advertise guest debug capability per-arch\n\nLimit KVM_CAP_SET_GUEST_DEBUG only to those archs (currently x86) that\nsupport it. This simplifies user space stub implementations.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e9a999fe1feaddb71bffbacbbd68e0da8ca8b50b",
      "tree": "57e8758433e31f8d70251aff9ce32fdd30ad8c18",
      "parents": [
        "ae675ef01cd86014acf8da5dee87876b71122495"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Thu Dec 18 12:17:51 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:02:50 2009 +0200"
      },
      "message": "KVM: ia64: stack get/restore patch\n\nImplement KVM_IA64_VCPU_[GS]ET_STACK ioctl calls. This is required\nfor live migrations.\n\nPatch is based on previous implementation that was part of old\nGET/SET_REGS ioctl calls.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "d0bfb940ecabf0b44fb1fd80d8d60594e569e5ec",
      "tree": "b5927d44937a54ec23d2a28d59db06a0262c0412",
      "parents": [
        "8ab2d2e231062814bd89bba2d6d92563190aa2bb"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Mon Dec 15 13:52:10 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 24 11:02:49 2009 +0200"
      },
      "message": "KVM: New guest debug interface\n\nThis rips out the support for KVM_DEBUG_GUEST and introduces a new IOCTL\ninstead: KVM_SET_GUEST_DEBUG. The IOCTL payload consists of a generic\npart, controlling the \"main switch\" and the single-step feature. The\narch specific part adds an x86 interface for intercepting both types of\ndebug exceptions separately and re-injecting them when the host was not\ninterested. Moveover, the foundation for guest debugging via debug\nregisters is layed.\n\nTo signal breakpoint events properly back to userland, an arch-specific\ndata block is now returned along KVM_EXIT_DEBUG. For x86, the arch block\ncontains the PC, the debug exception, and relevant debug registers to\ntell debug events properly apart.\n\nThe availability of this new interface is signaled by\nKVM_CAP_SET_GUEST_DEBUG. Empty stubs for not yet supported archs are\nprovided.\n\nNote that both SVM and VTX are supported, but only the latter was tested\nyet. Based on the experience with all those VTX corner case, I would be\nfairly surprised if SVM will work out of the box.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7a0eb1960e8ddcb68ea631caf16815485af0e228",
      "tree": "0614c3c2265ed02072a082dea68a86e31f71dd7f",
      "parents": [
        "d39123a486524fed9b4e43e08a8757fd90a5859a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jan 19 14:57:52 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Feb 15 02:47:35 2009 +0200"
      },
      "message": "KVM: Avoid using CONFIG_ in userspace visible headers\n\nKconfig symbols are not available in userspace, and are not stripped by\nheaders-install.  Avoid their use by adding #defines in \u003casm/kvm.h\u003e to\nsuit each architecture.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "00bfddaf7f68a6551319b536f052040c370756b0",
      "tree": "353061720b9558708ae513fd71673a4c50bc1c3f",
      "parents": [
        "068b38c1fa7a9210608f27ac521897ccc5f9b726"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@infradead.org",
        "time": "Thu Jan 15 13:51:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:41 2009 -0800"
      },
      "message": "include of \u003clinux/types.h\u003e is preferred over \u003casm/types.h\u003e\n\nImpact: fix 15 make headers_check warnings:\n\ninclude of \u003clinux/types.h\u003e is preferred over \u003casm/types.h\u003e\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4531220b71f0399e71cda0c4cf749e7281a7416a",
      "tree": "2d0b71b97a15bdd6ede42d05b7b9b791c3891eb3",
      "parents": [
        "264ff01d55b456932cef03082448b41d2edeb6a1"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Thu Dec 11 16:54:54 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:55:47 2008 +0200"
      },
      "message": "KVM: x86: Rework user space NMI injection as KVM_CAP_USER_NMI\n\nThere is no point in doing the ready_for_nmi_injection/\nrequest_nmi_window dance with user space. First, we don\u0027t do this for\nin-kernel irqchip anyway, while the code path is the same as for user\nspace irqchip mode. And second, there is nothing to loose if a pending\nNMI is overwritten by another one (in contrast to IRQs where we have to\nsave the number). Actually, there is even the risk of raising spurious\nNMIs this way because the reason for the held-back NMI might already be\nhandled while processing the first one.\n\nTherefore this patch creates a simplified user space NMI injection\ninterface, exporting it under KVM_CAP_USER_NMI and dropping the old\nKVM_CAP_NMI capability. And this time we also take care to provide the\ninterface only on archs supporting NMIs via KVM (right now only x86).\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "1a811b6167089bcdb84284f2dc9fd0b4d0f1899d",
      "tree": "6a5d9fbf78475dd7fe2f0b85aa98dd8b82b660d8",
      "parents": [
        "7f59f492da722eb3551bbe1f8f4450a21896f05d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Dec 08 18:25:27 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:55:46 2008 +0200"
      },
      "message": "KVM: Advertise the bug in memory region destruction as fixed\n\nUserspace might need to act differently.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "6b9cc7fd469869bed38831c5adac3f59dc25eaf5",
      "tree": "63d526ff94b891116c37bf9705e42a45479271f0",
      "parents": [
        "f64769eb05565c74d7fce6fa75d65924f9cdaf79"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Mon Nov 24 14:32:56 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:55:02 2008 +0200"
      },
      "message": "KVM: Enable MSI for device assignment\n\nWe enable guest MSI and host MSI support in this patch. The userspace want to\nenable MSI should set KVM_DEV_IRQ_ASSIGN_ENABLE_MSI in the assigned_irq\u0027s flag.\nFunction would return -ENOTTY if can\u0027t enable MSI, userspace shouldn\u0027t set MSI\nEnable bit when KVM_ASSIGN_IRQ return -ENOTTY with\nKVM_DEV_IRQ_ASSIGN_ENABLE_MSI.\n\nUserspace can tell the support of MSI device from #ifdef KVM_CAP_DEVICE_MSI.\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "0937c48d075ddd59ae2c12a6fa8308b9c7a63753",
      "tree": "36195da5274891f8e417f907be6cca53f8e1dda0",
      "parents": [
        "fbac7818d8fba7e1df9f4b209777f3b67b953dd3"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Mon Nov 24 14:32:53 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:55:01 2008 +0200"
      },
      "message": "KVM: Add fields for MSI device assignment\n\nPrepared for kvm_arch_assigned_device_msi_dispatch().\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c4abb7c9cde24b7351a47328ef866e6a2bbb1ad0",
      "tree": "85cef82232898397e645e53334655712af54085f",
      "parents": [
        "26df99c6c5807115f06d4e1abae397b7f5f3e00c"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Fri Sep 26 09:30:55 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Dec 31 16:51:42 2008 +0200"
      },
      "message": "KVM: x86: Support for user space injected NMIs\n\nIntroduces the KVM_NMI IOCTL to the generic x86 part of KVM for\ninjecting NMIs from user space and also extends the statistic report\naccordingly.\n\nBased on the original patch by Sheng Yang.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "bb45e202e695dea8657bb03a01d1522c37558672",
      "tree": "529c3ca4e9947d1dc536f53d68d2eb743b4a53a9",
      "parents": [
        "decc90162a99b4e51c534ab63f9b6fc5cb0f2596"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 19 16:39:45 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Oct 28 14:22:15 2008 +0200"
      },
      "message": "KVM: Future-proof device assignment ABI\n\nReserve some space so we can add more data.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2381ad241d0bea1253a37f314b270848067640bb",
      "tree": "f722e3da63c8f26ef7309653848ab7cea02e08cb",
      "parents": [
        "b010eb5103cfbe12ae6f08a4cdb3a748bf78c410"
      ],
      "author": {
        "name": "Xiantao Zhang",
        "email": "xiantao.zhang@intel.com",
        "time": "Wed Oct 08 08:29:33 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:39 2008 +0200"
      },
      "message": "KVM: ia64: Add intel iommu support for guests.\n\nWith intel iommu hardware, we can assign devices to kvm/ia64 guests.\n\nSigned-off-by: Xiantao Zhang \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8a98f6648a2b0756d8f26d6c13332f5526355fec",
      "tree": "8df03d146d22082644df8078747e332f9b2aff1f",
      "parents": [
        "371c01b28e4049d1fbf60a9631cdad98f7cae030"
      ],
      "author": {
        "name": "Xiantao Zhang",
        "email": "xiantao.zhang@intel.com",
        "time": "Mon Oct 06 13:47:38 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:33 2008 +0200"
      },
      "message": "KVM: Move device assignment logic to common code\n\nTo share with other archs, this patch moves device assignment\nlogic to common parts.\n\nSigned-off-by: Xiantao Zhang \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "62c476c7c7f25a5b245b9902a935636e6316e58c",
      "tree": "6584591c7c345fcbb3c6d437203dc7f4a628573a",
      "parents": [
        "387179464257921eb9aa3d15cc3ff194f6945a7c"
      ],
      "author": {
        "name": "Ben-Ami Yassour",
        "email": "benami@il.ibm.com",
        "time": "Sun Sep 14 03:48:28 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Oct 15 14:25:04 2008 +0200"
      },
      "message": "KVM: Device Assignment with VT-d\n\nBased on a patch by: Kay, Allen M \u003callen.m.kay@intel.com\u003e\n\nThis patch enables PCI device assignment based on VT-d support.\nWhen a device is assigned to the guest, the guest memory is pinned and\nthe mapping is updated in the VT-d IOMMU.\n\n[Amit: Expose KVM_CAP_IOMMU so we can check if an IOMMU is present\nand also control enable/disable from userspace]\n\nSigned-off-by: Kay, Allen M \u003callen.m.kay@intel.com\u003e\nSigned-off-by: Weidong Han \u003cweidong.han@intel.com\u003e\nSigned-off-by: Ben-Ami Yassour \u003cbenami@il.ibm.com\u003e\nSigned-off-by: Amit Shah \u003camit.shah@qumranet.com\u003e\n\nAcked-by: Mark Gross \u003cmgross@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4d5c5d0fe89c921336b95f5e7e4f529a9df92f53",
      "tree": "7281955b46811fb25283a3b6abb7620630b2b26e",
      "parents": [
        "cbff90a7caa49507d399c9a55ba4a411e840bfb4"
      ],
      "author": {
        "name": "Ben-Ami Yassour",
        "email": "benami@il.ibm.com",
        "time": "Mon Jul 28 19:26:26 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:18 2008 +0200"
      },
      "message": "KVM: pci device assignment\n\nBased on a patch from: Amit Shah \u003camit.shah@qumranet.com\u003e\n\nThis patch adds support for handling PCI devices that are assigned to\nthe guest.\n\nThe device to be assigned to the guest is registered in the host kernel\nand interrupt delivery is handled.  If a device is already assigned, or\nthe device driver for it is still loaded on the host, the device\nassignment is failed by conveying a -EBUSY reply to the userspace.\n\nDevices that share their interrupt line are not supported at the moment.\n\nBy itself, this patch will not make devices work within the guest.\nThe VT-d extension is required to enable the device to perform DMA.\nAnother alternative is PVDMA.\n\nSigned-off-by: Amit Shah \u003camit.shah@qumranet.com\u003e\nSigned-off-by: Ben-Ami Yassour \u003cbenami@il.ibm.com\u003e\nSigned-off-by: Weidong Han \u003cweidong.han@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3b4bd7969f7b61a1ab455bff084ee4f0a2411055",
      "tree": "019b375e8981e70e8b60dd43d0d9ae6927f76724",
      "parents": [
        "31711f2294b38d8334efaf7dbac6da4781fd151e"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:04 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: ppc: trace powerpc instruction emulation\n\nThis patch adds a trace point for the instruction emulation on embedded powerpc\nutilizing the KVM_TRACE interface.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "31711f2294b38d8334efaf7dbac6da4781fd151e",
      "tree": "0e60487f9c79113f1f0c9cbc094d9a167d5c3f46",
      "parents": [
        "12f67556023389a6be929a56617142a8e8ab20fe"
      ],
      "author": {
        "name": "Jerone Young",
        "email": "jyoung5@us.ibm.com",
        "time": "Mon Jul 14 14:00:03 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: ppc: adds trace points for ppc tlb activity\n\nThis patch adds trace points to track powerpc TLB activities using the\nKVM_TRACE infrastructure.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3f7f95c65ef6a89472a28da1b9436eaeee288831",
      "tree": "d453af46dceb3fcce512a110573cd2e8e4341cfa",
      "parents": [
        "e32c8f2c0720fb21c6f4a5f6ccbebdadc878f707"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:01 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:15 2008 +0200"
      },
      "message": "KVM: kvmtrace: replace get_cycles with ktime_get v3\n\nThe current kvmtrace code uses get_cycles() while the interpretation would be\neasier using using nanoseconds. ktime_get() should give at least the same\naccuracy as get_cycles on all architectures (even better on 32bit archs) but\nat a better unit (e.g. comparable between hosts with different frequencies.\n\n[avi: avoid ktime_t in public header]\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "e32c8f2c0720fb21c6f4a5f6ccbebdadc878f707",
      "tree": "75329603864952437757705781520dc52906b51c",
      "parents": [
        "80e31d4f61f69d0e480ae092cda0e590d6a30aeb"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Jul 14 14:00:00 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:14 2008 +0200"
      },
      "message": "KVM: kvmtrace: Remove use of bit fields in kvm trace structure\n\nThis patch fixes kvmtrace use on big endian systems. When using bit fields the\ncompiler will lay data out in the wrong order expected when laid down into a\nfile.\nThis fixes it by using one variable instead of using bit fields.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d98e6346350ac909f095768beb28b82368bd126f",
      "tree": "e0d1c78c08f0305f514ad69011a7b8701faf6f12",
      "parents": [
        "5fdbf9765b7ba6a45100851154768de703d51e76"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Tue Jul 01 16:23:49 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed Oct 15 10:15:12 2008 +0200"
      },
      "message": "KVM: Move KVM TRACE DEFINITIONS to common header\n\nMove KVM trace definitions from x86 specific kvm headers to common kvm\nheaders to create a cross-architecture numbering scheme for trace\nevents. This means the kvmtrace_format userspace tool won\u0027t need to know\nwhich architecture produced the log file being processed.\n\nSigned-off-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1327138e294ffda120a50c8f31d792addb196c79",
      "tree": "64ed2619cae4f2768b43f541ca5b73999d241646",
      "parents": [
        "cd5998ebfbc9e6cb44408efa217c15d7eea13675"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Aug 06 01:36:09 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Aug 25 17:28:25 2008 +0300"
      },
      "message": "KVM: fix userspace ABI breakage\n\nThe following part of commit 9ef621d3be56e1188300476a8102ff54f7b6793f\n(KVM: Support mixed endian machines) changed on the size of a struct\nthat is exported to userspace:\n\ninclude/linux/kvm.h:\n\n@@ -318,14 +318,14 @@ struct kvm_trace_rec {\n \t__u32 vcpu_id;\n \tunion {\n \t\tstruct {\n-\t\t\t__u32 cycle_lo, cycle_hi;\n+\t\t\t__u64 cycle_u64;\n \t\t\t__u32 extra_u32[KVM_TRC_EXTRA_MAX];\n \t\t} cycle;\n \t\tstruct {\n \t\t\t__u32 extra_u32[KVM_TRC_EXTRA_MAX];\n \t\t} nocycle;\n \t} u;\n-};\n+} __attribute__((packed));\n\nPacking a struct was the correct idea, but it packed the wrong struct.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "ed8486243379ef3e6c61363df915882945c0eaec",
      "tree": "5504b545fc236d192be34a4a68de7b74c64f70e9",
      "parents": [
        "e930bffe95e1e886a1ede80726ea38df5838d067"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 29 11:30:57 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 29 12:34:02 2008 +0300"
      },
      "message": "KVM: Advertise synchronized mmu support to userspace\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9ef621d3be56e1188300476a8102ff54f7b6793f",
      "tree": "f5576d1365e726823c3eb4f772481cf5e4d1d0c7",
      "parents": [
        "25be46080f1a446cb2bda3daadbd22a5682b955e"
      ],
      "author": {
        "name": "Tan, Li",
        "email": "li.tan@intel.com",
        "time": "Fri May 23 14:54:09 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:32 2008 +0300"
      },
      "message": "KVM: Support mixed endian machines\n\nCurrently kvmtrace is not portable. This will prevent from copying a\ntrace file from big-endian target to little-endian workstation for analysis.\nIn the patch, kernel outputs metadata containing a magic number to trace\nlog, and changes 64-bit words to be u64 instead of a pair of u32s.\n\nSigned-off-by: Tan Li \u003cli.tan@intel.com\u003e\nAcked-by: Jerone Young \u003cjyoung5@us.ibm.com\u003e\nAcked-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "5f94c1741bdc7a336553122036e8a779e616ccbf",
      "tree": "fb0dc4edf0c346dc266eb2ee2d433cb2678a0bc4",
      "parents": [
        "92760499d01ef91518119908eb9b8798b6c9bd3f"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Fri May 30 16:05:54 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:31 2008 +0300"
      },
      "message": "KVM: Add coalesced MMIO support (common part)\n\nThis patch adds all needed structures to coalesce MMIOs.\nUntil an architecture uses it, it is not compiled.\n\nCoalesced MMIO introduces two ioctl() to define where are the MMIO zones that\ncan be coalesced:\n\n- KVM_REGISTER_COALESCED_MMIO registers a coalesced MMIO zone.\n  It requests one parameter (struct kvm_coalesced_mmio_zone) which defines\n  a memory area where MMIOs can be coalesced until the next switch to\n  user space. The maximum number of MMIO zones is KVM_COALESCED_MMIO_ZONE_MAX.\n\n- KVM_UNREGISTER_COALESCED_MMIO cancels all registered zones inside\n  the given bounds (bounds are also given by struct kvm_coalesced_mmio_zone).\n\nThe userspace client can check kernel coalesced MMIO availability by asking\nioctl(KVM_CHECK_EXTENSION) for the KVM_CAP_COALESCED_MMIO capability.\nThe ioctl() call to KVM_CAP_COALESCED_MMIO will return 0 if not supported,\nor the page offset where will be stored the ring buffer.\nThe page offset depends on the architecture.\n\nAfter an ioctl(KVM_RUN), the first page of the KVM memory mapped points to\na kvm_run structure. The offset given by KVM_CAP_COALESCED_MMIO is\nan offset to the coalesced MMIO ring expressed in PAGE_SIZE relatively\nto the address of the start of th kvm_run structure. The MMIO ring buffer\nis defined by the structure kvm_coalesced_mmio_ring.\n\n[akio: fix oops during guest shutdown]\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Akio Takebe \u003ctakebe_akio@jp.fujitsu.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "b2312f059c893833de58876c74290511846cd208",
      "tree": "6164572aeaf0761412af0ce860b031e126cebcba",
      "parents": [
        "4baacfb0de53b05428c87d377fc8a3def4dc10e7"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Wed Apr 16 23:28:07 2008 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 18:21:37 2008 +0300"
      },
      "message": "KVM: ppc: Add DCR access information to struct kvm_run\n\nDevice Control Registers are essentially another address space found on PowerPC\n4xx processors, analogous to PIO on x86. DCRs are always 32 bits, and can be\nidentified by a 32-bit number. We forward most DCR accesses to userspace for\nemulation (with the exception of CPR0 registers, which can be read directly\nfor simplicity in timebase frequency determination).\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "62d9f0dbc92d7e398fde53fc6021338393522e68",
      "tree": "028e62807ead3db11f15694323743b90c8211ef8",
      "parents": [
        "a45352908b88d383bc40e1e4d1a6cc5bbcefc895"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Apr 11 13:24:45 2008 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 18:21:16 2008 +0300"
      },
      "message": "KVM: add ioctls to save/store mpstate\n\nSo userspace can save/restore the mpstate during migration.\n\n[avi: export the #define constants describing the value]\n[christian: add s390 stubs]\n[avi: ditto for ia64]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "2714d1d3d6be882b97cd0125140fccf9976a460a",
      "tree": "57b654cafff076ae95b62b7763113b1ef8511eb5",
      "parents": [
        "53371b5098543ab09dcb0c7ce31da887dbe58c62"
      ],
      "author": {
        "name": "Feng (Eric) Liu",
        "email": "eric.e.liu@intel.com",
        "time": "Thu Apr 10 15:31:10 2008 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:01:19 2008 +0300"
      },
      "message": "KVM: Add trace markers\n\nTrace markers allow userspace to trace execution of a virtual machine\nin order to monitor its performance.\n\nSigned-off-by: Feng (Eric) Liu \u003ceric.e.liu@intel.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": "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": "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": "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": "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": "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": "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"
    }
  ],
  "next": "f725230af9ea03f6cc6f4a90e87aa428df46ec19"
}
