sendmmsg() Expected Behavior?

Hei Chan structurechart at yahoo.com
Fri Oct 24 00:54:03 EDT 2014


First of all, I apologize for the wrong subject.  It should be recvmmsg() not sendmmsg().

Based on the source code (in my previous email), it doesn't seem like MSG_ALL has any effect (I don't know MSG_ALL exists either).

Yes, I expect (or at least wish) recvmmsg() will return as many packet as possible before timeout, and if timeout is zero, it should keep trying to fill up the buffer until it is full or there is no more packet.

The reason I expect or wish such behavior is that the main idea behind recvmmsg() is that application can reduce the number system call, and so the throughput will go up and latency will go down.

Otherwise, the user could just simply use recvmsg() to mimic what recvmmsg() is doing.

I don't expect recvmsg() returns more than 1 message but I do expect and wish recvmmsg() returns more than 1 message.




On Friday, October 24, 2014 11:41 AM, "Valdis.Kletnieks at vt.edu" <Valdis.Kletnieks at vt.edu> wrote:
On Thu, 23 Oct 2014 19:43:07 -0700, Hei Chan said:




> Then, I found that recvmmsg() doesn't return all the packets that queued in 1
> single call.

You want to receive *all* of them?  Call recv() with a *buf and a len
big enough to get a *lot* of msgs, and pass MSG_ALL in the flags.

Why were you expecting recvmsg() to return more than one message?


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




More information about the Kernelnewbies mailing list