On 08/01/2013 11:28 PM, Waiman Long wrote:
On 08/01/2013 05:40 AM, Peter Zijlstra wrote:
On Wed, Jul 31, 2013 at 10:37:10PM -0400, Waiman Long wrote:
[...]
+ */
+ for (qn_idx = 1; qn_idx< MAX_QNODES; qn_idx++) {
+ if (!node[qn_idx].used)
+ break;
}
+ if (unlikely(qn_idx == MAX_QNODES)) {
+ /*
+ * This shouldn't happen, print a warning message
+ *& busy spinning on the lock.
+ */
+ pr_warn("qspinlock: queue node table exhausted at "
+ "cpu %d!\n", cpu_nr);
This could make your machine die hard.. not all contexts can printk().
Do you have any suggestion? I could skip the warning and silently do the
busy spinning. I just want some way to notify the user of this rare event.
We have used debugfs in pv-spinlock to avoid that since printk uses
spinlock again. may be it will help to profile many other parts of
code too.
--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html