[patch] reducing arp locking

Andre Oppermann oppermann at networx.ch
Thu Nov 8 10:24:23 UTC 2012


On 08.11.2012 00:24, Alexander V. Chernikov wrote:
> Hello list!
>
> Currently we need to acquire 2 read locks to perform simple 6-byte copying from arp record to packet
> ethernet header.
>
> It seems that acquiring lle lock for fast path (main traffic flow) is not necessary even with
> current code.
>
> My tests shows ~10% improvement with this patch applied.
>
> If nobody objects I plan to commit this change at the end of next week.

This is risky and prone to race conditions.  The copy of the MAC address
should be done while the table read lock is held to protect against the
entry going away.  You can either return with table lock held and drop
it after the copy, or you could a modified lookup function that takes a
pointer for the copy destination, do the copy with the read lock, and then
return.  If no entry is found an error is returned and obviously no copy
is done.

-- 
Andre



More information about the freebsd-net mailing list