13 Dec, 2011

3 commits

  • This patch lays down the foundation for the kernel memory component
    of the Memory Controller.

    As of today, I am only laying down the following files:

    * memory.independent_kmem_limit
    * memory.kmem.limit_in_bytes (currently ignored)
    * memory.kmem.usage_in_bytes (always zero)

    Signed-off-by: Glauber Costa
    CC: Kirill A. Shutemov
    CC: Paul Menage
    CC: Greg Thelen
    CC: Johannes Weiner
    CC: Michal Hocko
    Signed-off-by: David S. Miller

    Glauber Costa
     
  • After a guest is live migrated, the xen-netfront driver emits a gratuitous
    ARP message, so that networking hardware on the target host's subnet can
    take notice, and public routing to the guest is re-established. However,
    if the packet appears on the backend interface before the backend is added
    to the target host's bridge, the packet is lost, and the migrated guest's
    peers become unable to talk to the guest.

    A sufficient two-parts condition to prevent the above is:

    (1) ensure that the backend only moves to Connected xenbus state after its
    hotplug scripts completed, ie. the netback interface got added to the
    bridge; and

    (2) ensure the frontend only queues the gARP when it sees the backend move
    to Connected.

    These two together provide complete ordering. Sub-condition (1) is already
    satisfied by commit f942dc2552b8 in Linus' tree, based on commit
    6b0b80ca7165 from [1].

    In general, the full condition is sufficient, not necessary, because,
    according to [2], live migration has been working for a long time without
    satisfying sub-condition (2). However, after 6b0b80ca7165 was backported
    to the RHEL-5 host to ensure (1), (2) still proved necessary in the RHEL-6
    guest. This patch intends to provide (2) for upstream.

    The Reviewed-by line comes from [3].

    [1] git://xenbits.xen.org/people/ianc/linux-2.6.git#upstream/dom0/backend/netback-history
    [2] http://old-list-archives.xen.org/xen-devel/2011-06/msg01969.html
    [3] http://old-list-archives.xen.org/xen-devel/2011-07/msg00484.html

    Signed-off-by: Laszlo Ersek
    Reviewed-by: Ian Campbell
    Signed-off-by: David S. Miller

    Laszlo Ersek
     
  • …wireless-next into for-davem

    John W. Linville
     

12 Dec, 2011

3 commits


11 Dec, 2011

2 commits

  • Wrap the udp6 lookup into the proper ifdef-s.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • Eric Dumazet reported, that when inet_diag is built-in the udp_diag also goes
    built-in and when ipv6 is a module the udp6 lookup symbol is not found.

    LD .tmp_vmlinux1
    net/built-in.o: In function `udp_dump_one':
    udp_diag.c:(.text+0xa2b40): undefined reference to `__udp6_lib_lookup'
    make: *** [.tmp_vmlinux1] Erreur 1

    Fix this by making udp diag build mode depend on both -- inet diag and ipv6.

    Reported-by: Eric Dumazet
    Signed-off-by: Pavel Emelyanov
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     

10 Dec, 2011

17 commits


09 Dec, 2011

15 commits

  • These tests are off by one because sock_diag_handlers[] only has AF_MAX
    elements.

    Signed-off-by: Dan Carpenter
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • net_prio_subsys can be made static this removes the sparse
    warning it was throwing.

    Signed-off-by: John Fastabend
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    John Fastabend
     
  • The code is missing initialization of NO_FCOE_FLAG and NO_ISCSI*FLAGS
    when CONFIG_CNIC is not selected.
    This causes panic during driver load since commit
    1d187b34daaecbb87aa523ba46b92930a388cb21 where NO_FCOE tested
    unconditionally (outside #ifdef BCM_CNIC structure) and
    accessed fp[FCOE_IDX] which is not allocated.

    Reported-by: Eric Dumazet
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Dmitry Kravkov
     
  • Add netpoll support to 802.1q vlan devices. Based on the netpoll support
    in the bridging code. Tested on a forced_eth device with netconsole.

    Signed-off-by: Benjamin LaHaise
    Signed-off-by: David S. Miller

    Benjamin LaHaise
     
  • Adaptative RED AQM for linux, based on paper from Sally FLoyd,
    Ramakrishna Gummadi, and Scott Shenker, August 2001 :

    http://icir.org/floyd/papers/adaptiveRed.pdf

    Goal of Adaptative RED is to make max_p a dynamic value between 1% and
    50% to reach the target average queue : (max_th - min_th) / 2

    Every 500 ms:
    if (avg > target and max_p < target and max_p >= 0.01)
    decrease max_p : max_p *= beta;

    target :[min_th + 0.4*(min_th - max_th),
    min_th + 0.6*(min_th - max_th)].
    alpha : min(0.01, max_p / 4)
    beta : 0.9
    max_P is a Q0.32 fixed point number (unsigned, with 32 bits mantissa)

    Changes against our RED implementation are :

    max_p is no longer a negative power of two (1/(2^Plog)), but a Q0.32
    fixed point number, to allow full range described in Adatative paper.

    To deliver a random number, we now use a reciprocal divide (thats really
    a multiply), but this operation is done once per marked/droped packet
    when in RED_BETWEEN_TRESH window, so added cost (compared to previous
    AND operation) is near zero.

    dump operation gives current max_p value in a new TCA_RED_MAX_P
    attribute.

    Example on a 10Mbit link :

    tc qdisc add dev $DEV parent 1:1 handle 10: est 1sec 8sec red \
    limit 400000 min 30000 max 90000 avpkt 1000 \
    burst 55 ecn adaptative bandwidth 10Mbit

    # tc -s -d qdisc show dev eth3
    ...
    qdisc red 10: parent 1:1 limit 400000b min 30000b max 90000b ecn
    adaptative ewma 5 max_p=0.113335 Scell_log 15
    Sent 50414282 bytes 34504 pkt (dropped 35, overlimits 1392 requeues 0)
    rate 9749Kbit 831pps backlog 72056b 16p requeues 0
    marked 1357 early 35 pdrop 0 other 0

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • So far when vlan id was added to team device befor port was added, this
    vid was not added to port's vlan filter. Also after removal, vid stayed
    in port device's vlan filter. Benefit of new vlan functions to handle
    this work.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • Introduce functions handy to copy vlan ids from one driver's list to
    another.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • This allows to keep track of vids needed to be in rx vlan filters of
    devices even if they are used in bond/team etc.

    vlan_info as well as vlan_group previously was, is allocated when first
    vid is added and dealocated whan last vid is deleted.

    vlan_group definition is moved to private header.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • This patch adds wrapper for ndo_vlan_rx_add_vid/ndo_vlan_rx_kill_vid
    functions. Check for NETIF_F_HW_VLAN_FILTER feature is done in this
    wrapper.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • Let caller know the result of adding/removing vlan id to/from vlan
    filter.

    In some drivers I make those functions to just return 0. But in those
    where there is able to see if hw setup went correctly, return value is
    set appropriately.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • As this structure is priv, name it approprietely. Also for pointer to it
    use name "vlan".

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • Add missing netpoll support.

    Signed-off-by: Ivan Vecera
    Signed-off-by: David S. Miller

    Ivan Vecera
     
  • Signed-off-by: Lothar Waßmann
    Tested-by: Shawn Guo
    Acked-by: Shawn Guo
    Signed-off-by: David S. Miller

    Lothar Waßmann
     
  • The .remove code is broken in several ways.
    - mdiobus_unregister() is called twice for the same object in case of dual FEC
    - phy_disconnect() is being called when the PHY is already disconnected
    - the requested IRQ(s) are not freed
    - fec_stop() is being called with the inteface already stopped

    All of those lead to kernel crashes if the remove function is actually used.

    Signed-off-by: Lothar Waßmann
    Tested-by: Shawn Guo
    Acked-by: Shawn Guo
    Signed-off-by: David S. Miller

    Lothar Waßmann
     
  • Additionally to setting the ETHER_EN bit in FEC_ECNTRL the MII/RMII
    setting in FEC_R_CNTRL needs to be preserved to keep the MII interface
    functional.

    Signed-off-by: Lothar Waßmann
    Tested-by: Shawn Guo
    Acked-by: Shawn Guo
    Signed-off-by: David S. Miller

    Lothar Waßmann