1. 13 10月, 2017 6 次提交
    • F
      net: dsa: bcm_sf2: Turn on ACB at the switch level · 32e47ff0
      Florian Fainelli 提交于
      Turn on the out of band Advanced Congestion Buffering (ACB) mechanism at
      the switch level now that we have properly established the queue mapping
      between the switch egress queues and the SYSTEMPORT egress queues. This
      allows the switch to correctly backpressure the host system when one of
      its queue drops below the configured thresholds.
      
      This is also helping achieve so called "lossless" behavior by adapting
      the TX interrupt pacing to the actual speed and capacity of the switch
      port.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      32e47ff0
    • F
      net: systemport: Establish lower/upper queue mapping · d1565763
      Florian Fainelli 提交于
      Establish a queue mapping between the DSA slave network device queues
      created that correspond to switch port queues, and the transmit queue
      that SYSTEMPORT manages.
      
      We need to configure the SYSTEMPORT transmit queue with the switch port number
      and switch port queue number in order for the switch and SYSTEMPORT hardware to
      utilize the out of band congestion notification. This hardware mechanism works
      by looking at the switch port egress queue and determines whether there is
      enough buffers for this queue, with that class of service for a successful
      transmission and if not, backpressures the SYSTEMPORT queue that is being used.
      
      For this to work, we implement a notifier which looks at the
      DSA_PORT_REGISTER event.  When DSA network devices are registered, the
      framework calls the DSA notifiers when that happens, extracts the number
      of queues for these devices and their associated port number, remembers
      that in the driver private structure and linearly maps those queues to
      TX rings/queues that we manage.
      
      This scheme works because DSA slave network deviecs always transmit
      through SYSTEMPORT so when DSA slave network devices are
      destroyed/brought down, the corresponding SYSTEMPORT queues are no
      longer used. Also, by design of the DSA framework, the master network
      device (SYSTEMPORT) is registered first.
      
      For faster lookups we use an array of up to DSA_MAX_PORTS * number of
      queues per port, and then map pointers to bcm_sysport_tx_ring such that
      our ndo_select_queue() implementation can just index into that array to
      locate the corresponding ring index.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d1565763
    • F
      net: dsa: tag_brcm: Indicate to master netdevice port + queue · 0a5f14ce
      Florian Fainelli 提交于
      We need to tell the DSA master network device doing the actual
      transmission what the desired switch port and queue number is for it to
      resolve that to the internal transmit queue it is mapped to.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0a5f14ce
    • F
      net: dsa: Add support for DSA specific notifiers · 60724d4b
      Florian Fainelli 提交于
      In preparation for communicating a given DSA network device's port
      number and switch index, create a specialized DSA notifier and two
      events: DSA_PORT_REGISTER and DSA_PORT_UNREGISTER that communicate: the
      slave network device (slave_dev), port number and switch number in the
      tree.
      
      This will be later used for network device drivers like bcmsysport which
      needs to cooperate with its DSA network devices to set-up queue mapping
      and scheduling.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      60724d4b
    • T
      Revert "net: qcom/emac: enforce DMA address restrictions" · 3f7832c2
      Timur Tabi 提交于
      This reverts commit df1ec1b9.
      
      It turns out that memory allocated via dma_alloc_coherent is always
      aligned to the size of the buffer, so there's no way the RRD and RFD
      can ever be in separate 32-bit regions.
      Signed-off-by: NTimur Tabi <timur@codeaurora.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3f7832c2
    • E
      tcp: remove obsolete helpers · 437d2762
      Eric Dumazet 提交于
      Remove three inline helpers that are no longer needed.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      437d2762
  2. 12 10月, 2017 34 次提交