1. 01 Aug, 2011 10 commits
    • Samuel Jero's avatar
      dccp ccid-2: check Ack Ratio when reducing cwnd · d96a9e8d
      Samuel Jero authored
      This patch causes CCID-2 to check the Ack Ratio after reducing the congestion
      window. If the Ack Ratio is greater than the congestion window, it is
      reduced. This prevents timeouts caused by an Ack Ratio larger than the
      congestion window.
      
      In this situation, we choose to set the Ack Ratio to half the congestion window
      (or one if that's zero) so that if we loose one ack we don't trigger a timeout.
      
      Signed-off-by: Samuel Jero <sj323707@ohio.edu> 
      Acked-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      d96a9e8d
    • Samuel Jero's avatar
      dccp ccid-2: increment cwnd correctly · 0ce95dc7
      Samuel Jero authored
      This patch fixes an issue where CCID-2 will not increase the congestion
      window for numerous RTTs after an idle period, application-limited period,
      or a loss once the algorithm is in Congestion Avoidance.
      
      What happens is that, when CCID-2 is in Congestion Avoidance mode, it will
      increase hc->tx_packets_acked by one for every packet and will increment cwnd
      every cwnd packets. However, if there is now an idle period in the connection,
      cwnd will be reduced, possibly below the slow start threshold. This will
      cause the connection to go into Slow Start. However, in Slow Start CCID-2
      performs this test to increment cwnd every second ack:
      
      	++hc->tx_packets_acked == 2
      
      Unfortunately, this will be incorrect, if cwnd previous to the idle period
      was larger than 2 and if tx_packets_acked was close to cwnd. For example:
      	cwnd=50  and  tx_packets_acked=45.
      
      In this case, the current code, will increment tx_packets_acked until it
      equals two, which will only be once tx_packets_acked (an unsigned 32-bit
      integer) overflows.
      
      My fix is simply to change that test for tx_packets_acked greater than or
      equal to two in slow start.
      Signed-off-by: default avatarSamuel Jero <sj323707@ohio.edu>
      Acked-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      0ce95dc7
    • Samuel Jero's avatar
      dccp ccid-2: prevent cwnd > Sequence Window · d346d886
      Samuel Jero authored
      Add a check to prevent CCID-2 from increasing the cwnd greater than the
      Sequence Window.
      
      When the congestion window becomes bigger than the Sequence Window, CCID-2
      will attempt to keep more data in the network than the DCCP Sequence Window
      code considers possible. This results in the Sequence Window code issuing
      a Sync, thereby inducing needless overhead. Further, if this occurs at the
      sender, CCID-2 will never detect the problem because the Acks it receives
      will indicate no losses. I have seen this cause a drop of 1/3rd in throughput
      for a connection.
      
      Also add code to adjust the Sequence Window to be about 5 times the number of
      packets in the network (RFC 4340, 7.5.2) and to adjust the Ack Ratio so that
      the remote Sequence Window will hold about 5 times the number of packets in
      the network. This allows the congestion window to increase correctly without
      being limited by the Sequence Window.
      Signed-off-by: default avatarSamuel Jero <sj323707@ohio.edu>
      Acked-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      d346d886
    • Gerrit Renker's avatar
      dccp ccid-2: use feature-negotiation to report Ack Ratio changes · 31daf039
      Gerrit Renker authored
      This uses the new feature-negotiation framework to signal Ack Ratio changes,
      as required by RFC 4341, sec. 6.1.2.
      
      That raises some problems with CCID-2, which at the moment can not cope
      gracefully with Ack Ratios > 1. Since these issues are not directly related
      to feature negotiation, they are marked by a FIXME.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarSamuel Jero <sj323707@ohio.edu>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.uk>
      31daf039
    • Samuel Jero's avatar
      dccp: send Confirm options only once · a6444f42
      Samuel Jero authored
      If a connection is in the OPEN state, remove feature negotiation Confirm
      options from the list of options after sending them once; as such options
      are NOT supposed to be retransmitted and are ONLY supposed to be sent in
      response to a Change option (RFC 4340 6.2).
      Signed-off-by: default avatarSamuel Jero <sj323707@ohio.edu>
      Acked-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      a6444f42
    • Gerrit Renker's avatar
      dccp: support for exchanging of NN options in established state 2/2 · 44e6fd9e
      Gerrit Renker authored
      This patch adds the receiver side and the (fast-path) activation part for
      dynamic changes of non-negotiable (NN) parameters in (PART)OPEN state.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarSamuel Jero <sj323707@ohio.edu>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.uk>
      44e6fd9e
    • Gerrit Renker's avatar
      dccp: support for the exchange of NN options in established state 1/2 · d6916f87
      Gerrit Renker authored
      In contrast to static feature negotiation at the begin of a connection, this
      patch introduces support for exchange of dynamically changing options.
      
      Such an update/exchange is necessary in at least two cases:
       * CCID-2's Ack Ratio (RFC 4341, 6.1.2) which changes during the connection;
       * Sequence Window values that, as per RFC 4340, 7.5.2, should be sent "as
         the connection progresses".
      
      Both are non-negotiable (NN) features, which means that no new capabilities
      are negotiated, but rather that changes in known parameters are brought
      up-to-date at either end.
      
      Thse characteristics are reflected by the implementation:
       * only NN options can be exchanged after connection setup;
       * an ack is scheduled directly after activation to speed up the update;
       * CCIDs may request changes to an NN feature even if a negotiation for that
         feature is already underway: this is required by CCID-2, where changes in
         cwnd necessitate Ack Ratio changes, such that the previous Ack Ratio (which
         is still being negotiated) would cause irrecoverable RTO timeouts (thanks
         to work by Samuel Jero).	   
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarSamuel Jero <sj323707@ohio.edu>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.uk>
      d6916f87
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 · 3da3f872
      Linus Torvalds authored
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (46 commits)
        mfd: Fix mismatch in twl4030 mutex lock-unlock
        mfd: twl6030-pwm.c needs MODULE_LICENSE
        mfd: Fix the omap-usb-host clock API usage on usbhs_disable()
        mfd: Acknowledge WM8994 IRQs before reporting
        mfd: Acknowlege all WM831x IRQs before we handle them
        mfd: Avoid two assignments if failures happen in tps65910_i2c_probe
        regulator: Storing tps65912 error codes in u8
        mfd: Don't leak init_data in tps65910_i2c_probe
        regulator: aat2870: Add AAT2870 regulator driver
        backlight: Add AAT2870 backlight driver
        mfd: Add AAT2870 mfd driver
        mfd: Remove dead code from max8997-irq
        mfd: Move TPS55910 Kconfig option
        mfd: Fix missing stmpe kerneldoc
        mfd: Fix off-by-one value range checking for tps65912_i2c_write
        mfd: Add devices for WM831x clocking module
        mfd: Remove comp{1,2}_threshold sysfs entries in tps65911_comparator_remove
        mfd: Don't ask about the TPS65912 core driver in Kconfig
        mfd: Fix off by one in WM831x IRQ code
        mfd: Add tps65921 support from twl-core
        ...
      3da3f872
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 968e75fc
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k/math-emu: Remove unnecessary code
        m68k/math-emu: Remove commented out old code
        m68k: Kill warning in setup_arch() when compiling for Sun3
        m68k/atari: Prefix GPIO_{IN,OUT} with CODEC_
        sparc: iounmap() and *_free_coherent() - Use lookup_resource()
        m68k/atari: Reserve some ST-RAM early on for device buffer use
        m68k/amiga: Chip RAM - Use lookup_resource()
        resources: Add lookup_resource()
        sparc: _sparc_find_resource() should check for exact matches
        m68k/amiga: Chip RAM - Offset resource end by CHIP_PHYSADDR
        m68k/amiga: Chip RAM - Use resource_size() to fix off-by-one error
        m68k/amiga: Chip RAM - Change chipavail to an atomic_t
        m68k/amiga: Chip RAM - Always allocate from the start of memory
        m68k/amiga: Chip RAM - Convert from printk() to pr_*()
        m68k/amiga: Chip RAM - Use tabs for indentation
      968e75fc
    • Trond Myklebust's avatar
      NFS: Re-enable compilation of nfs with !CONFIG_NFS_V4 || !CONFIG_NFS_V4_1 · a00ed25c
      Trond Myklebust authored
      Fix two recently introduced compile problems:
      
      Fix a typo in fs/nfs/pnfs.h
      
      Move the pnfs_blksize declaration outside the CONFIG_NFS_V4 section in
      struct nfs_server.
      Reported-by: default avatarJens Axboe <jaxboe@fusionio.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a00ed25c
  2. 31 Jul, 2011 30 commits