DragonFly- master sbin/ifconfig ifconfig.c sys/conf files options sys/dev/netif/emx Makefile if_emx.c sys/kern kern_clock.c sys/net if.c if.h if_poll.c if_poll.h if_var.h

Sepherosa Ziehau sephe at crater.dragonflybsd.org
Mon Apr 27 06:20:55 PDT 2009

commit b3a7093f50ab968ffe0b9d2663cf41b81cc5431f
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date:   Sun Apr 26 11:04:18 2009 +0800

    Add ifpoll, which support hardware TX/RX queues based polling.
    The implementation is mainly based on the polling(4) code.
    Difference to the polling(4):
    - Instead of registering one polling handler for both TX/RX and status,
      drivers could register multiple polling handlers for TX/RX polling
      handler on different CPU based on its own needs.  And drivers could
      register one status check handler, which is always polled on CPU0.
    - TX could be polled at lower frequency than RX; normally we don't
      need high frequency polling for TX, but for RX, we may need relative
      higher polling frequency.
    - Better serializer integration.
    ifnet changes:
    - ifnet.if_qpoll is added, which should be implemented by driver which
      supports ifpoll.
    - IFF_NPOLLING is added to indicate that the driver is using ifpoll.
    - Add 'npolling' and '-npolling'; they are used to turn on/off ifpoll
      on the specified interface.
    - emx(4) is converted to use the ifpoll.  Coexistance of ifpoll and
      polling(4) in one driver requires extra effort in driver itself;
      drop polling(4) support in emx(4) for now.
    IFPOLL_ENABLE kernel option is added, which is not enabled by default.

Summary of changes:
 sbin/ifconfig/ifconfig.c   |    4 +-
 sys/conf/files             |    1 +
 sys/conf/options           |    3 +
 sys/dev/netif/emx/Makefile |    6 +-
 sys/dev/netif/emx/if_emx.c |  160 +++--
 sys/kern/kern_clock.c      |    9 +
 sys/net/if.c               |   13 +
 sys/net/if.h               |    4 +-
 sys/net/if_poll.c          | 1465 ++++++++++++++++++++++++++++++++++++++++++++
 sys/net/if_poll.h          |   34 +
 sys/net/if_var.h           |   15 +
 11 files changed, 1642 insertions(+), 72 deletions(-)
 create mode 100644 sys/net/if_poll.c
 create mode 100644 sys/net/if_poll.h


DragonFly BSD source repository

More information about the Commits mailing list