03 Jan, 2012

1 commit


31 Dec, 2011

1 commit


23 Nov, 2011

1 commit


07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

01 Nov, 2011

4 commits


13 Oct, 2011

1 commit

  • ip_vs_mutext is used by both netns shutdown code and startup
    and both implicit uses sk_lock-AF_INET mutex.

    cleanup CPU-1 startup CPU-2
    ip_vs_dst_event() ip_vs_genl_set_cmd()
    sk_lock-AF_INET __ip_vs_mutex
    sk_lock-AF_INET
    __ip_vs_mutex
    * DEAD LOCK *

    A new mutex placed in ip_vs netns struct called sync_mutex is added.

    Comments from Julian and Simon added.
    This patch has been running for more than 3 month now and it seems to work.

    Ver. 3
    IP_VS_SO_GET_DAEMON in do_ip_vs_get_ctl protected by sync_mutex
    instead of __ip_vs_mutex as sugested by Julian.

    Signed-off-by: Hans Schillstrom
    Acked-by: Julian Anastasov
    Signed-off-by: Simon Horman
    Signed-off-by: Pablo Neira Ayuso

    Hans Schillstrom
     

27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

14 Jun, 2011

1 commit


13 Jun, 2011

2 commits


27 May, 2011

1 commit

  • When ip_vs was adapted to netns the ftp application was not adapted
    in a correct way.
    However this is a fix to avoid kernel errors. In the long term another solution
    might be chosen. I.e the ports that the ftp appl, uses should be per netns.

    Signed-off-by: Hans Schillstrom
    Acked-by: Julian Anastasov
    Signed-off-by: Pablo Neira Ayuso

    Hans Schillstrom
     

13 May, 2011

1 commit

  • Remove all remaining references to rt->rt_{src,dst}
    by using dest->dst_saddr to cache saddr (used for TUN mode).
    For ICMP in FORWARD hook just restrict the rt_mode for NAT
    to disable LOCALNODE. All other modes do not allow
    IP_VS_RT_MODE_RDR, so we should be safe with the ICMP
    forwarding. Using cp->daddr as replacement for rt_dst
    is safe for all modes except BYPASS, even when cp->dest is
    NULL because it is cp->daddr that is used to assign cp->dest
    for sync-ed connections.

    Signed-off-by: Julian Anastasov
    Signed-off-by: David S. Miller

    Julian Anastasov
     

12 May, 2011

1 commit


10 May, 2011

1 commit

  • DESCRIPTION
    This patch tries to restore the initial init and cleanup
    sequences that was before namspace patch.
    Netns also requires action when net devices unregister
    which has never been implemented. I.e this patch also
    covers when a device moves into a network namespace,
    and has to be released.

    IMPLEMENTATION
    The number of calls to register_pernet_device have been
    reduced to one for the ip_vs.ko
    Schedulers still have their own calls.

    This patch adds a function __ip_vs_service_cleanup()
    and an enable flag for the netfilter hooks.

    The nf hooks will be enabled when the first service is loaded
    and never disabled again, except when a namespace exit starts.

    Signed-off-by: Hans Schillstrom
    Acked-by: Julian Anastasov
    [horms@verge.net.au: minor edit to changelog]
    Signed-off-by: Simon Horman

    Hans Schillstrom
     

25 Apr, 2011

1 commit

  • These header files are never installed to user consumption, so any
    __KERNEL__ cpp checks are superfluous.

    Projects should also not copy these files into their userland utility
    sources and try to use them there. If they insist on doing so, the
    onus is on them to sanitize the headers as needed.

    Signed-off-by: David S. Miller

    David S. Miller
     

11 Apr, 2011

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (34 commits)
    net: Add support for SMSC LAN9530, LAN9730 and LAN89530
    mlx4_en: Restoring RX buffer pointer in case of failure
    mlx4: Sensing link type at device initialization
    ipv4: Fix "Set rt->rt_iif more sanely on output routes."
    MAINTAINERS: add entry for Xen network backend
    be2net: Fix suspend/resume operation
    be2net: Rename some struct members for clarity
    pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev
    dsa/mv88e6131: add support for mv88e6085 switch
    ipv6: Enable RFS sk_rxhash tracking for ipv6 sockets (v2)
    be2net: Fix a potential crash during shutdown.
    bna: Fix for handling firmware heartbeat failure
    can: mcp251x: Allow pass IRQ flags through platform data.
    smsc911x: fix mac_lock acquision before calling smsc911x_mac_read
    iwlwifi: accept EEPROM version 0x423 for iwl6000
    rt2x00: fix cancelling uninitialized work
    rtlwifi: Fix some warnings/bugs
    p54usb: IDs for two new devices
    wl12xx: fix potential buffer overflow in testmode nvs push
    zd1211rw: reset rx idle timer from tasklet
    ...

    Linus Torvalds
     

04 Apr, 2011

1 commit


31 Mar, 2011

1 commit


22 Mar, 2011

1 commit

  • As part of the work to make IPVS network namespace aware
    __ip_vs_app_mutex was replaced by a per-namespace lock,
    ipvs->app_mutex. ipvs->app_key is also supplied for debugging purposes.

    Unfortunately this implementation results in ipvs->app_key residing
    in non-static storage which at the very least causes a lockdep warning.

    This patch takes the rather heavy-handed approach of reinstating
    __ip_vs_app_mutex which will cover access to the ipvs->list_head
    of all network namespaces.

    [ 12.610000] IPVS: Creating netns size=2456 id=0
    [ 12.630000] IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP)
    [ 12.640000] BUG: key ffff880003bbf1a0 not in .data!
    [ 12.640000] ------------[ cut here ]------------
    [ 12.640000] WARNING: at kernel/lockdep.c:2701 lockdep_init_map+0x37b/0x570()
    [ 12.640000] Hardware name: Bochs
    [ 12.640000] Pid: 1, comm: swapper Tainted: G W 2.6.38-kexec-06330-g69b7efe-dirty #122
    [ 12.650000] Call Trace:
    [ 12.650000] [] warn_slowpath_common+0x75/0xb0
    [ 12.650000] [] warn_slowpath_null+0x15/0x20
    [ 12.650000] [] lockdep_init_map+0x37b/0x570
    [ 12.650000] [] ? trace_hardirqs_on+0xd/0x10
    [ 12.650000] [] debug_mutex_init+0x38/0x50
    [ 12.650000] [] __mutex_init+0x5c/0x70
    [ 12.650000] [] __ip_vs_app_init+0x64/0x86
    [ 12.660000] [] ? ip_vs_init+0x0/0xff
    [ 12.660000] [] T.620+0x43/0x170
    [ 12.660000] [] ? register_pernet_subsys+0x1a/0x40
    [ 12.660000] [] ? ip_vs_init+0x0/0xff
    [ 12.660000] [] ? ip_vs_init+0x0/0xff
    [ 12.660000] [] register_pernet_operations+0x57/0xb0
    [ 12.660000] [] ? ip_vs_init+0x0/0xff
    [ 12.670000] [] register_pernet_subsys+0x29/0x40
    [ 12.670000] [] ip_vs_app_init+0x10/0x12
    [ 12.670000] [] ip_vs_init+0x4c/0xff
    [ 12.670000] [] do_one_initcall+0x7a/0x12e
    [ 12.670000] [] kernel_init+0x13e/0x1c2
    [ 12.670000] [] kernel_thread_helper+0x4/0x10
    [ 12.670000] [] ? restore_args+0x0/0x30
    [ 12.680000] [] ? kernel_init+0x0/0x1c2
    [ 12.680000] [] ? kernel_thread_helper+0x0/0x1global0

    Signed-off-by: Simon Horman
    Cc: Ingo Molnar
    Cc: Eric Dumazet
    Cc: Julian Anastasov
    Cc: Hans Schillstrom
    Signed-off-by: David S. Miller

    Simon Horman
     

15 Mar, 2011

12 commits

  • There is now no need to include sysctl members of struct netns_ipvs
    unless CONFIG_SYSCTL is defined.

    Signed-off-by: Simon Horman

    Simon Horman
     
  • ip_vs_conntrack_enabled() becomes a noop when CONFIG_SYSCTL is undefined.

    In preparation for not including sysctl_conntrack in
    struct netns_ipvs when CONFIG_SYCTL is not defined.

    Signed-off-by: Simon Horman

    Simon Horman
     
  • Signed-off-by: Simon Horman

    Simon Horman
     
  • In preparation for not including sysctl_sync_ver in
    struct netns_ipvs when CONFIG_SYCTL is not defined.

    Signed-off-by: Simon Horman

    Simon Horman
     
  • In preparation for not including sysctl_sync_threshold in
    struct netns_ipvs when CONFIG_SYCTL is not defined.

    Signed-off-by: Simon Horman

    Simon Horman
     
  • Rename ip_vs_new_estimator to ip_vs_start_estimator
    and ip_vs_kill_estimator to ip_vs_stop_estimator to better
    match their logic.

    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Julian Anastasov
     
  • Move the estimator reading from estimation_timer to user
    context. ip_vs_read_estimator() will be used to decode the rate
    values. As the decoded rates are not set by estimation timer
    there is no need to reset them in ip_vs_zero_stats.

    There is no need ip_vs_new_estimator() to encode stats
    to rates, if the destination is in trash both the stats and the
    rates are inactive.

    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Julian Anastasov
     
  • Remove ustats_seq, IPVS_STAT_INC and IPVS_STAT_ADD
    because they are not used. They were replaced with u64_stats.

    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Julian Anastasov
     
  • Currently, the new percpu counters are not zeroed and
    the zero commands do not work as expected, we still show the old
    sum of percpu values. OTOH, we can not reset the percpu counters
    from user context without causing the incrementing to use old
    and bogus values.

    So, as Eric Dumazet suggested fix that by moving all overhead
    to stats reading in user context. Do not introduce overhead in
    timer context (estimator) and incrementing (packet handling in
    softirqs).

    The new ustats0 field holds the zero point for all
    counter values, the rates always use 0 as base value as before.
    When showing the values to user space just give the difference
    between counters and the base values. The only drawback is that
    percpu stats are not zeroed, they are accessible only from /proc
    and are new interface, so it should not be a compatibility problem
    as long as the sum stats are correct after zeroing.

    Signed-off-by: Julian Anastasov
    Acked-by: Eric Dumazet
    Signed-off-by: Simon Horman

    Julian Anastasov
     
  • The global tot_stats contains cpustats field just like the
    stats for dest and svc, so better use it to simplify the usage
    in estimation_timer. As tot_stats is registered as estimator
    we can remove the special ip_vs_read_cpu_stats call for
    tot_stats. Fix ip_vs_read_cpu_stats to be called under
    stats lock because it is still used as synchronization between
    estimation timer and user context (the stats readers).

    Also, make sure ip_vs_stats_percpu_show reads properly
    the u64 stats from user context.

    Signed-off-by: Julian Anastasov
    Eric Dumazet
    Signed-off-by: Simon Horman

    Julian Anastasov
     
  • Remove include/net/netns/ip_vs.h because it depends on
    structures from include/net/ip_vs.h. As ipvs is pointer in
    struct net it is better to move struct netns_ipvs into
    include/net/ip_vs.h, so that we can easily use other structures
    in struct netns_ipvs.

    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Julian Anastasov
     
  • There's no sense to 'ct = ct = ' in ip_vs_notrack(). Just assign
    nf_ct_get()'s return value directly to the pointer variable 'ct' once.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Simon Horman

    Jesper Juhl
     

25 Feb, 2011

1 commit


22 Feb, 2011

1 commit


16 Feb, 2011

1 commit

  • When IP_VS schedulers do not find a destination, they output a terse
    "WLC: no destination available" message through kernel syslog, which I
    can not only make sense of because syslog puts them in a logfile
    together with keepalived checker results.

    This patch makes the output a bit more informative, by telling you which
    virtual service failed to find a destination.

    Example output:

    kernel: [1539214.552233] IPVS: wlc: TCP 192.168.8.30:22 - no destination available
    kernel: [1539299.674418] IPVS: wlc: FWM 22 0x00000016 - no destination available

    I have tested the code for IPv4 and FWM services, as you can see from
    the example; I do not have an IPv6 setup to test the third code path
    with.

    To avoid code duplication, I put a new function ip_vs_scheduler_err()
    into ip_vs_sched.c, and use that from the schedulers instead of calling
    IP_VS_ERR_RL directly.

    Signed-off-by: Patrick Schaaf
    Signed-off-by: Simon Horman

    Patrick Schaaf
     

02 Feb, 2011

1 commit

  • These variables are unused as a result of the recent netns work.

    Signed-off-by: Simon Horman
    Acked-by: Randy Dunlap
    Signed-off-by: Hans Schillstrom
    Tested-by: Hans Schillstrom
    Signed-off-by: Patrick McHardy

    Simon Horman
     

13 Jan, 2011

2 commits

  • trash list per namspace,
    and reordering of some params in dst struct.

    [ horms@verge.net.au: Use cancel_delayed_work_sync() instead of
    cancel_rearming_delayed_work(). Found during
    merge conflict resoliution ]
    Signed-off-by: Hans Schillstrom
    Acked-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Hans Schillstrom
     
  • This patch makes defense work timer per name-space,
    A net ptr had to be added to the ipvs struct,
    since it's needed by defense_work_handler.

    [ horms@verge.net.au: Use cancel_delayed_work_sync() instead of
    cancel_rearming_delayed_work(). Found during
    merge conflict resoliution ]
    Signed-off-by: Hans Schillstrom
    Acked-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Hans Schillstrom