Re: tcp_do_sendmsg()

Andi Kleen (ak@muc.de)
23 Mar 1998 05:13:12 +0100


"David S. Miller" <davem@dm.cobaltmicro.com> writes:

> Date: Sun, 22 Mar 1998 18:46:36 -0500 (EST)
> From: "Steven N. Hirsch" <shirsch@ibm.net>
>
> However, netscape is behaving very strangely. It seems snappy
> enough when you're interacting with it, but if you flip screens and
> come back it gets comatose and takes its time redrawing. This is
> much better after the latest fix, but I never saw anything like it
> prior to 2.1.90.
>
> Is your disk rumbling when it happens? I see it too, and I think it's
> because the new swapping code still needs a bit of tuning. ;-)

There is another problem with netscape: select() and sendmsg() seem
to disagree in some cases [with non blocking sockets] when the socket
is writable. One example to test this is to try to connect to
a very busy Webserver from Navigator 4 without a proxy.

Netscape calls connect(), makes the socket non blocking, waits with select(),
is waken up for the socket and starts a write(s, "GET /url", ..) on the
socket. Because the socket is not established yet the kernel returns EAGAIN
[why not ENOTCONN here, btw?], netscape tries again, server never answers
-> endless loop. The result is that netscape freezes because it never
gets back to its main select() that dispatches the X11 connection.

I've seen this several times now, and heard from others that it happened
there too. This does not happen with 2.0.

-Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu