Re: [PATCH] poll: Avoid extra wakeups in select/poll

From: Eric Dumazet
Date: Tue Apr 28 2009 - 16:06:35 EST


Christoph Lameter a écrit :
> For the udpping test load these patches have barely any effect:
>
> git2p1 is the first version of the patch
> git2p2 is the second version (this one)

But... udpping does *not* use poll() nor select(), unless I am mistaken ?

If you really want to test this patch with udpping, you might add a poll() call
before recvfrom() :

while(1) {
+ struct pollfd pfd = { .fd = sock, .events = POLLIN};
+ poll(pfd, 1, -1);
nbytes = recvfrom(sock, msg, min(inblocksize, sizeof(msg)),
0, &inad, &inadlen);
if (nbytes < 0) {
perror("recvfrom");
break;
}
if (sendto(sock, msg, nbytes, 0, &inad, inadlen) < 0) {
perror("sendto");
break;
}
}

Part about recvfrom() wakeup avoidance is in David net-2.6 tree, and saves 2 us on udpping here.

Is it what you call git2p1 ?



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