1. 15 11月, 2013 6 次提交
  2. 13 11月, 2013 15 次提交
  3. 12 11月, 2013 2 次提交
    • J
      dm cache: add cache block invalidation support · 65790ff9
      Joe Thornber 提交于
      Cache block invalidation is removing an entry from the cache without
      writing it back.  Cache blocks can be invalidated via the
      'invalidate_cblocks' message, which takes an arbitrary number of cblock
      ranges:
         invalidate_cblocks [<cblock>|<cblock begin>-<cblock end>]*
      
      E.g.
         dmsetup message my_cache 0 invalidate_cblocks 2345 3456-4567 5678-6789
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      65790ff9
    • J
      dm cache: add passthrough mode · 2ee57d58
      Joe Thornber 提交于
      "Passthrough" is a dm-cache operating mode (like writethrough or
      writeback) which is intended to be used when the cache contents are not
      known to be coherent with the origin device.  It behaves as follows:
      
      * All reads are served from the origin device (all reads miss the cache)
      * All writes are forwarded to the origin device; additionally, write
        hits cause cache block invalidates
      
      This mode decouples cache coherency checks from cache device creation,
      largely to avoid having to perform coherency checks while booting.  Boot
      scripts can create cache devices in passthrough mode and put them into
      service (mount cached filesystems, for example) without having to worry
      about coherency.  Coherency that exists is maintained, although the
      cache will gradually cool as writes take place.
      
      Later, applications can perform coherency checks, the nature of which
      will depend on the type of the underlying storage.  If coherency can be
      verified, the cache device can be transitioned to writethrough or
      writeback mode while still warm; otherwise, the cache contents can be
      discarded prior to transitioning to the desired operating mode.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NHeinz Mauelshagen <heinzm@redhat.com>
      Signed-off-by: NMorgan Mears <Morgan.Mears@netapp.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      2ee57d58
  4. 11 11月, 2013 5 次提交
  5. 10 11月, 2013 2 次提交
    • J
      dm cache policy mq: implement writeback_work() and mq_{set,clear}_dirty() · 01911c19
      Joe Thornber 提交于
      There are now two multiqueues for in cache blocks.  A clean one and a
      dirty one.
      
      writeback_work comes from the dirty one.  Demotions come from the clean
      one.
      
      There are two benefits:
      - Performance improvement, since demoting a clean block is a noop.
      - The cache cleans itself when io load is light.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NHeinz Mauelshagen <heinzm@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      01911c19
    • M
      dm crypt: add TCW IV mode for old CBC TCRYPT containers · ed04d981
      Milan Broz 提交于
      dm-crypt can already activate TCRYPT (TrueCrypt compatible) containers
      in LRW or XTS block encryption mode.
      
      TCRYPT containers prior to version 4.1 use CBC mode with some additional
      tweaks, this patch adds support for these containers.
      
      This new mode is implemented using special IV generator named TCW
      (TrueCrypt IV with whitening).  TCW IV only supports containers that are
      encrypted with one cipher (Tested with AES, Twofish, Serpent, CAST5 and
      TripleDES).
      
      While this mode is legacy and is known to be vulnerable to some
      watermarking attacks (e.g. revealing of hidden disk existence) it can
      still be useful to activate old containers without using 3rd party
      software or for independent forensic analysis of such containers.
      
      (Both the userspace and kernel code is an independent implementation
      based on the format documentation and it completely avoids use of
      original source code.)
      
      The TCW IV generator uses two additional keys: Kw (whitening seed, size
      is always 16 bytes - TCW_WHITENING_SIZE) and Kiv (IV seed, size is
      always the IV size of the selected cipher).  These keys are concatenated
      at the end of the main encryption key provided in mapping table.
      
      While whitening is completely independent from IV, it is implemented
      inside IV generator for simplification.
      
      The whitening value is always 16 bytes long and is calculated per sector
      from provided Kw as initial seed, xored with sector number and mixed
      with CRC32 algorithm.  Resulting value is xored with ciphertext sector
      content.
      
      IV is calculated from the provided Kiv as initial IV seed and xored with
      sector number.
      
      Detailed calculation can be found in the Truecrypt documentation for
      version < 4.1 and will also be described on dm-crypt site, see:
      http://code.google.com/p/cryptsetup/wiki/DMCrypt
      
      The experimental support for activation of these containers is already
      present in git devel brach of cryptsetup.
      Signed-off-by: NMilan Broz <gmazyland@gmail.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      ed04d981
  6. 09 11月, 2013 3 次提交
  7. 08 11月, 2013 1 次提交
  8. 07 11月, 2013 3 次提交
  9. 06 11月, 2013 1 次提交
  10. 05 11月, 2013 2 次提交
    • Y
      tcp: properly handle stretch acks in slow start · 9f9843a7
      Yuchung Cheng 提交于
      Slow start now increases cwnd by 1 if an ACK acknowledges some packets,
      regardless the number of packets. Consequently slow start performance
      is highly dependent on the degree of the stretch ACKs caused by
      receiver or network ACK compression mechanisms (e.g., delayed-ACK,
      GRO, etc).  But slow start algorithm is to send twice the amount of
      packets of packets left so it should process a stretch ACK of degree
      N as if N ACKs of degree 1, then exits when cwnd exceeds ssthresh. A
      follow up patch will use the remainder of the N (if greater than 1)
      to adjust cwnd in the congestion avoidance phase.
      
      In addition this patch retires the experimental limited slow start
      (LSS) feature. LSS has multiple drawbacks but questionable benefit. The
      fractional cwnd increase in LSS requires a loop in slow start even
      though it's rarely used. Configuring such an increase step via a global
      sysctl on different BDPS seems hard. Finally and most importantly the
      slow start overshoot concern is now better covered by the Hybrid slow
      start (hystart) enabled by default.
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Signed-off-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9f9843a7
    • Y
      tcp: enable sockets to use MSG_FASTOPEN by default · 0d41cca4
      Yuchung Cheng 提交于
      Applications have started to use Fast Open (e.g., Chrome browser has
      such an optional flag) and the feature has gone through several
      generations of kernels since 3.7 with many real network tests. It's
      time to enable this flag by default for applications to test more
      conveniently and extensively.
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Signed-off-by: NNeal Cardwell <ncardwell@google.com>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0d41cca4