Date: Thu, 25 Oct 2001 23:44:51 -0700 (PDT) From: Luigi Rizzo <luigi@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sys mbuf.h Message-ID: <200110260644.f9Q6ipn98185@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
luigi 2001/10/25 23:44:51 PDT Modified files: (Branch: RELENG_4) sys/sys mbuf.h Log: As discussed on -net, let M_LEADINGSPACE return a non-zero value for standard clusters with a refcnt of 1. This cannot possibly cause problems because it is exactly the same test performed when m_free'ing a cluster. This is mostly beneficial for boxes acting as routers, because M_PREPEND can now write the MAC header for forwarded packets into a cluster, instead of having to allocate a new mbuf and possibly hitting performance bugs on some NICs which cannot handle well scatter-gather I/O. I have measured a 15% improvement in the peak forwarding rate on a box using 21143 NICs. Note that to fully exploit non-shared clusters we also need to provide an m_pullup() variant which allows the pulled-up chunk of data to remain in the cluster, and use the new interface instead of m_pullup() when required (e.g. in ip_fw etc.). This does not go in CURRENT as is: as discussed in -net, M_LEADINGSPACE should not check for writability, just report available space, leaving the check to some other piece of code. Unfortunately, some code in the tree depends on M_LEADINGSPACE checking for writability, and so implementing M_LEADINGSPACE in the correct way also requires to fix the incorrect usage. This is what will be done in CURRENT, but for STABLE, this is probably more than we want, and so we are happy (more or less) with this simple fix. Revision Changes Path 1.44.2.11 +6 -3 src/sys/sys/mbuf.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110260644.f9Q6ipn98185>