Date: Thu, 08 Nov 2012 11:24:15 +0100 From: Andre Oppermann <oppermann@networx.ch> To: "Alexander V. Chernikov" <melifaro@FreeBSD.org> Cc: freebsd-net@FreeBSD.org, freebsd-hackers@FreeBSD.org Subject: Re: [patch] reducing arp locking Message-ID: <509B884F.7040106@networx.ch> In-Reply-To: <509AEDAC.10002@FreeBSD.org> References: <509AEDAC.10002@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?509B884F.7040106>