Messages in this thread | | | Subject | RE: Scaling problem with a lot of AF_PACKET sockets on different interfaces | From | Eric Dumazet <> | Date | Fri, 07 Jun 2013 06:54:49 -0700 |
| |
On Fri, 2013-06-07 at 14:30 +0100, David Laight wrote:
> Looks like the ptype_base[] should be per 'dev'? > Or just put entries where ptype->dev != null_or_dev on a per-interface > list and do two searches?
Yes, but then we would have two searches instead of one in fast path.
ptype_base[] is currently 16 slots, 256 bytes on x86_64. Presumably the per device list could be a single list, instead of a hash table, but still...
If the application creating hundred or thousand of AF_PACKET sockets is a single process, I really question why using a single AF_PACKET was not chosen.
We now have a FANOUT capability on AF_PACKET, so that its scalable to million of packets per second.
I would rather try this way before adding yet another section in __netif_receive_skb()
| |