forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'stable/for-linus-4.0-rc1-tag' of git://git.kernel.org/pub/…
…scm/linux/kernel/git/xen/tip Pull xen bugfixes from David Vrabel: "Xen regression and bug fixes for 4.0-rc1 - Fix two regressions introduced in 4.0-rc1 affecting PV/PVH guests in certain configurations. - Prevent pvscsi frontends bypassing backend checks. - Allow privcmd hypercalls to be preempted even on kernel with voluntary preemption. This fixes soft-lockups with long running toolstack hypercalls (e.g., when creating/destroying large domains)" * tag 'stable/for-linus-4.0-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: x86/xen: Initialize cr4 shadow for 64-bit PV(H) guests xen-scsiback: mark pvscsi frontend request consumed only after last read x86/xen: allow privcmd hypercalls to be preempted x86/xen: Make sure X2APIC_ENABLE bit of MSR_IA32_APICBASE is not set
- Loading branch information
Showing
8 changed files
with
104 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
/* | ||
* Preemptible hypercalls | ||
* | ||
* Copyright (C) 2014 Citrix Systems R&D ltd. | ||
* | ||
* This source code is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License as | ||
* published by the Free Software Foundation; either version 2 of the | ||
* License, or (at your option) any later version. | ||
*/ | ||
|
||
#include <linux/sched.h> | ||
#include <xen/xen-ops.h> | ||
|
||
#ifndef CONFIG_PREEMPT | ||
|
||
/* | ||
* Some hypercalls issued by the toolstack can take many 10s of | ||
* seconds. Allow tasks running hypercalls via the privcmd driver to | ||
* be voluntarily preempted even if full kernel preemption is | ||
* disabled. | ||
* | ||
* Such preemptible hypercalls are bracketed by | ||
* xen_preemptible_hcall_begin() and xen_preemptible_hcall_end() | ||
* calls. | ||
*/ | ||
|
||
DEFINE_PER_CPU(bool, xen_in_preemptible_hcall); | ||
EXPORT_SYMBOL_GPL(xen_in_preemptible_hcall); | ||
|
||
asmlinkage __visible void xen_maybe_preempt_hcall(void) | ||
{ | ||
if (unlikely(__this_cpu_read(xen_in_preemptible_hcall) | ||
&& should_resched())) { | ||
/* | ||
* Clear flag as we may be rescheduled on a different | ||
* cpu. | ||
*/ | ||
__this_cpu_write(xen_in_preemptible_hcall, false); | ||
_cond_resched(); | ||
__this_cpu_write(xen_in_preemptible_hcall, true); | ||
} | ||
} | ||
#endif /* CONFIG_PREEMPT */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters