Re: [2.6.18-rc7] printk output delay in syslog wrt dmesg still unfixed

From: Tilman Schmidt
Date: Thu Sep 21 2006 - 19:27:27 EST


On 19.09.2006 20:52, john stultz wrote:
> You might try git-bisect to find the offending patch.

This turned out to be easier than I expected.
The patch which introduces the problem is:

[a0f1ccfd8d37457a6d8a9e01acebeefcdfcc306e] lockdep: do not recurse in printk

Reverting that patch makes the problem disappear in 2.6.18, too.
In fact, it suffices to revert just the last chunk:

@@ -809,8 +815,15 @@ void release_console_sem(void)
console_may_schedule = 0;
up(&console_sem);
spin_unlock_irqrestore(&logbuf_lock, flags);
- if (wake_klogd && !oops_in_progress && waitqueue_active(&log_wait))
- wake_up_interruptible(&log_wait);
+ if (wake_klogd && !oops_in_progress && waitqueue_active(&log_wait)) {
+ /*
+ * If we printk from within the lock dependency code,
+ * from within the scheduler code, then do not lock
+ * up due to self-recursion:
+ */
+ if (!lockdep_internal())
+ wake_up_interruptible(&log_wait);
+ }
}
EXPORT_SYMBOL(release_console_sem);

Hope that helps.

--
Tilman Schmidt E-Mail: tilman@xxxxxxx
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeoeffnet mindestens haltbar bis: (siehe Rueckseite)

Attachment: signature.asc
Description: OpenPGP digital signature