On 2014/12/24 5:29, Andy Lutomirski wrote:
On Tue, Dec 23, 2014 at 1:13 PM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
I can reproduce it using the same steps on a Sandy Bridge laptop, with
whatever QEMU is packaged in Fedora 21. I attached the config.
I also submitted a virtme update for Fedora Rawhide and 21 (20 is
still building) in case it helps. The build is here:
http://koji.fedoraproject.org/koji/buildinfo?buildID=600732
The other reporter bisected it to
0e60b0799fedc495a5c57dbd669de3c10d72edd2. Can you try its parent?
That's what I bisected it to. The parent works.
Also, does it break with 3.18 host and 3.19-rc1 guest, or with
3.19-rc1 host and 3.18 guest? (Sorry I should do this myself
but I'm a bit swamped due to vacation until Jan 6th).
The breakage is with 3.17.7-something L0 and the same test kernel as
L1 and L2. I think it breaks the same way with 3.19-rc1 as host and
guest without any nesting, but that's awkward to test right now.
Andy,
Could you try this?
Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxx>
---
virt/kvm/kvm_main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index f528343..a2d928c 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -672,6 +672,7 @@ static void update_memslots(struct kvm_memslots *slots,
WARN_ON(mslots[i].id != id);
if (!new->npages) {
new->base_gfn = 0;
+ new->flags = 0;
if (mslots[i].npages)
slots->used_slots--;
} else {
@@ -688,7 +689,7 @@ static void update_memslots(struct kvm_memslots *slots,
i++;
}
while (i > 0 &&
- new->base_gfn > mslots[i - 1].base_gfn) {
+ new->base_gfn >= mslots[i - 1].base_gfn) {
mslots[i] = mslots[i - 1];
slots->id_to_index[mslots[i].id] = i;
i--;
--
1.9.1
Tiejun
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html