[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging] xen: Drop XEN_DOMCTL_suppress_spurious_page_faults
commit cf97ba7f7a2de51d064362e3f2dce8d1388252a1 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Wed Aug 7 12:49:37 2019 +0100 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Wed Aug 28 18:28:31 2019 +0100 xen: Drop XEN_DOMCTL_suppress_spurious_page_faults This functionality is obsolete. It was introduced by c/s 39407bed9c0 into Xend, but never exposed in libxl. While not explicitly limited to PV guests, this is PV-only by virtue of its position in the pagefault handler. Looking though the XenServer templates, this was used to work around bugs in the 32bit RHEL/CentOS 4.{5..7} kernels (fixed in 4.8). RHEL 4 as a major version when out if support in 2017. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx> Acked-by: Wei Liu <wl@xxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- tools/libxc/include/xenctrl.h | 3 --- tools/libxc/xc_domain.c | 12 ------------ tools/python/xen/lowlevel/xc/xc.c | 22 ---------------------- xen/arch/x86/domctl.c | 4 ---- xen/arch/x86/traps.c | 18 ++---------------- xen/include/asm-x86/domain.h | 3 --- xen/include/public/domctl.h | 7 +------ xen/xsm/flask/hooks.c | 1 - xen/xsm/flask/policy/access_vectors | 3 +-- 9 files changed, 4 insertions(+), 69 deletions(-) diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h index 0ff6ed9e70..a36896034a 100644 --- a/tools/libxc/include/xenctrl.h +++ b/tools/libxc/include/xenctrl.h @@ -1787,9 +1787,6 @@ int xc_domain_set_machine_address_size(xc_interface *xch, int xc_domain_get_machine_address_size(xc_interface *xch, uint32_t domid); -int xc_domain_suppress_spurious_page_faults(xc_interface *xch, - uint32_t domid); - /* Set the target domain */ int xc_domain_set_target(xc_interface *xch, uint32_t domid, diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index 05d771f2ce..64ca513aae 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -2190,18 +2190,6 @@ int xc_domain_get_machine_address_size(xc_interface *xch, uint32_t domid) return rc == 0 ? domctl.u.address_size.size : rc; } -int xc_domain_suppress_spurious_page_faults(xc_interface *xc, uint32_t domid) -{ - DECLARE_DOMCTL; - - memset(&domctl, 0, sizeof(domctl)); - domctl.domain = domid; - domctl.cmd = XEN_DOMCTL_suppress_spurious_page_faults; - - return do_domctl(xc, &domctl); - -} - int xc_domain_debug_control(xc_interface *xc, uint32_t domid, uint32_t sop, uint32_t vcpu) { DECLARE_DOMCTL; diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c index 7f0358ba9c..911d288149 100644 --- a/tools/python/xen/lowlevel/xc/xc.c +++ b/tools/python/xen/lowlevel/xc/xc.c @@ -786,22 +786,6 @@ static PyObject *pyxc_dom_set_machine_address_size(XcObject *self, Py_INCREF(zero); return zero; } - -static PyObject *pyxc_dom_suppress_spurious_page_faults(XcObject *self, - PyObject *args, - PyObject *kwds) -{ - uint32_t dom; - - if (!PyArg_ParseTuple(args, "i", &dom)) - return NULL; - - if (xc_domain_suppress_spurious_page_faults(self->xc_handle, dom) != 0) - return pyxc_error_to_exception(self->xc_handle); - - Py_INCREF(zero); - return zero; -} #endif /* __i386__ || __x86_64__ */ static PyObject *pyxc_gnttab_hvm_seed(XcObject *self, @@ -2463,12 +2447,6 @@ static PyMethodDef pyxc_methods[] = { "Set maximum machine address size for this domain.\n" " dom [int]: Identifier of domain.\n" " width [int]: Maximum machine address width.\n" }, - - { "domain_suppress_spurious_page_faults", - (PyCFunction)pyxc_dom_suppress_spurious_page_faults, - METH_VARARGS, "\n" - "Do not propagate spurious page faults to this guest.\n" - " dom [int]: Identifier of domain.\n" }, #endif { "dom_set_memshr", diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c index 2d45e5b8a8..34a6f88b8a 100644 --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -988,10 +988,6 @@ long arch_do_domctl( } break; - case XEN_DOMCTL_suppress_spurious_page_faults: - d->arch.suppress_spurious_page_faults = 1; - break; - #ifdef CONFIG_HVM case XEN_DOMCTL_debug_op: { diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 23069e25ec..d848ebb1c7 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -1402,7 +1402,6 @@ void do_page_fault(struct cpu_user_regs *regs) { unsigned long addr, fixup; unsigned int error_code; - enum pf_type pf_type; addr = read_cr2(); @@ -1419,7 +1418,8 @@ void do_page_fault(struct cpu_user_regs *regs) if ( unlikely(!guest_mode(regs)) ) { - pf_type = spurious_page_fault(addr, regs); + enum pf_type pf_type = spurious_page_fault(addr, regs); + if ( (pf_type == smep_fault) || (pf_type == smap_fault) ) { console_start_sync(); @@ -1452,20 +1452,6 @@ void do_page_fault(struct cpu_user_regs *regs) error_code, _p(addr)); } - if ( unlikely(current->domain->arch.suppress_spurious_page_faults) ) - { - pf_type = spurious_page_fault(addr, regs); - if ( (pf_type == smep_fault) || (pf_type == smap_fault)) - { - printk(XENLOG_G_ERR "%pv fatal SM%cP violation\n", - current, (pf_type == smep_fault) ? 'E' : 'A'); - - domain_crash(current->domain); - } - if ( pf_type != real_fault ) - return; - } - if ( unlikely(regs->error_code & PFEC_reserved_bit) ) reserved_bit_page_fault(addr, regs); diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h index badf7c8923..9f3afd12bc 100644 --- a/xen/include/asm-x86/domain.h +++ b/xen/include/asm-x86/domain.h @@ -337,9 +337,6 @@ struct arch_domain /* Is shared-info page in 32-bit format? */ bool_t has_32bit_shinfo; - /* Domain cannot handle spurious page faults? */ - bool_t suppress_spurious_page_faults; - /* Is PHYSDEVOP_eoi to automatically unmask the event channel? */ bool_t auto_unmask; diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h index 19486d5e32..726ce675e8 100644 --- a/xen/include/public/domctl.h +++ b/xen/include/public/domctl.h @@ -698,11 +698,6 @@ struct xen_domctl_subscribe { /* XEN_DOMCTL_set_machine_address_size */ /* XEN_DOMCTL_get_machine_address_size */ -/* - * Do not inject spurious page faults into this domain. - */ -/* XEN_DOMCTL_suppress_spurious_page_faults */ - /* XEN_DOMCTL_debug_op */ #define XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_OFF 0 #define XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_ON 1 @@ -1172,7 +1167,7 @@ struct xen_domctl { #define XEN_DOMCTL_get_device_group 50 #define XEN_DOMCTL_set_machine_address_size 51 #define XEN_DOMCTL_get_machine_address_size 52 -#define XEN_DOMCTL_suppress_spurious_page_faults 53 +/* #define XEN_DOMCTL_suppress_spurious_page_faults 53 - Obsolete */ #define XEN_DOMCTL_debug_op 54 #define XEN_DOMCTL_gethvmcontext_partial 55 #define XEN_DOMCTL_vm_event_op 56 diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c index 791c1f66af..fd5ec992cf 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -712,7 +712,6 @@ static int flask_domctl(struct domain *d, int cmd) case XEN_DOMCTL_subscribe: case XEN_DOMCTL_disable_migrate: - case XEN_DOMCTL_suppress_spurious_page_faults: return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__SET_MISC_INFO); case XEN_DOMCTL_set_virq_handler: diff --git a/xen/xsm/flask/policy/access_vectors b/xen/xsm/flask/policy/access_vectors index 194d743a71..c9ebd0f37e 100644 --- a/xen/xsm/flask/policy/access_vectors +++ b/xen/xsm/flask/policy/access_vectors @@ -176,8 +176,7 @@ class domain getpodtarget # XENMEM_set_pod_target setpodtarget -# XEN_DOMCTL_subscribe, XEN_DOMCTL_disable_migrate, -# XEN_DOMCTL_suppress_spurious_page_faults +# XEN_DOMCTL_subscribe, XEN_DOMCTL_disable_migrate set_misc_info # XEN_DOMCTL_set_virq_handler set_virq_handler -- generated by git-patchbot for /home/xen/git/xen.git#staging _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |