cvs commit: src/sys/netgraph netgraph.h ng_base.c src/sys/netgraph/bluetooth/include ng_bluetooth.h

Alexander Motin mav at FreeBSD.org
Tue Apr 15 21:15:32 UTC 2008


mav         2008-04-15 21:15:32 UTC

  FreeBSD src repository

  Modified files:
    sys/netgraph         netgraph.h ng_base.c 
    sys/netgraph/bluetooth/include ng_bluetooth.h 
  Log:
  Several changes breaking netgraph module ABI collected together:
   - reorder structures fields (XX_refs) a bit to group fields modified
     same time together. According to my tests it gives up to 10%
     SMP performance benefit on real workload due to reduced inter-CPU
     cache trashing.
   - change q_flags from long to int as long is not really needed there and
     it's usage with atomics is argued by some people.
   - move NGF_WORKQ flag into the separate field q_flags2 as it protected by
     queue mutex instead of node writer protection used by the rest of flags.
   - move nd_work queue entry to ng_queue structure to which it is more
     related and make it STAILQ instead of TAILQ as now it is a classic FIFO.
   - remove q_node pointer from ng_queue structure as it is not really needed.
   - reimplement item queue using STAILQ instead of own equal implementation.
     As soon as BT subsystem has own item queues using ng_item.el_next update
     it also.
   - change depth field in ng_item from uintptr_t to u_int. It was made
     uintptr_t to keep ABI compatibility.
  
  Reviewed by:    julian, emax
  Tested with:    Netperf cluster
  
  Revision  Changes    Path
  1.5       +15 -23    src/sys/netgraph/bluetooth/include/ng_bluetooth.h
  1.73      +9 -12     src/sys/netgraph/netgraph.h
  1.157     +91 -104   src/sys/netgraph/ng_base.c


More information about the cvs-src mailing list