On 2011-03-31 12:47, Rob Landley wrote: > On 03/31/2011 05:37 AM, Jens Axboe wrote: >> On 2011-03-31 12:07, Jens Axboe wrote: >>> On 2011-03-31 11:11, Rob Landley wrote: >>>> On 03/31/2011 04:02 AM, Jens Axboe wrote: >>>>> On 2011-03-30 15:52, Rob Landley wrote: >>>>>> On 03/30/2011 06:38 AM, Jens Axboe wrote: >>>>>>> On 2011-03-30 08:06, Rob Landley wrote: >>>>>>>> On 03/29/2011 10:51 AM, Pete Clements wrote: >>>>>>>>> Quoting Jens Axboe >>>>>>>>> > >>>>>>>>> > On 2011-03-29 16:13, Rob Landley wrote: >>>>>>>>> > > On 03/29/2011 08:59 AM, Jens Axboe wrote: >>>>>>>>> > >> On 2011-03-29 10:52, Rob Landley wrote: >>>>>>>>> > >>> I'm booting all this under kvm or qemu, by the way: >>>>>>>>> > >>> >>>>>>>>> > >>> qemu-system-x86_64 -m 1024 -kernel arch/x86/boot/bzImage \ >>>>>>>>> > >>> -hda ~/sid.ext3 -append "root=/dev/hda rw" >>>>>>>>> > >>> >>>>>>>>> > >>> Sometimes with init=/bin/bash in that last quoted bit. The root >>>>>>>>> > >>> filesystem's debian sid but that's probably not relevant because it >>>>>>>>> > >>> worked fine with .38. >>>>>>>>> > >> >>>>>>>>> > >> Does this help? >>>>>>>>> > >> >>>>>>>>> > >> diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c >>>>>>>>> > >> index 0e406d73..ca27d30 100644 >>>>>>>>> > >> --- a/drivers/ide/ide-io.c >>>>>>>>> > >> +++ b/drivers/ide/ide-io.c >>>>>>>>> > >> @@ -570,8 +570,7 @@ void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq) >>>>>>>>> > >> spin_unlock_irqrestore(q->queue_lock, flags); >>>>>>>>> > >> >>>>>>>>> > >> /* Use 3ms as that was the old plug delay */ >>>>>>>>> > >> - if (rq) >>>>>>>>> > >> - blk_delay_queue(q, 3); >>>>>>>>> > >> + blk_delay_queue(q, 3); >>>>>>>>> > >> } >>>>>>>>> > >> >>>>>>>>> > >> static int drive_is_ready(ide_drive_t *drive) >>>>>>>>> > >> >>>>>>>>> > > >>>>>>>>> > > Nope, still hung the same way. >>>>>>>>> > >>>>>>>>> > Funky. I'll try and reproduce this tonight. >>>>>>>>> > >>>>>>>>> > -- >>>>>>>>> > Jens Axboe >>>>>>>>> > >>>>>>>>> >>>>>>>>> I have had a similiar problem (reported earlier) unable to boot. >>>>>>>>> With git15-18 hung with IDE drives (hda), git19-21 moved the hang down to >>>>>>>>> the IDE CDROM (hdc). Applied the above patch and now booted into git21 without >>>>>>>>> any hang and all appears ok. >>>>>>>> >>>>>>>> It may have made it better for me, it's hard to tell. >>>>>>>> >>>>>>>> I did a fresh pull, re-applied the patch, and tried again with >>>>>>>> init=/bin/sh and it booted to the shell prompt... which then hung when I >>>>>>>> did "ls -l /". >>>>>>>> >>>>>>>> If I let it boot normally, init announces itself, gives a spurious >>>>>>>> warning about a fstab field (which it's been doing for a while, my fault >>>>>>>> but harmless), then hangs. >>>>>>>> >>>>>>>>> This is i386, UP. >>>>>>>> >>>>>>>> I'm doing x86-64 SMP. >>>>>>> >>>>>>> I think we have the same issue the other location. How about this, then: >>>>>>> >>>>>>> diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c >>>>>>> index 0e406d73..4978ec3 100644 >>>>>>> --- a/drivers/ide/ide-io.c >>>>>>> +++ b/drivers/ide/ide-io.c >>>>>>> @@ -549,12 +549,11 @@ plug_device: >>>>>>> spin_unlock_irq(&hwif->lock); >>>>>>> ide_unlock_host(host); >>>>>>> plug_device_2: >>>>>>> + blk_delay_queue(q, queue_run_ms); >>>>>>> spin_lock_irq(q->queue_lock); >>>>>>> >>>>>>> - if (rq) { >>>>>>> + if (rq) >>>>>>> blk_requeue_request(q, rq); >>>>>>> - blk_delay_queue(q, queue_run_ms); >>>>>>> - } >>>>>>> } >>>>>>> >>>>>>> void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq) >>>>>>> @@ -570,8 +569,7 @@ void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq) >>>>>>> spin_unlock_irqrestore(q->queue_lock, flags); >>>>>>> >>>>>>> /* Use 3ms as that was the old plug delay */ >>>>>>> - if (rq) >>>>>>> - blk_delay_queue(q, 3); >>>>>>> + blk_delay_queue(q, 3); >>>>>>> } >>>>>>> >>>>>>> static int drive_is_ready(ide_drive_t *drive) >>>>>>> >>>>>> >>>>>> Did a fresh pull and applied that patch. (It conflicts with your >>>>>> previous one, but looks like it includes it.) >>>>>> >>>>>> Now it hangs after the "EXT3-fs: barriers not enabled" line, doesn't >>>>>> make it to init. >>>>> >>>>> I have tried hard to reproduce this, but even stock 2.6.39-rc1 works >>>>> fine for me here. Setup a KVM image with a debian 6 install, then >>>>> converted it to IDE and booting it with a custom kernel like you are. >>>>> Works fine, boots and I can do disk activity tests and it all works. >>>>> >>>>> Can you send me your .config? >>>> >>>> It was attached to the first message in this series, here it is again. >>>> >>>> I update it via "make oldconfig" and hold down return. >>>> >>>> I boot it via: >>>> >>>> qemu-system-x86_64 -m 1024 -kernel arch/x86/boot/bzImage \ >>>> -hda ~/sid.ext3 -append "root=/dev/hda rw" >>> >>> Much better, I see the hang now! Now to try and diagnose... >> >> It seems to hard hang, looks very odd: > > I should have mentioned that: when it hangs, you can't page back up in > the console display anymore. Data point - only seems to happen on UP. If you add -smp X to kvm, then it boots and works just fine. It smells oddly like some sort of irq event. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html