Date: Fri, 30 May 2008 16:41:03 +0100 From: "Bruce M. Simpson" <bms@FreeBSD.org> To: rihad <rihad@mail.ru> Cc: freebsd-net@freebsd.org Subject: Re: if_var.h micro-optimization Message-ID: <4840200F.6070602@FreeBSD.org> In-Reply-To: <483FFE36.7050006@mail.ru> References: <483FFE36.7050006@mail.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
rihad wrote: > Not sure if this is a worthwhile optimization? FreeBSD 7.0 > > --- /usr/src/sys/net/if_var.h 2007-12-07 09:46:08.000000000 +0400 > +++ if_var.h 2008-05-30 18:10:25.000000000 +0500 > @@ -282,7 +282,8 @@ > if (m) { \ > if (((ifq)->ifq_head = (m)->m_nextpkt) == NULL) \ > (ifq)->ifq_tail = NULL; \ > - (m)->m_nextpkt = NULL; \ > + else \ > + (m)->m_nextpkt = NULL; \ > (ifq)->ifq_len--; \ > } \ > } while (0) It could save dirtying an L2 data cache line at the expense of taking a conditional branch, but to evaluate your suggested change requires a lot more data. Do you plan to do this? Given how _IF_DEQUEUE() is normally used the impact is likely negligible.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4840200F.6070602>