1. 13 1月, 2012 9 次提交
    • D
      ksz884x: fix mtu for VLAN · 83636580
      Doug Kehn 提交于
      The Ethernet header does not account for the addition of a VLAN header.
      Full size Ethernet frames containing VLAN header are not processed
      because the frame is larger than the resulting hw mtu.
      Signed-off-by: NDoug Kehn <rdkehn@yahoo.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      83636580
    • E
      net_sched: sfq: add optional RED on top of SFQ · ddecf0f4
      Eric Dumazet 提交于
      Adds an optional Random Early Detection on each SFQ flow queue.
      
      Traditional SFQ limits count of packets, while RED permits to also
      control number of bytes per flow, and adds ECN capability as well.
      
      1) We dont handle the idle time management in this RED implementation,
      since each 'new flow' begins with a null qavg. We really want to address
      backlogged flows.
      
      2) if headdrop is selected, we try to ecn mark first packet instead of
      currently enqueued packet. This gives faster feedback for tcp flows
      compared to traditional RED [ marking the last packet in queue ]
      
      Example of use :
      
      tc qdisc add dev $DEV parent 1:1 handle 10: est 1sec 4sec sfq \
      	limit 3000 headdrop flows 512 divisor 16384 \
      	redflowlimit 100000 min 8000 max 60000 probability 0.20 ecn
      
      qdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop
      flows 512/16384 divisor 16384
       ewma 6 min 8000b max 60000b probability 0.2 ecn
       prob_mark 0 prob_mark_head 4876 prob_drop 6131
       forced_mark 0 forced_mark_head 0 forced_drop 0
       Sent 1175211782 bytes 777537 pkt (dropped 6131, overlimits 11007
      requeues 0)
       rate 99483Kbit 8219pps backlog 689392b 456p requeues 0
      
      In this test, with 64 netperf TCP_STREAM sessions, 50% using ECN enabled
      flows, we can see number of packets CE marked is smaller than number of
      drops (for non ECN flows)
      
      If same test is run, without RED, we can check backlog is much bigger.
      
      qdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop
      flows 512/16384 divisor 16384
       Sent 1148683617 bytes 795006 pkt (dropped 0, overlimits 0 requeues 0)
       rate 98429Kbit 8521pps backlog 1221290b 841p requeues 0
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Stephen Hemminger <shemminger@vyatta.com>
      CC: Dave Taht <dave.taht@gmail.com>
      Tested-by: NDave Taht <dave.taht@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ddecf0f4
    • M
      dp83640: Fix NOHZ local_softirq_pending 08 warning · 72092cc4
      Manfred Rudigier 提交于
      Similar problem as in 481a8199 ("can:
      fix NOHZ local_softirq_pending 08 warning"). This fix replaces
      netif_rx() with netif_rx_ni() which has to be used from
      process/softirq context.
      Signed-off-by: NManfred Rudigier <manfred.rudigier@omicron.at>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      72092cc4
    • M
      gianfar: Fix invalid TX frames returned on error queue when time stamping · 9c4886e5
      Manfred Rudigier 提交于
      When TX time stamping for PTP messages is enabled on a socket, a time
      stamp is returned on the socket error queue to the user space application
      after the frame was transmitted. The transmitted frame is also returned on
      the error queue so that an application knows to which frame the time stamp
      belongs.
      
      In the current implementation the TxFCB is immediately followed by the
      frame. Since the eTSEC inserts the TX time stamp 8 bytes after the TxFCB,
      parts of the frame have been overwritten and an invalid frame was returned
      on the socket error queue.
      
      This patch fixes the described problem by adding additional 16 padding
      bytes between the TxFCB and the frame for all messages sent from a time
      stamping enabled socket (other sockets are not affected).
      Signed-off-by: NManfred Rudigier <manfred.rudigier@omicron.at>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9c4886e5
    • M
      gianfar: Fix missing sock reference when processing TX time stamps · db83d136
      Manfred Rudigier 提交于
      When there is not enough headroom in the skb a private copy will be made.
      However, the private copy had no reference to the socket and consequently
      no time stamp could be queued on the socket error queue during the
      skb_tstamp_tx function. This patch fixes this issue by also stealing the
      sock reference from the original skb after making the private copy.
      Signed-off-by: NManfred Rudigier <manfred.rudigier@omicron.at>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db83d136
    • T
      phylib: introduce mdiobus_alloc_size() · eb8a54a7
      Timur Tabi 提交于
      Introduce function mdiobus_alloc_size() as an alternative to mdiobus_alloc().
      Most callers of mdiobus_alloc() also allocate a private data structure, and
      then manually point bus->priv to this object.  mdiobus_alloc_size()
      combines the two operations into one, which simplifies memory management.
      
      The original mdiobus_alloc() now just calls mdiobus_alloc_size(0).
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      eb8a54a7
    • G
      net: decrement memcg jump label when limit, not usage, is changed · 1398eee0
      Glauber Costa 提交于
      The logic of the current code is that whenever we destroy
      a cgroup that had its limit set (set meaning different than
      maximum), we should decrement the jump_label counter.
      Otherwise we assume it was never incremented.
      
      But what the code actually does is test for RES_USAGE
      instead of RES_LIMIT. Usage being different than maximum
      is likely to be true most of the time.
      
      The effect of this is that the key must become negative,
      and since the jump_label test says:
      
              !!atomic_read(&key->enabled);
      
      we'll have jump_labels still on when no one else is
      using this functionality.
      Signed-off-by: NGlauber Costa <glommer@parallels.com>
      CC: David S. Miller <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1398eee0
    • E
      net: reintroduce missing rcu_assign_pointer() calls · cf778b00
      Eric Dumazet 提交于
      commit a9b3cd7f (rcu: convert uses of rcu_assign_pointer(x, NULL) to
      RCU_INIT_POINTER) did a lot of incorrect changes, since it did a
      complete conversion of rcu_assign_pointer(x, y) to RCU_INIT_POINTER(x,
      y).
      
      We miss needed barriers, even on x86, when y is not NULL.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Stephen Hemminger <shemminger@vyatta.com>
      CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cf778b00
    • D
  2. 12 1月, 2012 5 次提交
  3. 11 1月, 2012 26 次提交