ACK/Cmnt: [SRU][J:linux-bluefield][PULL v3] Add DPLL and syncE support

Bartlomiej Zolnierkiewicz bartlomiej.zolnierkiewicz at canonical.com
Wed Feb 28 14:49:59 UTC 2024


Acked-by: Bartlomiej Zolnierkiewicz <bartlomiej.zolnierkiewicz at canonical.com>

Small remark here, this patchset seems to affect the error returned
through genetlink for some unsupported commands that also have an
hdr->reserved set.

(Due to this change from the upstream commit 9c5d03d3

+       if (hdr->cmd >= family->resv_start_op && hdr->reserved)
+               return -EINVAL;
+
        if (genl_get_cmd(hdr->cmd, family, &op))
                return -EOPNOTSUPP;

and bluefield kernel, being 5.15 based, not supporting all commands
for some families that the upstream kernel at commit 9c5d03d3
supports, please refer to "UBUNTU: SAUCE: fix build error after
resv_start_op" for details).

In specific for commands that were introduced to the upstream kernel
between 5.15 and upstream commit 9c5d03d3 (and also have hdr->reserved
set) bluefield kernel will return -EINVAL instead of -EOPNOTSUPP (as
will be done by upstream kernels). However since the upstream kernel
at commit 9c5d03d3 also does this (for newer unsupported commands)
there is probably not much to worry about.

--
Best regards,
Bartlomiej

On Thu, Feb 22, 2024 at 4:49 PM William Tu <witu at nvidia.com> wrote:
>
> BugLink: https://bugs.launchpad.net/bugs/2053155
>
> Synchronous Ethernet, or SyncE, is an ITU-T standard for computer
> networking that facilitates the transference of clock signals
> over the Ethernet physical layer. It is used to pass timing from
> node to node and is particularly important for mobile networks.
>
> The DPLL subsystem in the Linux kernel provides a general interface
> for configuring devices that use any kind of Digital PLL.
> This subsystem is designed to manage the clock signal synchronization
> of a device with an external clock signal.
>
> v2->v3:
>         add witu to sob list
>         Acked-by: Tim Gardner <tim.gardner at canonical.com>
> v1->v2:
>         change branch name from mn-canonical-tony-pr to master-next-dpll
> ----------------------------------------------------------------
> The following changes since commit bf6a2ae5d15987e7c02493442040f4e51092cb77:
>
>   UBUNTU: Ubuntu-bluefield-5.15.0-1036.38 (2024-02-14 11:15:34 +0100)
>
> are available in the Git repository at:
>
>   git+ssh://wtu@git.launchpad.net/~wtu/ubuntu/+source/linux-bluefield master-next-dpll
>
> for you to fetch changes up to 168aa63360115e0b4e64e026bdec4d1f8851fae5:
>
>   UBUNTU: SAUCE: broadcom: add DPLL dependency (2024-02-22 15:41:12 +0000)
>
> ----------------------------------------------------------------
> Arkadiusz Kubalewski (4):
>       dpll: docs: add support for pin signal phase offset/adjust
>       dpll: spec: add support for pin-dpll signal phase offset/adjust
>       dpll: netlink/core: add support for pin-dpll signal phase offset/adjust
>       dpll: netlink/core: change pin frequency set behavior
>
> Bagas Sanjaya (2):
>       Documentation: dpll: Fix code blocks
>       Documentation: dpll: wrap DPLL_CMD_PIN_GET output in a code block
>
> Jakub Kicinski (20):
>       genetlink: fix kdoc warnings
>       genetlink: start to validate reserved header bytes
>       genetlink: reject use of nlmsg_flags for new commands
>       genetlink: introduce split op representation
>       netlink: factor out extack composition
>       netlink: add support for ext_ack missing attributes
>       netlink: add helpers for extack attr presence checking
>       genetlink: refactor the cmd <> policy mapping dump
>       genetlink: piggy back on resv_op to default to a reject policy
>       genetlink: move the private fields in struct genl_family
>       genetlink: load policy based on validation flags
>       genetlink: check for callback type at op load time
>       genetlink: add policies for both doit and dumpit in ctrl_dumppolicy_start()
>       genetlink: support split policies in ctrl_dumppolicy_put_op()
>       genetlink: inline genl_get_cmd()
>       genetlink: limit the use of validation workarounds to old ops
>       genetlink: add iterator for walking family ops
>       genetlink: use iterator in the op to policy map dumping
>       genetlink: inline old iteration helpers
>       genetlink: allow families to use split ops directly
>
> Jiri Pirko (3):
>       netdev: expose DPLL pin handle for netdevice
>       netlink: specs: remove redundant type keys from attributes in subsets
>       dpll: remove leftover mode_supported() op and use mode_get() instead
>
> Tony Duan (1):
>       UBUNTU: SAUCE: fix build error after resv_start_op
>
> Vadim Fedorenko (4):
>       dpll: documentation on DPLL subsystem interface
>       dpll: spec: Add Netlink spec in YAML
>       dpll: core: Add DPLL framework base functions
>       dpll: netlink: Add DPLL framework base functions
>
> William Tu (2):
>       UBUNTU: [Config] bluefield: add CONFIG_DPLL
>       UBUNTU: SAUCE: broadcom: add DPLL dependency
>
> xu xin (1):
>       kernel: make taskstats available from all net namespaces
>
>  Documentation/driver-api/dpll.rst        |  551 ++++++++++++++++++++++++++++
>  Documentation/driver-api/index.rst       |    1 +
>  Documentation/netlink/specs/dpll.yaml    |  510 ++++++++++++++++++++++++++
>  MAINTAINERS                              |   11 +
>  debian.bluefield/config/annotations      |    1 +
>  drivers/Kconfig                          |    2 +
>  drivers/Makefile                         |    3 +
>  drivers/block/nbd.c                      |    1 +
>  drivers/dpll/Kconfig                     |    7 +
>  drivers/dpll/Makefile                    |    9 +
>  drivers/dpll/dpll_core.c                 |  799 ++++++++++++++++++++++++++++++++++++++++
>  drivers/dpll/dpll_core.h                 |   89 +++++
>  drivers/dpll/dpll_netlink.c              | 1427 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  drivers/dpll/dpll_netlink.h              |   13 +
>  drivers/dpll/dpll_nl.c                   |  164 +++++++++
>  drivers/dpll/dpll_nl.h                   |   51 +++
>  drivers/net/ethernet/broadcom/Kconfig    |    1 +
>  drivers/net/gtp.c                        |    1 +
>  drivers/net/ieee802154/mac802154_hwsim.c |    1 +
>  drivers/net/macsec.c                     |    1 +
>  drivers/net/team/team.c                  |    1 +
>  drivers/net/wireguard/netlink.c          |    1 +
>  drivers/net/wireless/mac80211_hwsim.c    |    1 +
>  drivers/target/target_core_user.c        |    1 +
>  drivers/thermal/thermal_netlink.c        |    1 +
>  drivers/vdpa/vdpa.c                      |    1 +
>  fs/cifs/netlink.c                        |    1 +
>  fs/dlm/netlink.c                         |    1 +
>  fs/ksmbd/transport_ipc.c                 |    1 +
>  include/linux/dpll.h                     |  167 +++++++++
>  include/linux/genl_magic_func.h          |    1 +
>  include/linux/netdevice.h                |   21 ++
>  include/linux/netlink.h                  |   24 ++
>  include/net/genetlink.h                  |  102 +++++-
>  include/uapi/linux/dpll.h                |  207 +++++++++++
>  include/uapi/linux/if_link.h             |    2 +-
>  include/uapi/linux/netlink.h             |    6 +
>  kernel/taskstats.c                       |    2 +
>  net/batman-adv/netlink.c                 |    7 +-
>  net/core/dev.c                           |   22 ++
>  net/core/devlink.c                       |    5 +-
>  net/core/drop_monitor.c                  |    5 +-
>  net/core/rtnetlink.c                     |   36 ++
>  net/ethtool/netlink.c                    |    1 +
>  net/hsr/hsr_netlink.c                    |    1 +
>  net/ieee802154/netlink.c                 |    1 +
>  net/ieee802154/nl802154.c                |   11 +-
>  net/ipv4/fou.c                           |    1 +
>  net/ipv4/tcp_metrics.c                   |    1 +
>  net/ipv6/ila/ila_main.c                  |    1 +
>  net/ipv6/ioam6.c                         |    1 +
>  net/ipv6/seg6.c                          |    1 +
>  net/l2tp/l2tp_netlink.c                  |    1 +
>  net/mptcp/pm_netlink.c                   |    1 +
>  net/ncsi/ncsi-netlink.c                  |    1 +
>  net/netfilter/ipvs/ip_vs_ctl.c           |    1 +
>  net/netlabel/netlabel_calipso.c          |    1 +
>  net/netlabel/netlabel_cipso_v4.c         |    1 +
>  net/netlabel/netlabel_mgmt.c             |    1 +
>  net/netlabel/netlabel_unlabeled.c        |    1 +
>  net/netlink/af_netlink.c                 |   97 +++--
>  net/netlink/genetlink.c                  |  523 +++++++++++++++++++++------
>  net/nfc/netlink.c                        |    1 +
>  net/openvswitch/conntrack.c              |    1 +
>  net/openvswitch/datapath.c               |    3 +
>  net/openvswitch/meter.c                  |    1 +
>  net/psample/psample.c                    |    1 +
>  net/smc/smc_netlink.c                    |    3 +-
>  net/smc/smc_pnet.c                       |    3 +-
>  net/tipc/netlink.c                       |    1 +
>  net/tipc/netlink_compat.c                |    1 +
>  net/wireless/nl80211.c                   |    7 +-
>  72 files changed, 4756 insertions(+), 172 deletions(-)
>  create mode 100644 Documentation/driver-api/dpll.rst
>  create mode 100644 Documentation/netlink/specs/dpll.yaml
>  create mode 100644 drivers/dpll/Kconfig
>  create mode 100644 drivers/dpll/Makefile
>  create mode 100644 drivers/dpll/dpll_core.c
>  create mode 100644 drivers/dpll/dpll_core.h
>  create mode 100644 drivers/dpll/dpll_netlink.c
>  create mode 100644 drivers/dpll/dpll_netlink.h
>  create mode 100644 drivers/dpll/dpll_nl.c
>  create mode 100644 drivers/dpll/dpll_nl.h
>  create mode 100644 include/linux/dpll.h
>  create mode 100644 include/uapi/linux/dpll.h
>



More information about the kernel-team mailing list