Re: [PATCH RFC 1/2] qspinlock: Introducing a 4-byte queue spinlockimplementation

From: Peter Zijlstra
Date: Thu Aug 01 2013 - 16:10:43 EST


On Thu, Aug 01, 2013 at 11:46:24PM +0530, Raghavendra K T wrote:
> 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.

I always use early_printk(), but that requires you set up your serial
console properly and joe-user won't have done that.


--
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/