Re: suspend.c: This is broken, fixme

Pavel Machek (pavel@suse.cz)
Mon, 3 Jun 2002 13:32:21 +0200


Hi!

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

Okay; I thought I corrected it in the meantime, that's why I got confused.

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

I'm alone at the system at that point. All user tasks are stopped and
I'm only thread running. There's noone that could submit requests at
that point.

In such case, killing #error is right solution, right?
Pavel

-- 
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.
-
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/