From 55b67b23d9591b643905318635776a68d889473f Mon Sep 17 00:00:00 2001 From: Zhenzhong Duan Date: Wed, 26 Apr 2017 19:04:54 +0800 Subject: [PATCH] Revert "xen/events: remove unnecessary call to bind_evtchn_to_cpu()" This reverts commit 4201cdbd6cde19a69b862984ef674ce667d526e1. Customer runing vcpu hot plug/remove in a loop could trigger softlockup. Backtrace is similar in every test, one of the trace is as below: NMI watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [modprobe:3686] CPU: 1 PID: 3686 Comm: modprobe Not tainted 4.1.12-94.1.8.el6uek.x86_64 #2 task: ffff88016be32a00 ti: ffff8800066b0000 task.ti: ffff8800066b0000 RIP: e030:[] [] smp_call_function_many+0x210/0x260 Call Trace: [] ? __cpa_flush_all+0x50/0x50 [] ? 0xffffffffa02b9000 [] smp_call_function+0x22/0x30 [] on_each_cpu+0x2b/0x70 [] ? 0xffffffffa02b9fff [] ? 0xffffffffa02b9000 [] change_page_attr_set_clr+0x3fc/0x530 [] ? list_del+0x11/0x40 [] ? ddebug_table_free+0x29/0x30 [] set_memory_x+0x43/0x50 [] ? wait_rcu_gp+0x60/0x60 [] set_page_attributes+0x28/0x30 [] unset_module_init_ro_nx+0x38/0x70 [] free_module+0xae/0x150 [] do_init_module+0x1af/0x200 [] load_module+0x5b1/0x740 [] ? mod_sysfs_teardown+0x150/0x150 [] ? __vmalloc+0x22/0x30 [] ? module_sect_show+0x30/0x30 [] SyS_init_module+0x94/0xc0 [] system_call_fastpath+0x12/0x71 Not clear the root cause lying behind yet, revert above commit help. Oracle-Bug: 25997062 Signed-off-by: Zhenzhong Duan --- drivers/xen/events/events_base.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c index 0aa021dc3845..d4b9983a4d0a 100644 --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c @@ -459,6 +459,9 @@ static void xen_evtchn_close(unsigned int port) close.port = port; if (HYPERVISOR_event_channel_op(EVTCHNOP_close, &close) != 0) BUG(); + + /* Closed ports are implicitly re-bound to VCPU0. */ + bind_evtchn_to_cpu(port, 0); } static void pirq_query_unmask(int irq) -- 2.50.1