Question about qspinlock nest

From: Zhenzhong Duan
Date: Thu Jan 10 2019 - 03:03:13 EST


Hi Maintainer,


There is a question confused me for days. Appreciate an answer.

In below code, the comment says we never have more than 4 nested contexts.

What happen if debug and mce exceptions nest with the four, or we ensure it never happen?


/*
Â* Per-CPU queue node structures; we can never have more than 4 nested
Â* contexts: task, softirq, hardirq, nmi.
Â*
Â* Exactly fits one 64-byte cacheline on a 64-bit architecture.
Â*
Â* PV doubles the storage and uses the second cacheline for PV state.
Â*/
static DEFINE_PER_CPU_ALIGNED(struct qnode, qnodes[MAX_NODES]);

--
Thanks
Zhenzhong