Skip to content
  1. Oct 18, 2017
    • 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
    • Henrik Austad's avatar
      net: export netdev_txq_to_tc to allow sch_mqprio to compile as module · 8a5f2166
      Henrik Austad authored
      In commit 32302902
      
       ("mqprio: Reserve last 32 classid values for HW
      traffic classes and misc IDs") sch_mqprio started using netdev_txq_to_tc
      to find the correct tc instead of dev->tc_to_txq[]
      
      However, when mqprio is compiled as a module, it cannot resolve the
      symbol, leading to this error:
      
           ERROR: "netdev_txq_to_tc" [net/sched/sch_mqprio.ko] undefined!
      
      This adds an EXPORT_SYMBOL() since the other user in the kernel
      (netif_set_xps_queue) is also EXPORT_SYMBOL() (and not _GPL) or in a
      sysfs-callback.
      
      Cc: Alexander Duyck <alexander.h.duyck@intel.com>
      Cc: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarHenrik Austad <haustad@cisco.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8a5f2166
  2. Oct 17, 2017
  3. Oct 16, 2017
    • David S. Miller's avatar
      Merge tag 'mlx5-updates-2017-10-11' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux · af28f6f2
      David S. Miller authored
      
      
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2017-10-11: IPoIB Multi Pkey support
      
      This series provides the support for IPoIB Multi Pkey.
      InfiniBand Pkeys are the equivalent of Ethernet vlans.
      Currently IPoIB device driver supports only default Pkey and IPoIB Pkey child
      interfaces are not supported with IPoIB offloads mode, this series will add
      the support for that by allowing creating mlx5 multiple IPoIB netdevices with
      a non-default Pkey.
      
      mlx5 IPoIB Pkey child interface is smaller version of mlx5i IPoIB interfaces and shares
      most of its resources with the parent IPoIB interface, namely RX steering and ring
      queue resources.
      
      The only mlx5 resources a child Pkey interface will be creating are the TX rings,
      since they should be assigned to a specific Pkey.
      
      mlx5i Pkey netdev is implemented via new mlx5e netdev profile implemented in
      mlx5/core/ipoib/ipoib_vlan.c.
      
      The series starts with a refactoring of mlx5e PTP and mlx5 clock implementation
      to move the code to be part of mlx5 core rather than mlx5e netdevice, in order to
      make mlx5 clock and PTP registration part of the core to be shared with mlx5e
      master Ethernet netdev/IPoIB parent netdev and mlx5_ib in the near future.
      
      Add the support for attaching multiple underlay QPs for the different Pkeys
      in mlx5 core RX steering.
      
      Add Pkey index to rdma_netdev to add the ability to set PKEY index to lower
      IPoIB offload netdev.
      
      Use hash-table to map between DQPN (Destination QP number) to child netdev
      for the IPoIB parent netdev to forward RX packets to the corresponding
      child Pkey netdev, since the RX rings are shared.
      
      The reset of the series adds the ipoib child Pkey: mlx5e netdev profile,
      netdev nods implementation and minimal set of ethtool callbacks.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      af28f6f2
  4. Oct 15, 2017
    • 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