lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220818222742.1070935-1-jacob.e.keller@intel.com>
Date:   Thu, 18 Aug 2022 15:27:28 -0700
From:   Jacob Keller <jacob.e.keller@...el.com>
To:     netdev@...r.kernel.org
Cc:     Jacob Keller <jacob.e.keller@...el.com>,
        "K. Y. Srinivasan" <kys@...rosoft.com>,
        Haiyang Zhang <haiyangz@...rosoft.com>,
        Stephen Hemminger <sthemmin@...rosoft.com>,
        Wei Liu <wei.liu@...nel.org>, Dexuan Cui <decui@...rosoft.com>,
        Tom Lendacky <thomas.lendacky@....com>,
        Shyam Sundar S K <Shyam-sundar.S-k@....com>,
        "David S. Miller" <davem@...emloft.net>,
        Eric Dumazet <edumazet@...gle.com>,
        Jakub Kicinski <kuba@...nel.org>,
        Paolo Abeni <pabeni@...hat.com>,
        Siva Reddy Kallam <siva.kallam@...adcom.com>,
        Prashant Sreedharan <prashant@...adcom.com>,
        Michael Chan <mchan@...adcom.com>,
        Yisen Zhuang <yisen.zhuang@...wei.com>,
        Salil Mehta <salil.mehta@...wei.com>,
        Jesse Brandeburg <jesse.brandeburg@...el.com>,
        Tony Nguyen <anthony.l.nguyen@...el.com>,
        Tariq Toukan <tariqt@...dia.com>,
        Saeed Mahameed <saeedm@...dia.com>,
        Leon Romanovsky <leon@...nel.org>,
        Bryan Whitehead <bryan.whitehead@...rochip.com>,
        Sergey Shtylyov <s.shtylyov@....ru>,
        Giuseppe Cavallaro <peppe.cavallaro@...com>,
        Alexandre Torgue <alexandre.torgue@...s.st.com>,
        Jose Abreu <joabreu@...opsys.com>,
        Maxime Coquelin <mcoquelin.stm32@...il.com>,
        Richard Cochran <richardcochran@...il.com>,
        Vivek Thampi <vithampi@...are.com>,
        VMware PV-Drivers Reviewers <pv-drivers@...are.com>,
        Jie Wang <wangjie125@...wei.com>,
        Guangbin Huang <huangguangbin2@...wei.com>,
        Eran Ben Elisha <eranbe@...dia.com>,
        Aya Levin <ayal@...dia.com>,
        Cai Huoqing <cai.huoqing@...ux.dev>,
        Biju Das <biju.das.jz@...renesas.com>,
        Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com>,
        Phil Edworthy <phil.edworthy@...esas.com>,
        Jiasheng Jiang <jiasheng@...as.ac.cn>,
        "Gustavo A. R. Silva" <gustavoars@...nel.org>,
        Linus Walleij <linus.walleij@...aro.org>,
        Wan Jiabing <wanjiabing@...o.com>,
        Lv Ruyi <lv.ruyi@....com.cn>, Arnd Bergmann <arnd@...db.de>
Subject: [net-next 00/14] ptp: convert drivers to .adjfine

Many drivers implementing PTP have not yet migrated to the new .adjfine
frequency adjustment implementation.

A handful of these drivers use hardware with a simple increment value which
is adjusted by multiplying by the adjustment factor and then dividing by
1 billion. This calculation is very easy to convert to .adjfine, by simply
updating the divisor.

Introduce new helper functions, diff_by_scaled_ppm and adjust_by_scaled_ppm
which perform the most common calculations used by drivers for this purpose.

The adjust_by_scaled_ppm takes the base increment and scaled PPM value, and
calculates the new increment to use.

A few drivers need the difference and direction rather than a raw increment
value. The diff_by_scaled_ppm calculates the difference and returns true if
it should be a subtraction, false otherwise. This most closely aligns with
existing driver implementations.

I recently updated all of the Intel drivers to the same calculation which is
now factored out into the two helper functions. These drivers are all
migrated in one change with the introduction of the helper functions.

The other driver changes are separated out. I do not have access to the
hardware necessary to test these, so they've only been compile tested. The
conversion is straight forward, but I expect driver maintainers will want to
test these changes appropriately. I've done my best to Cc relevant
maintainers on the cover letter and the appropriate change.

With this applied, there are still a handful of remaining drivers which are
not yet converted including:

 * drivers/net/ethernet/broadcom/bnx2x
 * drivers/net/ethernet/broadcom/bnxt
 * drivers/net/ethernet/cavium/liquidio
 * drivers/net/ethernet/chelsio/cxgb4
 * drivers/net/ethernet/freescale
 * drivers/net/ethernet/qlogic/qed
 * drivers/net/ethernet/qlogic/qede
 * drivers/net/ethernet/sfc
 * drivers/net/ethernet/sfc/siena
 * drivers/net/ethernet/ti/am65-cpts.c
 * drivers/ptp/ptp_dte.c

These drivers use varying calculation methods which are not directly
compatible with the adjust_by_scaled_ppm method. I lack access to the
hardware and knowledge of its implementation to convert them directly to
using scaled parts per million. Instead, I plan to follow up this series
with one which converts the remaining drivers to .adjfine by using
scaled_ppm_to_ppb in their .adjfine implementation. This will then allow
dropping the .adjfreq interface from the ptp_clock_info interface.

Cc: "K. Y. Srinivasan" <kys@...rosoft.com>
Cc: Haiyang Zhang <haiyangz@...rosoft.com>
Cc: Stephen Hemminger <sthemmin@...rosoft.com>
Cc: Wei Liu <wei.liu@...nel.org>
Cc: Dexuan Cui <decui@...rosoft.com>
Cc: Tom Lendacky <thomas.lendacky@....com>
Cc: Shyam Sundar S K <Shyam-sundar.S-k@....com>
Cc: "David S. Miller" <davem@...emloft.net>
Cc: Eric Dumazet <edumazet@...gle.com>
Cc: Jakub Kicinski <kuba@...nel.org>
Cc: Paolo Abeni <pabeni@...hat.com>
Cc: Siva Reddy Kallam <siva.kallam@...adcom.com>
Cc: Prashant Sreedharan <prashant@...adcom.com>
Cc: Michael Chan <mchan@...adcom.com>
Cc: Yisen Zhuang <yisen.zhuang@...wei.com>
Cc: Salil Mehta <salil.mehta@...wei.com>
Cc: Jesse Brandeburg <jesse.brandeburg@...el.com>
Cc: Tony Nguyen <anthony.l.nguyen@...el.com>
Cc: Tariq Toukan <tariqt@...dia.com>
Cc: Saeed Mahameed <saeedm@...dia.com>
Cc: Leon Romanovsky <leon@...nel.org>
Cc: Bryan Whitehead <bryan.whitehead@...rochip.com>
Cc: Sergey Shtylyov <s.shtylyov@....ru>
Cc: Giuseppe Cavallaro <peppe.cavallaro@...com>
Cc: Alexandre Torgue <alexandre.torgue@...s.st.com>
Cc: Jose Abreu <joabreu@...opsys.com>
Cc: Maxime Coquelin <mcoquelin.stm32@...il.com>
Cc: Richard Cochran <richardcochran@...il.com>
Cc: Vivek Thampi <vithampi@...are.com>
Cc: VMware PV-Drivers Reviewers <pv-drivers@...are.com>
Cc: Jie Wang <wangjie125@...wei.com>
Cc: Jacob Keller <jacob.e.keller@...el.com>
Cc: Guangbin Huang <huangguangbin2@...wei.com>
Cc: Eran Ben Elisha <eranbe@...dia.com>
Cc: Aya Levin <ayal@...dia.com>
Cc: Cai Huoqing <cai.huoqing@...ux.dev>
Cc: Biju Das <biju.das.jz@...renesas.com>
Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com>
Cc: Phil Edworthy <phil.edworthy@...esas.com>
Cc: Jiasheng Jiang <jiasheng@...as.ac.cn>
Cc: "Gustavo A. R. Silva" <gustavoars@...nel.org>
Cc: Linus Walleij <linus.walleij@...aro.org>
Cc: Wan Jiabing <wanjiabing@...o.com>
Cc: Lv Ruyi <lv.ruyi@....com.cn>
Cc: Arnd Bergmann <arnd@...db.de>

Jacob Keller (14):
  ptp: add missing documentation for parameters
  ptp: introduce helpers to adjust by scaled parts per million
  drivers: convert unsupported .adjfreq to .adjfine
  ptp_phc: convert to .adjfine and ptp_adj_scaled_ppm
  ptp_ixp46x: convert to .adjfine and adjust_by_scaled_ppm
  ptp: tg3: convert to .adjfine and diff_by_scaled_ppm
  ptp: hclge: convert to .adjfine and adjust_by_scaled_ppm
  ptp: mlx4: convert to .adjfine and adjust_by_scaled_ppm
  ptp: mlx5: convert to .adjfine and adjust_by_scaled_ppm
  ptp: lan743x: convert to .adjfine and diff_by_scaled_ppm
  ptp: ravb: convert to .adjfine and adjust_by_scaled_ppm
  ptp: stmac: convert to .adjfine and adjust_by_scaled_ppm
  ptp: cpts: convert to .adjfine and adjust_by_scaled_ppm
  ptp: xgbe: convert to .adjfine and adjust_by_scaled_ppm

 drivers/hv/hv_util.c                          |  4 +-
 drivers/net/ethernet/amd/xgbe/xgbe-ptp.c      | 20 ++-----
 drivers/net/ethernet/broadcom/tg3.c           | 22 ++++----
 .../hisilicon/hns3/hns3pf/hclge_ptp.c         | 22 ++------
 drivers/net/ethernet/intel/e1000e/ptp.c       | 16 ++----
 drivers/net/ethernet/intel/i40e/i40e_ptp.c    | 17 ++----
 drivers/net/ethernet/intel/ice/ice_ptp.c      | 18 +------
 drivers/net/ethernet/intel/igb/igb_ptp.c      | 18 +------
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c  | 24 ++-------
 drivers/net/ethernet/mellanox/mlx4/en_clock.c | 25 ++++-----
 .../ethernet/mellanox/mlx5/core/lib/clock.c   | 22 +++-----
 drivers/net/ethernet/microchip/lan743x_ptp.c  | 28 ++++------
 drivers/net/ethernet/renesas/ravb_ptp.c       | 16 ++----
 .../net/ethernet/stmicro/stmmac/stmmac_ptp.c  | 23 +++-----
 drivers/net/ethernet/ti/cpts.c                | 21 +++-----
 drivers/net/ethernet/xscale/ptp_ixp46x.c      | 19 ++-----
 drivers/ptp/ptp_kvm_common.c                  |  4 +-
 drivers/ptp/ptp_pch.c                         | 19 ++-----
 drivers/ptp/ptp_vmw.c                         |  4 +-
 include/linux/ptp_clock_kernel.h              | 53 +++++++++++++++++++
 20 files changed, 143 insertions(+), 252 deletions(-)


base-commit: 9017462f006c4b686cb1e1e1a3a52ea8363076e6
-- 
2.37.1.208.ge72d93e88cb2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ