On Tue, Oct 27, 2009 at 8:35 PM, Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote: > On Tue, Oct 27, 2009 at 08:18:10PM -0400, eschvoca wrote: >> On Tue, Oct 27, 2009 at 7:27 PM, Paul E. McKenney >> <paulmck@xxxxxxxxxxxxxxxxxx> wrote: >> > On Tue, Oct 27, 2009 at 06:50:30PM -0400, eschvoca wrote: >> >> On Tue, Oct 27, 2009 at 12:10 PM, Paul E. McKenney >> >> <paulmck@xxxxxxxxxxxxxxxxxx> wrote: >> >> > On Tue, Oct 27, 2009 at 10:24:22AM -0400, eschvoca@xxxxxxxxx wrote: >> >> >> Hi Paul, >> >> >> On Tue, Oct 27, 2009 at 1:00 AM, Paul E. McKenney < >> >> >> paulmck@xxxxxxxxxxxxxxxxxx> wrote: >> >> >> >> >> >> > On Mon, Oct 26, 2009 at 09:33:33PM -0700, Arjan van de Ven wrote: >> >> >> > > On Mon, 26 Oct 2009 22:31:16 -0400 >> >> >> > > eschvoca <eschvoca@xxxxxxxxx> wrote: >> >> >> > > >> >> >> > > > Hi Oliver, >> >> >> > > > >> >> >> > > > (Adding cc: Arjan) >> >> >> > > > >> >> >> > > > On Wed, Oct 14, 2009 at 10:54 PM, eschvoca <eschvoca@xxxxxxxxx> wrote: >> >> >> > > > > Hi Oliver, >> >> >> > > > > >> >> >> > > > > It ends up that the problem happens sporadically -- some reboots the >> >> >> > > > > keyboard and bluetooth adapter don't work while other reboots it >> >> >> > > > > does. I tried variations of reboot vs suspend vs shutdown vs unplug >> >> >> > > > > power and couldn't find a repeatable pattern. Perhaps the problem >> >> >> > > > > is related to Ubuntu trying to speed up the boot process which >> >> >> > > > > doesn't wait long enough for the USB devices to respond. My mouse >> >> >> > > > > always works while my USB bluetooth dongle and keyboard (through a >> >> >> > > > > GASIA PS2toUSB Adapter) do not. >> >> >> > > > > >> >> >> > > > > I've been looking for a guide on how to do a "git bisect" on vanilla >> >> >> > > > > kernels on ubuntu but haven't found anything that works well. I >> >> >> > > > > compiled a vanilla kernel but when I went to install the debs I was >> >> >> > > > > warned that there already was a 2.6.28 kernel there and I would >> >> >> > > > > overwrite it. I would like to do a "git bisect" on the vanilla >> >> >> > > > > kernel and be able to install them without conflicts. Currently >> >> >> > > > > the problem is showing up in about 25% of reboots. >> >> >> > > > > >> >> >> > > > > Please direct. >> >> >> > > > > >> >> >> > > > > Thanks. >> >> >> > > > >> >> >> > > > After 16 bisects I tracked down the problem with my USB keyboard >> >> >> > > > adapter and USB bluetooth dongle not initializing on boot-up to this >> >> >> > > > commit: >> >> >> > > >> >> >> > > my fear is the following: something ELSE in the system is missing a >> >> >> > > synchronize_rcu(), and this case happened to save it by virtue of being >> >> >> > > spurious. >> >> >> > > >> >> >> > > Paul: do we call synchronize_rcu() before we go to userspace for the >> >> >> > > first time somewhere? >> >> >> > >> >> >> > In many cases, yes. But I don't know of a specific synchronize_rcu() >> >> >> > that is guaranteed to be executed before the first userspace execution >> >> >> > on all kernel configurations for all architectures. >> >> >> > >> >> >> > I recommend putting a printk() in synchronize_rcu() to check up on this >> >> >> > on the system in question. (Or a WARN_ON_ONCE() if log space is limited.) >> >> >> >> >> >> If you are recommending I put in a prink() then I will need a patch. Also >> >> >> tell me what information you want me to collect. I'm just an avid Linux >> >> >> fan/user that would really like my keyboard/USB devices to work on boot-up. >> >> > >> >> > Fair enough. Could you please send me your .config? The output of >> >> > "grep RCU .config" will suffice. I also need to know what version of >> >> > the kernel you are using -- looks like 2.6.28, but please let me know. >> >> > >> >> >> >> I'm using a vanilla kernel repository to compile at commit >> >> b79e83bdd961ec9b862191c0df51aaeb3cb85664 (according to the Makefile it >> >> is 2.6.29-rc7). >> >> >> >> $> grep RCU .config >> >> # RCU Subsystem >> >> CONFIG_TREE_RCU=y >> >> # CONFIG_TREE_PREEMPT_RCU is not set >> >> # CONFIG_RCU_TRACE is not set >> >> CONFIG_RCU_FANOUT=32 >> >> # CONFIG_RCU_FANOUT_EXACT is not set >> >> # CONFIG_TREE_RCU_TRACE is not set >> >> # CONFIG_RCU_TORTURE_TEST is not set >> >> # CONFIG_RCU_CPU_STALL_DETECTOR is not set >> > >> > Got it, thank you! Could you please give the following (untested) >> > patch a go? >> > >> > Thanx, Paul >> > >> > >> > diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c >> > index cae8a05..ce855b2 100644 >> > --- a/kernel/rcupdate.c >> > +++ b/kernel/rcupdate.c >> > @@ -86,6 +86,7 @@ void synchronize_rcu(void) >> > if (rcu_blocking_is_gp()) >> > return; >> > >> > +WARN_ONCE(1, "First blocking call to synchronize_rcu()"); >> > init_completion(&rcu.completion); >> > /* Will wake me after RCU finished. */ >> > call_rcu(&rcu.head, wakeme_after_rcu); >> > >> >> I'm compiling now, branching off from the problematic commit. What >> info do you want me to send you? > > Given that Arjan is much more familiar with the boot-up code than am I, > I suggest sending him the stack trace generated by the WARN_ONCE(). > It should be tagged on the console with "First blocking call to > synchronize_rcu()". > > Thanx, Paul > Here is the trace from dmesg: [ 13.334718] EXT4-fs error (device sda2): ext4_mb_generate_buddy: EXT4-fs: group 4: 1051 blocks in bitmap, 108 in gd [ 13.334733] Aborting journal on device sda2:8. [ 13.368166] ext4_abort called. [ 13.368171] EXT4-fs error (device sda2): ext4_journal_start_sb: Detected aborted journal [ 13.368174] Remounting filesystem read-only [ 13.389014] lp: driver loaded but no devices found [ 13.401049] dcdbas dcdbas: Dell Systems Management Base Driver (version 5.6.0-3.2) [ 13.867414] EXT4-fs error (device sda2) in ext4_reserve_inode_write: Journal has aborted [ 13.892484] Remounting filesystem read-only [ 14.034630] EXT4-fs error (device sda2): ext4_mb_generate_buddy: EXT4-fs: group 5: 6795 blocks in bitmap, 6082 in gd [ 14.034692] mpage_da_map_blocks block allocation failed for inode 16807 at logical offset 0 with max blocks 1 with error -30 [ 14.034700] This should not happen.!! Data will be lost [ 14.034708] ext4_da_writepages: jbd2_start: 1024 pages, ino 16807; err -30 [ 14.034711] Pid: 48, comm: pdflush Tainted: G W 2.6.29-rc7.14-paul1 #1 [ 14.034712] Call Trace: [ 14.034718] [<c04e1278>] ? printk+0x18/0x20 [ 14.034723] [<c022ac87>] ext4_da_writepages+0x567/0x5a0 [ 14.034726] [<c022db90>] ? ext4_da_get_block_write+0x0/0x220 [ 14.034730] [<c0190681>] do_writepages+0x21/0x40 [ 14.034733] [<c01d195a>] __writeback_single_inode+0x8a/0x430 [ 14.034736] [<c0123724>] ? dequeue_task+0xc4/0x110 [ 14.034739] [<c01d2157>] generic_sync_sb_inodes+0x347/0x440 [ 14.034741] [<c01d23fd>] writeback_inodes+0x4d/0xe0 [ 14.034744] [<c018fb7e>] background_writeout+0x9e/0xc0 [ 14.034746] [<c0190d51>] pdflush+0x131/0x200 [ 14.034748] [<c018fae0>] ? background_writeout+0x0/0xc0 [ 14.034750] [<c0190c20>] ? pdflush+0x0/0x200 [ 14.034753] [<c014916c>] kthread+0x3c/0x70 [ 14.034755] [<c0149130>] ? kthread+0x0/0x70 [ 14.034759] [<c0103f27>] kernel_thread_helper+0x7/0x10 [ 14.034835] journal commit I/O error Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html