<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/include/linux/kvm.h, branch linux-2.6.31.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.31.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.31.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2009-12-18T21:43:24Z</updated>
<entry>
<title>KVM: s390: Make psw available on all exits, not just a subset</title>
<updated>2009-12-18T21:43:24Z</updated>
<author>
<name>Carsten Otte</name>
</author>
<published>2009-11-19T13:21:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5939fce19ddfb6fd1edb613278d9b44d3f25e0a'/>
<id>urn:sha1:b5939fce19ddfb6fd1edb613278d9b44d3f25e0a</id>
<content type='text'>
commit d7b0b5eb3000c6fb902f08c619fcd673a23d8fab upstream.

This patch moves s390 processor status word into the base kvm_run
struct and keeps it up-to date on all userspace exits.

The userspace ABI is broken by this, however there are no applications
in the wild using this.  A capability check is provided so users can
verify the updated API exists.

Signed-off-by: Carsten Otte &lt;cotte@de.ibm.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>KVM: Make kvm header C++ friendly</title>
<updated>2009-06-10T08:48:39Z</updated>
<author>
<name>nathan binkert</name>
</author>
<published>2009-03-28T04:53:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2f8b9ee14eb439008e0c5131116ea6baa40dba50'/>
<id>urn:sha1:2f8b9ee14eb439008e0c5131116ea6baa40dba50</id>
<content type='text'>
Two things needed fixing: 1) g++ does not allow a named structure type
within an anonymous union and 2) Avoid name clash between two padding
fields within the same struct by giving them different names as is
done elsewhere in the header.

Signed-off-by: Nathan Binkert &lt;nate@binkert.org&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Device assignment framework rework</title>
<updated>2009-06-10T08:48:29Z</updated>
<author>
<name>Sheng Yang</name>
</author>
<published>2009-03-12T13:45:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e56d532f20c890a06bbe7cd479f4201e3a03cd73'/>
<id>urn:sha1:e56d532f20c890a06bbe7cd479f4201e3a03cd73</id>
<content type='text'>
After discussion with Marcelo, we decided to rework device assignment framework
together. The old problems are kernel logic is unnecessary complex. So Marcelo
suggest to split it into a more elegant way:

1. Split host IRQ assign and guest IRQ assign. And userspace determine the
combination. Also discard msi2intx parameter, userspace can specific
KVM_DEV_IRQ_HOST_MSI | KVM_DEV_IRQ_GUEST_INTX in assigned_irq-&gt;flags to
enable MSI to INTx convertion.

2. Split assign IRQ and deassign IRQ. Import two new ioctls:
KVM_ASSIGN_DEV_IRQ and KVM_DEASSIGN_DEV_IRQ.

This patch also fixed the reversed _IOR vs _IOW in definition(by deprecated the
old interface).

[avi: replace homemade bitcount() by hweight_long()]

Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Sheng Yang &lt;sheng@linux.intel.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Enable MSI-X for KVM assigned device</title>
<updated>2009-06-10T08:48:23Z</updated>
<author>
<name>Sheng Yang</name>
</author>
<published>2009-02-25T09:22:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d510d6cc653bc4b3094ea73afe12600d0ab445b3'/>
<id>urn:sha1:d510d6cc653bc4b3094ea73afe12600d0ab445b3</id>
<content type='text'>
This patch finally enable MSI-X.

What we need for MSI-X:
1. Intercept one page in MMIO region of device. So that we can get guest desired
MSI-X table and set up the real one. Now this have been done by guest, and
transfer to kernel using ioctl KVM_SET_MSIX_NR and KVM_SET_MSIX_ENTRY.

2. Information for incoming interrupt. Now one device can have more than one
interrupt, and they are all handled by one workqueue structure. So we need to
identify them. The previous patch enable gsi_msg_pending_bitmap get this done.

3. Mapping from host IRQ to guest gsi as well as guest gsi to real MSI/MSI-X
message address/data. We used same entry number for the host and guest here, so
that it's easy to find the correlated guest gsi.

What we lack for now:
1. The PCI spec said nothing can existed with MSI-X table in the same page of
MMIO region, except pending bits. The patch ignore pending bits as the first
step (so they are always 0 - no pending).

2. The PCI spec allowed to change MSI-X table dynamically. That means, the OS
can enable MSI-X, then mask one MSI-X entry, modify it, and unmask it. The patch
didn't support this, and Linux also don't work in this way.

3. The patch didn't implement MSI-X mask all and mask single entry. I would
implement the former in driver/pci/msi.c later. And for single entry, userspace
should have reposibility to handle it.

Signed-off-by: Sheng Yang &lt;sheng@linux.intel.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Ioctls for init MSI-X entry</title>
<updated>2009-06-10T08:48:23Z</updated>
<author>
<name>Sheng Yang</name>
</author>
<published>2009-02-25T09:22:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c1e01514296e8a4a43ff0c88dcff635cb90feb5f'/>
<id>urn:sha1:c1e01514296e8a4a43ff0c88dcff635cb90feb5f</id>
<content type='text'>
Introduce KVM_SET_MSIX_NR and KVM_SET_MSIX_ENTRY two ioctls.

This two ioctls are used by userspace to specific guest device MSI-X entry
number and correlate MSI-X entry with GSI during the initialization stage.

MSI-X should be well initialzed before enabling.

Don't support change MSI-X entry number for now.

Signed-off-by: Sheng Yang &lt;sheng@linux.intel.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Fix overlapping check for memory slots</title>
<updated>2009-04-22T10:52:09Z</updated>
<author>
<name>Jan Kiszka</name>
</author>
<published>2009-04-13T09:59:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4cd481f68dde99ac416003b825c835f71e364393'/>
<id>urn:sha1:4cd481f68dde99ac416003b825c835f71e364393</id>
<content type='text'>
When checking for overlapping slots on registration of a new one, kvm
currently also considers zero-length (ie. deleted) slots and rejects
requests incorrectly. This finally denies user space from joining slots.
Fix the check by skipping deleted slots and advertise this via a
KVM_CAP_JOIN_MEMORY_REGIONS_WORKS.

Cc: stable@kernel.org
Signed-off-by: Jan Kiszka &lt;jan.kiszka@siemens.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Correct deassign device ioctl to IOW</title>
<updated>2009-03-24T09:03:15Z</updated>
<author>
<name>Sheng Yang</name>
</author>
<published>2009-03-17T11:27:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bc7a8660df62da3fb5cad025322eda75fbee8731'/>
<id>urn:sha1:bc7a8660df62da3fb5cad025322eda75fbee8731</id>
<content type='text'>
It's IOR by mistake, so fix it before release.

Signed-off-by: Sheng Yang &lt;sheng@linux.intel.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: define KVM_CAP_DEVICE_DEASSIGNMENT</title>
<updated>2009-03-24T09:03:12Z</updated>
<author>
<name>Weidong Han</name>
</author>
<published>2009-02-13T02:50:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2df8a40bccf5999261d0d3a82eac5a77678e61bd'/>
<id>urn:sha1:2df8a40bccf5999261d0d3a82eac5a77678e61bd</id>
<content type='text'>
define KVM_CAP_DEVICE_DEASSIGNMENT and KVM_DEASSIGN_PCI_DEVICE
for device deassignment.

the ioctl has been already implemented in the
commit: 0a920356748df4fb06e86c21c23d2ed6d31d37ad

Acked-by: Mark McLoughlin &lt;markmc@redhat.com&gt;
Signed-off-by: Weidong Han &lt;weidong.han@intel.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Report IRQ injection status to userspace.</title>
<updated>2009-03-24T09:03:11Z</updated>
<author>
<name>Gleb Natapov</name>
</author>
<published>2009-02-04T15:28:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4925663a079c77d95d8685228ad6675fc5639c8e'/>
<id>urn:sha1:4925663a079c77d95d8685228ad6675fc5639c8e</id>
<content type='text'>
IRQ injection status is either -1 (if there was no CPU found
that should except the interrupt because IRQ was masked or
ioapic was misconfigured or ...) or &gt;= 0 in that case the
number indicates to how many CPUs interrupt was injected.
If the value is 0 it means that the interrupt was coalesced
and probably should be reinjected.

Signed-off-by: Gleb Natapov &lt;gleb@redhat.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Use irq routing API for MSI</title>
<updated>2009-03-24T09:03:09Z</updated>
<author>
<name>Sheng Yang</name>
</author>
<published>2009-02-10T05:57:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=79950e1073150909619b7c0f9a39a2fea83a42d8'/>
<id>urn:sha1:79950e1073150909619b7c0f9a39a2fea83a42d8</id>
<content type='text'>
Merge MSI userspace interface with IRQ routing table. Notice the API have been
changed, and using IRQ routing table would be the only interface kvm-userspace
supported.

Signed-off-by: Sheng Yang &lt;sheng@linux.intel.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
</feed>
