Re: [bisected] KVM in 3.19-rc1 is completely broken

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 24, 2014 at 12:23 AM, Chen, Tiejun <tiejun.chen@xxxxxxxxx> wrote:
> 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>

I applied it by hand, and it survives extremely light testing.

Tested-by: Andy Lutomirski <luto@xxxxxxxxxxxxxx>

Thanks,
Andy

> ---
>  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



-- 
Andy Lutomirski
AMA Capital Management, LLC
--
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



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux