1. 26 6月, 2019 8 次提交
  2. 25 6月, 2019 8 次提交
  3. 24 6月, 2019 7 次提交
    • V
      mlxsw: core: Add support for negative temperature readout · f485cc36
      Vadim Pasternak 提交于
      Extend macros MLXSW_REG_MTMP_TEMP_TO_MC() to allow support of negative
      temperature readout, since chip and others thermal components are
      capable of operating within the negative temperature.
      With no such support negative temperature will be consider as very high
      temperature and it will cause wrong readout and thermal shutdown.
      For negative values 2`s complement is used.
      Tested in chamber.
      Example of chip ambient temperature readout with chamber temperature:
      -10 Celsius:
      temp1:             -6.0C  (highest =  -5.0C)
      -5 Celsius:
      temp1:             -1.0C  (highest =  -1.0C)
      
      v2 (Andrew Lunn):
      * Replace '%u' with '%d' in mlxsw_hwmon_module_temp_show()
      Signed-off-by: NVadim Pasternak <vadimp@mellanox.com>
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f485cc36
    • V
      mlxsw: core: Add the hottest thermal zone detection · 6f73862f
      Vadim Pasternak 提交于
      When multiple sensors are mapped to the same cooling device, the
      cooling device should be set according the worst sensor from the
      sensors associated with this cooling device.
      
      Provide the hottest thermal zone detection and enforce cooling device
      to follow the temperature trends of the hottest zone only.
      Prevent competition for the cooling device control from others zones,
      by "stable trend" indication. A cooling device will not perform any
      actions associated with a zone with a "stable trend".
      
      When other thermal zone is detected as a hottest, a cooling device is
      to be switched to following temperature trends of new hottest zone.
      
      Thermal zone score is represented by 32 bits unsigned integer and
      calculated according to the next formula:
      For T < TZ<t><i>, where t from {normal trip = 0, high trip = 1, hot
      trip = 2, critical = 3}:
      TZ<i> score = (T + (TZ<t><i> - T) / 2) / (TZ<t><i> - T) * 256 ** j;
      Highest thermal zone score s is set as MAX(TZ<i>score);
      Following this formula, if TZ<i> is in trip point higher than TZ<k>,
      the higher score is to be always assigned to TZ<i>.
      
      For two thermal zones located at the same kind of trip point, the higher
      score will be assigned to the zone which is closer to the next trip
      point. Thus, the highest score will always be assigned objectively to
      the hottest thermal zone.
      
      All the thermal zones initially are to be configured with mode
      "enabled" with the "step_wise" governor.
      Signed-off-by: NVadim Pasternak <vadimp@mellanox.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6f73862f
    • V
      mlxsw: core: Extend thermal core with per inter-connect device thermal zones · f14f4e62
      Vadim Pasternak 提交于
      Add a dedicated thermal zone for each inter-connect device. The
      current temperature is obtained from inter-connect temperature sensor
      and the default trip points are set to the same values as default ASIC
      trip points. These settings could be changed from the user space.
      A cooling device (fan) is bound to all inter-connect devices.
      Signed-off-by: NVadim Pasternak <vadimp@mellanox.com>
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f14f4e62
    • K
      net: ethernet: ti: cpsw: Fix suspend/resume break · 2f9b0d93
      Keerthy 提交于
      Commit bfe59032 ("net: ethernet:
      ti: cpsw: use cpsw as drv data")changes
      the driver data to struct cpsw_common *cpsw. This is done
      only in probe/remove but the suspend/resume functions are
      still left with struct net_device *ndev. Hence fix both
      suspend & resume also to fetch the updated driver data.
      
      Fixes: bfe59032 ("net: ethernet: ti: cpsw: use cpsw as drv data")
      Signed-off-by: NKeerthy <j-keerthy@ti.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2f9b0d93
    • X
      hinic: implement the statistical interface of ethtool · e54fbbdf
      Xue Chaojing 提交于
      This patch implement the statistical interface of ethtool, user can use
      ethtool -S to show hinic statistics.
      Signed-off-by: NXue Chaojing <xuechaojing@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e54fbbdf
    • W
      ipv6: convert major tx path to use RT6_LOOKUP_F_DST_NOREF · 7d9e5f42
      Wei Wang 提交于
      For tx path, in most cases, we still have to take refcnt on the dst
      cause the caller is caching the dst somewhere. But it still is
      beneficial to make use of RT6_LOOKUP_F_DST_NOREF flag while doing the
      route lookup. It is cause this flag prevents manipulating refcnt on
      net->ipv6.ip6_null_entry when doing fib6_rule_lookup() to traverse each
      routing table. The null_entry is a shared object and constant updates on
      it cause false sharing.
      
      We converted the current major lookup function ip6_route_output_flags()
      to make use of RT6_LOOKUP_F_DST_NOREF.
      
      Together with the change in the rx path, we see noticable performance
      boost:
      I ran synflood tests between 2 hosts under the same switch. Both hosts
      have 20G mlx NIC, and 8 tx/rx queues.
      Sender sends pure SYN flood with random src IPs and ports using trafgen.
      Receiver has a simple TCP listener on the target port.
      Both hosts have multiple custom rules:
      - For incoming packets, only local table is traversed.
      - For outgoing packets, 3 tables are traversed to find the route.
      The packet processing rate on the receiver is as follows:
      - Before the fix: 3.78Mpps
      - After the fix:  5.50Mpps
      Signed-off-by: NWei Wang <weiwan@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7d9e5f42
    • R
      net: dsa: mv88e6xxx: introduce helpers for handling chip->reg_lock · c9acece0
      Rasmus Villemoes 提交于
      This is a no-op that simply moves all locking and unlocking of
      ->reg_lock into trivial helpers. I did that to be able to easily add
      some ad hoc instrumentation to those helpers to get some information
      on contention and hold times of the mutex. Perhaps others want to do
      something similar at some point, so this frees them from doing the
      'sed -i' yoga, and have a much smaller 'git diff' while fiddling.
      Signed-off-by: NRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Reviewed-by: NVivien Didelot <vivien.didelot@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c9acece0
  4. 23 6月, 2019 5 次提交
  5. 22 6月, 2019 1 次提交
  6. 20 6月, 2019 3 次提交
  7. 19 6月, 2019 8 次提交