Re: [patch 21/25] hvc_console: replace schedule_timeout() withmsleep()

From: Andrew Morton
Date: Wed Sep 01 2004 - 17:37:18 EST


janitor@xxxxxxxxxxxxxx wrote:
>
> -#define TIMEOUT ((HZ + 99) / 100)
> +#define TIMEOUT 10
>
> static struct tty_driver *hvc_driver;
> static int hvc_offset;
> @@ -276,8 +277,7 @@ int khvcd(void *unused)
> for (i = 0; i < MAX_NR_HVC_CONSOLES; ++i)
> hvc_poll(i);
> }
> - set_current_state(TASK_INTERRUPTIBLE);
> - schedule_timeout(TIMEOUT);
> + msleep(TIMEOUT);

This one is wrong: we need to sleep in interruptible state here, otherwise
this kernel thread will contribute to the system load average.

Several other of your msleep conversion patches actually fix bugs. You've
found drivers which want to sleep for a fixed period, but they do that with
TASK_INTERRUPTIBLE. If someone sends the calling process a signal, these
drivers will end up not sleeping at all and may fail.

I'll going through these patches and shall apply the ones which look right.
Please consider them all to have been handled, thanks.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/