Re: are ioctl calls supposed to take this long?

Richard B. Johnson (root@chaos.analogic.com)
Fri, 6 Jul 2001 10:41:43 -0400 (EDT)


On Fri, 6 Jul 2001, Chris Friesen wrote:

>
> I am using the following snippet of code to find out some information about the
> MII PHY interface of my ethernet device (which uses the tulip driver). When I
> did some timing measurements with gettimeofday() I found that the ioctl call
> takes a bit over a millisecond to complete. This seems to me to be an awfully
> long time for what should be (as far as I can see) a very simple operation.
>
> Is this the normal amount of time that this should take, and if so then why in
> the world does it take so long? If not, then does anyone have any idea why it's
> taking so long?
>
> Thanks,
>

It's not ioctl() overhead, it's what has to be done in the driver to
get the information you request.

(1) Stop the chip
(2) Read the media interface using an awful SERIAL protocol in which
you manipulate 3 bits using multiple instructions, to send
or receive a single BIT (not BYTE) of data. You do the 8 times
per byte.
(3) Restart the chip.

You are lucky it doesn't take an hour. This garbage 1 bit interface,
in which hardware designers assumed that software was free, is an
example of the junk software engineers have to put up with.

This is, obviously, not designed to be accessed very often, just
any time somebody disconnects/reconnects the network wire. Don't
ioctl-it in a loop. You will lose most of the network packets.

Cheers,
Dick Johnson

Penguin : Linux version 2.4.1 on an i686 machine (799.53 BogoMips).

I was going to compile a list of innovations that could be
attributed to Microsoft. Once I realized that Ctrl-Alt-Del
was handled in the BIOS, I found that there aren't any.

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