Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Feb 2005 22:23:03 +0000 (UTC)
From:      Bosko Milekic <bmilekic@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/kern kern_mbuf.c uipc_mbuf.c src/sys/sys mbuf.h
Message-ID:  <200502102223.j1AMN3AP023234@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
bmilekic    2005-02-10 22:23:03 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_mbuf.c uipc_mbuf.c 
    sys/sys              mbuf.h 
  Log:
  Optimize the way reference counting is performed with Mbufs.  We
  do not need to perform an extra memory fetch in the Packet (Mbuf+Cluster)
  constructor to initialize the reference counter anymore.  The reference
  counts are located in a separate memory region (in the slab header,
  because this zone is UMA_ZONE_REFCNT), so the memory fetch resulted very
  often in a cache miss.  Additionally, and perhaps more significantly,
  optimize the free mbuf+cluster (packet) case, which is very common, to
  no longer require an atomic operation on free (to verify the reference
  counter) if the reference on the cluster has never been increased (also
  very common).  Reduces an atomic on mbuf free on average.
  
  Original patch submitted by: Gerrit Nagelhout <gnagelhout@sandvine.com>
  
  Revision  Changes    Path
  1.6       +2 -4      src/sys/kern/kern_mbuf.c
  1.141     +37 -21    src/sys/kern/uipc_mbuf.c
  1.165     +21 -3     src/sys/sys/mbuf.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200502102223.j1AMN3AP023234>