ACK/Cmnt: [SRU][Bionic][PATCH 1/1] s390/kvm: fix deadlock when killed by oom
Stefan Bader
stefan.bader at canonical.com
Tue Nov 6 12:54:25 UTC 2018
On 02.11.18 20:13, Frank Heimes wrote:
> From: Claudio Imbrenda <imbrenda at linux.vnet.ibm.com
> <mailto:imbrenda at linux.vnet.ibm.com>>
>
> BugLink: http://bugs.launchpad.net/bugs/1800849
>
> When the oom killer kills a userspace process in the page fault handler
> while in guest context, the fault handler fails to release the mm_sem
> if the FAULT_FLAG_RETRY_NOWAIT option is set. This leads to a deadlock
> when tearing down the mm when the process terminates. This bug can only
> happen when pfault is enabled, so only KVM clients are affected.
>
> The problem arises in the rare cases in which handle_mm_fault does not
> release the mm_sem. This patch fixes the issue by manually releasing
> the mm_sem when needed.
>
> Fixes: 24eb3a824c4f3 ("KVM: s390: Add FAULT_FLAG_RETRY_NOWAIT for guest fault")
> Cc: <stable at vger.kernel.org <mailto:stable at vger.kernel.org>> # 3.15+
> Signed-off-by: Claudio Imbrenda <imbrenda at linux.vnet.ibm.com
> <mailto:imbrenda at linux.vnet.ibm.com>>
> Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com
> <mailto:schwidefsky at de.ibm.com>>
> (cherry picked from commit 306d6c49ac9ded11114cb53b0925da52f2c2ada1)
> Signed-off-by: Frank Heimes <frank.heimes at canonical.com
> <mailto:frank.heimes at canonical.com>>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
>
> ---
Possibly needs real cherry pick if this multi-part html thing cannot be
seperated away.
>
> diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
> index e074480..4cc3f06 100644
> --- a/arch/s390/mm/fault.c
> +++ b/arch/s390/mm/fault.c
> @@ -502,6 +502,8 @@ static inline int do_exception(struct pt_regs *regs, int access)
> /* No reason to continue if interrupted by SIGKILL. */
> if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current)) {
> fault = VM_FAULT_SIGNAL;
> + if (flags & FAULT_FLAG_RETRY_NOWAIT)
> + goto out_up;
> goto out;
> }
> if (unlikely(fault & VM_FAULT_ERROR))
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20181106/c5851765/attachment.sig>
More information about the kernel-team
mailing list