Re: Fire Engine??
From: Paul Menage
Date: Wed Nov 26 2003 - 15:00:56 EST
David S. Miller wrote:
>
Andi, I know this is a problem, but for the millionth time your idea
does not work because we don't know if the user asked for the timestamp
until we are deep within the recvmsg() processing, which is long after
the packet has arrived.
How about tracking the number of current sockets that have had timestamp
requests for them? If this number is zero, don't bother with the
timestamps. The first time you get a SIOCGSTAMP ioctl on a given socket,
bump the count and set a flag; decrement the count when the socket is
destroyed if the flag is set.
The drawback is that the first SIOCGSTAMP on any particular socket will
have to return a bogus value (maybe just the current time?). Ways to
mitigate that are:
- have a /proc option to let the sysadmin enforce timestamps on all
packets (just bump the counter)
- bump the counter whenever an interface is in promiscuous mode (I
imagine that tcpdump et al are the main users of the timestamps?)
Paul
-
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/