Re: [PATCH] fs: eventpoll: add empty event

From: Johannes Lundberg
Date: Mon Sep 27 2021 - 17:17:22 EST



On 9/27/21 1:47 PM, Eric Dumazet wrote:
On Mon, Sep 27, 2021 at 1:30 PM Johannes Lundberg <jlundberg@xxxxxxxx> wrote:
The EPOLLEMPTY event will trigger when the TCP write buffer becomes
empty, i.e., when all outgoing data have been ACKed.

The need for this functionality comes from a business requirement
of measuring with higher precision how much time is spent
transmitting data to a client. For reference, similar functionality
was previously added to FreeBSD as the kqueue event EVFILT_EMPTY.

Adding yet another indirect call [1] in TCP fast path, for something
(measuring with higher precision..)
which is already implemented differently in TCP stack [2] is not desirable.

Our timestamping infrastructure should be ported to FreeBSD instead :)

[1] CONFIG_RETPOLINE=y

[2] Refs :
commit e1c8a607b28190cd09a271508aa3025d3c2f312e
net-timestamp: ACK timestamp for bytestreams
tools/testing/selftests/net/txtimestamp.c

Hi Eric

Thanks for the feedback! If there's a way to achieve the same thing with current Linux I'm all for it. I'll look into how to use timestamps for this.