Re: Slow tape drive timeout

From: Kai Makisara
Date: Wed Apr 02 2008 - 01:19:35 EST


On Tue, 1 Apr 2008, Carlo Nyto wrote:

> I am experiencing a two minute timeout open()ing a tape device when
> there is no tape in the drive.
>
> open() with O_NONBLOCK succeeds immediately, however.
>
This is how open() is supposed to work according to standards (e.g., SUS)
if O_NONBLOCK is supported. (Well, actually open() should wait
indefinitely but the non-linux systems I tested had a timeout.) The linux
st driver was changed to comply with standards at 2.5.3. I.e., the 2.4
kernels did return immediately but the 2.6 kernels have always waited.

> The problem is that I am trying to set up Legato on a system that has
> multiple tape drives. For certain common operations, Legato tries to
> open() each tape drive multiple times. On a system with multiple tape
> drives, this adds up to a significant amount of time wasted due to
> this timeout.
>
You are not the only person who has noticed this. At work we had to
install a distribution using 2.4 kernel to our backup server in order to
use Legato ;-(

But this is a Legato problem, not a kernel problem.

> Solaris does not have this problem, and Legato support advises that
> they are at the mercy of the operating system.
>
Solaris does return EIO. Either it does not support O_NONBLOCK or it is
not compliant with SUS.

Legato would not be so much "at the mercy of the operating system" if they
would write their software to work according to standards, not according
to some operating system.

--
Kai
--
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/