<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/powerpc/kvm, branch v3.5.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch/powerpc/kvm?h=v3.5.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch/powerpc/kvm?h=v3.5.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-07-11T15:49:20Z</updated>
<entry>
<title>Merge branch 'for-upstream-master' of git://github.com/agraf/linux-2.6</title>
<updated>2012-07-11T15:49:20Z</updated>
<author>
<name>Avi Kivity</name>
<email>avi@redhat.com</email>
</author>
<published>2012-07-11T15:49:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=37e41afa97307a3e54b200a5c9179ada1632a844'/>
<id>urn:sha1:37e41afa97307a3e54b200a5c9179ada1632a844</id>
<content type='text'>
PPC fix from Alex Graf: "It contains an important bug fix which
can lead to guest freezes when using PAPR guests with PR KVM."

* 'for-upstream-master' of git://github.com/agraf/linux-2.6:
  powerpc/kvm: Fix "PR" KVM implementation of H_CEDE

Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>powerpc/kvm: Fix "PR" KVM implementation of H_CEDE</title>
<updated>2012-07-11T15:36:38Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2012-07-09T22:48:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1dee7a3dc89fe8c7671aee012be8981a42aad45f'/>
<id>urn:sha1:1dee7a3dc89fe8c7671aee012be8981a42aad45f</id>
<content type='text'>
H_CEDE should enable the vcpu's MSR:EE bit. It does on "HV" KVM (it's
burried in the assembly code though) and as far as I can tell, qemu
does it as well.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>powerpc/kvm: sldi should be sld</title>
<updated>2012-07-02T04:30:12Z</updated>
<author>
<name>Michael Neuling</name>
<email>mikey@neuling.org</email>
</author>
<published>2012-06-25T13:33:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2f584a146a2965b82fce89b8d2f95dc5cfe468d0'/>
<id>urn:sha1:2f584a146a2965b82fce89b8d2f95dc5cfe468d0</id>
<content type='text'>
Since we are taking a registers, this should never have been an sldi.
Talking to paulus offline, this is the correct fix.

Was introduced by:
 commit 19ccb76a1938ab364a412253daec64613acbf3df
 Author: Paul Mackerras &lt;paulus@samba.org&gt;
 Date:   Sat Jul 23 17:42:46 2011 +1000

Talking to paulus, this shouldn't be a literal.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
CC: &lt;stable@kernel.org&gt; [v3.2+]
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S HV: Drop locks around call to kvmppc_pin_guest_page</title>
<updated>2012-06-19T12:04:13Z</updated>
<author>
<name>Paul Mackerras</name>
<email>paulus@samba.org</email>
</author>
<published>2012-06-01T10:20:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=081f323bd3cc3a4d5ee6276e53cc52eddfc20a63'/>
<id>urn:sha1:081f323bd3cc3a4d5ee6276e53cc52eddfc20a63</id>
<content type='text'>
At the moment we call kvmppc_pin_guest_page() in kvmppc_update_vpa()
with two spinlocks held: the vcore lock and the vcpu-&gt;vpa_update_lock.
This is not good, since kvmppc_pin_guest_page() calls down_read() and
get_user_pages_fast(), both of which can sleep.  This bug was introduced
in 2e25aa5f ("KVM: PPC: Book3S HV: Make virtual processor area
registration more robust").

This arranges to drop those spinlocks before calling
kvmppc_pin_guest_page() and re-take them afterwards.  Dropping the
vcore lock in kvmppc_run_core() means we have to set the vcore_state
field to VCORE_RUNNING before we drop the lock, so that other vcpus
won't try to run this vcore.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
Acked-by: Alexander Graf &lt;agraf@suse.de&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm</title>
<updated>2012-05-24T23:17:30Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-05-24T23:17:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=07acfc2a9349a8ce45b236c2624dad452001966b'/>
<id>urn:sha1:07acfc2a9349a8ce45b236c2624dad452001966b</id>
<content type='text'>
Pull KVM changes from Avi Kivity:
 "Changes include additional instruction emulation, page-crossing MMIO,
  faster dirty logging, preventing the watchdog from killing a stopped
  guest, module autoload, a new MSI ABI, and some minor optimizations
  and fixes.  Outside x86 we have a small s390 and a very large ppc
  update.

  Regarding the new (for kvm) rebaseless workflow, some of the patches
  that were merged before we switch trees had to be rebased, while
  others are true pulls.  In either case the signoffs should be correct
  now."

Fix up trivial conflicts in Documentation/feature-removal-schedule.txt
arch/powerpc/kvm/book3s_segment.S and arch/x86/include/asm/kvm_para.h.

I suspect the kvm_para.h resolution ends up doing the "do I have cpuid"
check effectively twice (it was done differently in two different
commits), but better safe than sorry ;)

* 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (125 commits)
  KVM: make asm-generic/kvm_para.h have an ifdef __KERNEL__ block
  KVM: s390: onereg for timer related registers
  KVM: s390: epoch difference and TOD programmable field
  KVM: s390: KVM_GET/SET_ONEREG for s390
  KVM: s390: add capability indicating COW support
  KVM: Fix mmu_reload() clash with nested vmx event injection
  KVM: MMU: Don't use RCU for lockless shadow walking
  KVM: VMX: Optimize %ds, %es reload
  KVM: VMX: Fix %ds/%es clobber
  KVM: x86 emulator: convert bsf/bsr instructions to emulate_2op_SrcV_nobyte()
  KVM: VMX: unlike vmcs on fail path
  KVM: PPC: Emulator: clean up SPR reads and writes
  KVM: PPC: Emulator: clean up instruction parsing
  kvm/powerpc: Add new ioctl to retreive server MMU infos
  kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM
  KVM: PPC: bookehv: Fix r8/r13 storing in level exception handler
  KVM: PPC: Book3S: Enable IRQs during exit handling
  KVM: PPC: Fix PR KVM on POWER7 bare metal
  KVM: PPC: Fix stbux emulation
  KVM: PPC: bookehv: Use lwz/stw instead of PPC_LL/PPC_STL for 32-bit fields
  ...
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S HV: Fix bug leading to deadlock in guest HPT updates</title>
<updated>2012-05-16T13:02:12Z</updated>
<author>
<name>Paul Mackerras</name>
<email>paulus@samba.org</email>
</author>
<published>2012-05-09T23:49:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=51bfd2998113e1f8ce8dcf853407b76a04b5f2a0'/>
<id>urn:sha1:51bfd2998113e1f8ce8dcf853407b76a04b5f2a0</id>
<content type='text'>
When handling the H_BULK_REMOVE hypercall, we were forgetting to
invalidate and unlock the hashed page table entry (HPTE) in the case
where the page had been paged out.  This fixes it by clearing the
first doubleword of the HPTE in that case.

This fixes a regression introduced in commit a92bce95f0 ("KVM: PPC:
Book3S HV: Keep HPTE locked when invalidating").  The effect of the
regression is that the host kernel will sometimes hang when under
memory pressure.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>powerpc/kvm: Fix VSID usage in 64-bit "PR" KVM</title>
<updated>2012-05-16T13:02:11Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2012-03-23T00:21:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ffe3649282946547f1b938e02c0228aead407a18'/>
<id>urn:sha1:ffe3649282946547f1b938e02c0228aead407a18</id>
<content type='text'>
The code forgot to scramble the VSIDs the way we normally do
and was basically using the "proto VSID" directly with the MMU.

This means that in practice, KVM used random VSIDs that could
collide with segments used by other user space programs.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
[agraf: simplify ppc32 case]
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S: PR: Fix hsrr code</title>
<updated>2012-05-16T13:02:11Z</updated>
<author>
<name>Alexander Graf</name>
<email>agraf@suse.de</email>
</author>
<published>2012-05-10T01:58:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=32c7dbfd479e73684b0d23fcb0a5cb04f19d86f4'/>
<id>urn:sha1:32c7dbfd479e73684b0d23fcb0a5cb04f19d86f4</id>
<content type='text'>
When jumping back into the kernel to code that knows that it would be
using HSRR registers instead of SRR registers, we need to make sure we
pass it all information on where to jump to in HSRR registers.

Unfortunately, we used r10 to store the information to distinguish between
the HSRR and SRR case. That register got clobbered in between though,
rendering the later comparison invalid.

Instead, let's use cr1 to store this information. That way we don't
need yet another register and everyone's happy.

This fixes PR KVM on POWER7 bare metal for me.

Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Fix PR KVM on POWER7 bare metal</title>
<updated>2012-05-16T13:02:10Z</updated>
<author>
<name>Alexander Graf</name>
<email>agraf@suse.de</email>
</author>
<published>2012-04-27T14:33:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=56e13dbae3eddb1648e6e94ae251c83cdc8304e0'/>
<id>urn:sha1:56e13dbae3eddb1648e6e94ae251c83cdc8304e0</id>
<content type='text'>
When running on a system that is HV capable, some interrupts use HSRR
SPRs instead of the normal SRR SPRs. These are also used in the Linux
handlers to jump back to code after an interrupt got processed.

Unfortunately, in our "jump back to the real host handler after we've
done the context switch" code, we were only setting the SRR SPRs,
rendering Linux to jump back to some invalid IP after it's processed
the interrupt.

This fixes random crashes on p7 opal mode with PR KVM for me.

Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S: PR: Handle EMUL_ASSIST</title>
<updated>2012-05-16T13:02:10Z</updated>
<author>
<name>Alexander Graf</name>
<email>agraf@suse.de</email>
</author>
<published>2012-05-10T01:54:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7ef4e985d54bad2773f260da38530f858a9a8491'/>
<id>urn:sha1:7ef4e985d54bad2773f260da38530f858a9a8491</id>
<content type='text'>
In addition to normal "priviledged instruction" traps, we can also receive
"emulation assist" traps on newer hardware that has the HV bit set.

Handle that one the same way as a privileged instruction, including the
instruction fetching. That way we don't execute old instructions that we
happen to still leave in that field when an emul assist trap comes.

This fixes -M mac99 / -M g3beige on p7 bare metal for me.

Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
</feed>
