Messages in this thread | | | Date | Mon, 3 Jun 2002 13:08:16 +0200 | From | Jens Axboe <> | Subject | Re: suspend.c: This is broken, fixme |
| |
On Mon, Jun 03 2002, Pavel Machek wrote: > Hi! > > I found this in 2.5.20... > > --- a/kernel/suspend.c Sun Jun 2 18:44:56 2002 > +++ b/kernel/suspend.c Sun Jun 2 18:44:56 2002 > @@ -64,6 +64,7 @@ > #include <asm/mmu_context.h> > #include <asm/pgtable.h> > #include <asm/io.h> > +#include <linux/swapops.h> > > unsigned char software_suspend_enabled = 0; > > @@ -300,7 +301,8 @@ > static void do_suspend_sync(void) > { > while (1) { > - run_task_queue(&tq_disk); > + blk_run_queues(); > +#error this is broken, FIXME > if (!TQ_ACTIVE(tq_disk)) > break; > > . Why is it broken?
Hey, I even cc'ed you on the patch when it went to Linus... Lets look at what happened before: run tq_disk, then check if it is active. What prevents tq_disk from being active right after you issue the TQ_ACTIVE check? Nothing. And I'm not sure exactly what semantics you think running tq_disk has. I suspect you are looking for a 'start any pending i/o and return when it has completed', which is far from what happens. Running tq_disk will _try_ to start _some_ I/O, and eventually, in time, the currently pending requests will have completed. In the mean time, more I/O could have been added though.
-- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |