Comment 1 for bug 1596941

Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

The following upstream patch:

From 25fb213d873977290caf374234df496ad158ec1e Mon Sep 17 00:00:00 2001
From: Rik van Riel <email address hidden>
Date: Mon, 21 Mar 2016 15:13:27 +0100
Subject: [PATCH 2/2] kvm, rt: change async pagefault code locking for
 PREEMPT_RT

The async pagefault wake code can run from the idle task in exception
context, so everything here needs to be made non-preemptible.

Conversion to a simple wait queue and raw spinlock does the trick.

Signed-off-by: Rik van Riel <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>

Fixes the issue by not letting async pagefault code to be preempted due to waitqueues.

Backport for Trusty needs:

From 25fb213d873977290caf374234df496ad158ec1e Mon Sep 17 00:00:00 2001
From: Rik van Riel <email address hidden>
Date: Mon, 21 Mar 2016 15:13:27 +0100
Subject: [PATCH 2/2] kvm, rt: change async pagefault code locking for
 PREEMPT_RT

From 6b9cf536987c69825f91af9478109aa7bcbebc94 Mon Sep 17 00:00:00 2001
From: "Peter Zijlstra (Intel)" <email address hidden>
Date: Fri, 19 Feb 2016 09:46:37 +0100
Subject: [PATCH 1/2] wait.[ch]: Introduce the simple waitqueue (swait)
 implementation

If adding simple waitqueue interface to Trusty is not acceptable as SRU I'll have to come up with something else. I'm sure that problem goes away when using these 2 patches.