1. 18 Oct, 2017 3 commits
    • David Howells's avatar
      rxrpc: Use MSG_WAITALL to tell sendmsg() to temporarily ignore signals · bc5e3a54
      David Howells authored
      Make AF_RXRPC accept MSG_WAITALL as a flag to sendmsg() to tell it to
      ignore signals whilst loading up the message queue, provided progress is
      being made in emptying the queue at the other side.
      
      Progress is defined as the base of the transmit window having being
      advanced within 2 RTT periods.  If the period is exceeded with no progress,
      sendmsg() will return anyway, indicating how much data has been copied, if
      any.
      
      Once the supplied buffer is entirely decanted, the sendmsg() will return.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      bc5e3a54
    • David Howells's avatar
      rxrpc: Provide functions for allowing cleaner handling of signals · f4d15fb6
      David Howells authored
      Provide a couple of functions to allow cleaner handling of signals in a
      kernel service.  They are:
      
       (1) rxrpc_kernel_get_rtt()
      
           This allows the kernel service to find out the RTT time for a call, so
           as to better judge how large a timeout to employ.
      
           Note, though, that whilst this returns a value in nanoseconds, the
           timeouts can only actually be in jiffies.
      
       (2) rxrpc_kernel_check_life()
      
           This returns a number that is updated when ACKs are received from the
           peer (notably including PING RESPONSE ACKs which we can elicit by
           sending PING ACKs to see if the call still exists on the server).
      
           The caller should compare the numbers of two calls to see if the call
           is still alive.
      
      These can be used to provide an extending timeout rather than returning
      immediately in the case that a signal occurs that would otherwise abort an
      RPC operation.  The timeout would be extended if the server is still
      responsive and the call is still apparently alive on the server.
      
      For most operations this isn't that necessary - but for FS.StoreData it is:
      OpenAFS writes the data to storage as it comes in without making a backup,
      so if we immediately abort it when partially complete on a CTRL+C, say, we
      have no idea of the state of the file after the abort.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      f4d15fb6
    • David Howells's avatar
      rxrpc: Support service upgrade from a kernel service · a68f4a27
      David Howells authored
      Provide support for a kernel service to make use of the service upgrade
      facility.  This involves:
      
       (1) Pass an upgrade request flag to rxrpc_kernel_begin_call().
      
       (2) Make rxrpc_kernel_recv_data() return the call's current service ID so
           that the caller can detect service upgrade and see what the service
           was upgraded to.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      a68f4a27
  2. 17 Oct, 2017 1 commit
  3. 16 Oct, 2017 31 commits
  4. 15 Oct, 2017 5 commits
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · e4655e4a
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      40GbE Intel Wired LAN Driver Updates 2017-10-13
      
      This series contains updates to mqprio and i40e.
      
      Amritha introduces a new hardware offload mode in tc/mqprio where the TCs,
      the queue configurations and bandwidth rate limits are offloaded to the
      hardware. The existing mqprio framework is extended to configure the queue
      counts and layout and also added support for rate limiting. This is
      achieved through new netlink attributes for the 'mode' option which takes
      values such as 'dcb' (default) and 'channel' and a 'shaper' option for
      QoS attributes such as bandwidth rate limits in hw mode 1.  Legacy devices
      can fall back to the existing setup supporting hw mode 1 without these
      additional options where only the TCs are offloaded and then the 'mode'
      and 'shaper' options defaults to DCB support.  The i40e driver enables the
      new mqprio hardware offload mechanism factoring the TCs, queue
      configuration and bandwidth rates by creating HW channel VSIs.
      In this new mode, the priority to traffic class mapping and the user
      specified queue ranges are used to configure the traffic class when the
      'mode' option is set to 'channel'. This is achieved by creating HW
      channels(VSI). A new channel is created for each of the traffic class
      configuration offloaded via mqprio framework except for the first TC (TC0)
      which is for the main VSI. TC0 for the main VSI is also reconfigured as
      per user provided queue parameters. Finally, bandwidth rate limits are set
      on these traffic classes through the shaper attribute by sending these
      rates in addition to the number of TCs and the queue configurations.
      
      Colin Ian King makes an array of constant values "constant".
      
      Alan fixes and issue where on some firmware versions, we were failing to
      actually fill out the phy_types which caused ethtool to not report any
      link types.  Also hardened against a potentially malicious VF by not
      letting the VF to reset itself after requesting to change the number of
      queues (via ethtool), let the PF reset the VF to institute the requested
      changes.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e4655e4a
    • David S. Miller's avatar
      Merge branch 'tc-testing-updates' · ae0783b1
      David S. Miller authored
      Lucas Bates says:
      
      ====================
      tc-testing: Test suite updates
      
      This patch series is a roundup of changes to the tc-testing
      suite:
      
       - Add test cases for police and mirred modules and some coverage
         in already-submitted test categories
       - Break the test case files down into more user-friendly sizes
       - Bug fix to the tdc.py script's handling of the -l argument
      
      v2: fix the lack of final newlines in two new files (thanks David)
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ae0783b1
    • Lucas Bates's avatar
      tc-testing: fix the -l argument bug in tdc.py · 7f6661a7
      Lucas Bates authored
      This patch fixes a bug in the tdc script, where executing tdc
      with the -l argument would cause the tests to start running
      as opposed to listing all the known test cases.
      Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7f6661a7
    • Lucas Bates's avatar
      tc-testing: Add test cases for police and skbmod · cf797ac4
      Lucas Bates authored
      Add basic unit tests for police and skbmod actions in tc.
      Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf797ac4
    • Lucas Bates's avatar
      tc-testing: Split test case files into smaller chunks · 0923edf4
      Lucas Bates authored
      The original submission had the test cases stored in one
      monolithic file. This can be unwieldy to edit, especially as more
      test cases are added. This patch removes the original tests.json
      file in favour of individual ones broken down by category.
      Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0923edf4