vmalloc_sync_all(), 64bit kernel, patches 9c48f1c629ecfa114850c03f875c6691003214de,a79e53d85683c6dd9f99c90511028adc2043031f

From: Prasad Koya
Date: Mon Nov 26 2012 - 18:06:44 EST


Hi

Before going into crashkernel, nmi_shootdown_cpus() calls
register_die_notifier(), which calls vmalloc_sync_all(). I'm seeing
lockup in sync_global_pgds() (init_64.c). From 3.2 and up,
register_die_notifier() is replaced with register_nmi_handler() (patch
9c48f1c629ecfa114850c03f875c6691003214de), which doesn't call
vmalloc_sync_all(). Is it ok to skip vmalloc_sync_all() in this path?
I see sync_global_pgds() was touched by this patch:
a79e53d85683c6dd9f99c90511028adc2043031f. There are no virtual
machines involved and I see lockups at times.

thank you.
Prasad

/* Halt all other CPUs, calling the specified function on each of them
*
* This function can be used to halt all other CPUs on crash
@@ -794,7 +784,8 @@ void nmi_shootdown_cpus(nmi_shootdown_cb callback)

atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1);
/* Would it be better to replace the trap vector here? */
- if (register_die_notifier(&crash_nmi_nb))
+ if (register_nmi_handler(NMI_LOCAL, crash_nmi_callback,
+ NMI_FLAG_FIRST, "crash"))
return; /* return what? */
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/