All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [net-next, v4, 05/11] ethtool: add a new command for getting PHC virtual clocks
@ 2021-06-25 16:22 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2021-06-25 16:22 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 2479 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210625093513.38524-6-yangbo.lu@nxp.com>
References: <20210625093513.38524-6-yangbo.lu@nxp.com>
TO: Yangbo Lu <yangbo.lu@nxp.com>
TO: netdev(a)vger.kernel.org
CC: Yangbo Lu <yangbo.lu@nxp.com>
CC: linux-kernel(a)vger.kernel.org
CC: linux-kselftest(a)vger.kernel.org
CC: mptcp(a)lists.linux.dev
CC: Richard Cochran <richardcochran@gmail.com>
CC: "David S . Miller" <davem@davemloft.net>
CC: Jakub Kicinski <kuba@kernel.org>
CC: Mat Martineau <mathew.j.martineau@linux.intel.com>
CC: Matthieu Baerts <matthieu.baerts@tessares.net>

Hi Yangbo,

I love your patch! Perhaps something to improve:

[auto build test WARNING on 19938bafa7ae8fc0a4a2c1c1430abb1a04668da1]

url:    https://github.com/0day-ci/linux/commits/Yangbo-Lu/ptp-support-virtual-clocks-and-timestamping/20210625-172554
base:   19938bafa7ae8fc0a4a2c1c1430abb1a04668da1
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: x86_64-randconfig-b001-20210625 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9ca0171a9ffdef5fdb1511d197a3fd72490362de)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # apt-get install iwyu # include-what-you-use
        # https://github.com/0day-ci/linux/commit/d255612c40740890b1e7f798227468d1cdf93bb6
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Yangbo-Lu/ptp-support-virtual-clocks-and-timestamping/20210625-172554
        git checkout d255612c40740890b1e7f798227468d1cdf93bb6
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross C=1 CHECK=iwyu ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


iwyu warnings: (new ones prefixed by >>)
>> net/ethtool/phc_vclocks.c:6:1: iwyu: warning: superfluous #include "common.h"

vim +6 net/ethtool/phc_vclocks.c

d255612c407408 Yangbo Lu 2021-06-25 @6  #include "common.h"
d255612c407408 Yangbo Lu 2021-06-25  7  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 41689 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread
* [net-next, v4, 00/11] ptp: support virtual clocks and timestamping
@ 2021-06-25  9:35 Yangbo Lu
  2021-06-25  9:35 ` [net-next, v4, 05/11] ethtool: add a new command for getting PHC virtual clocks Yangbo Lu
  0 siblings, 1 reply; 3+ messages in thread
From: Yangbo Lu @ 2021-06-25  9:35 UTC (permalink / raw)
  To: netdev
  Cc: Yangbo Lu, linux-kernel, linux-kselftest, mptcp, Richard Cochran,
	David S . Miller, Jakub Kicinski, Mat Martineau, Matthieu Baerts,
	Shuah Khan, Michal Kubecek, Florian Fainelli, Andrew Lunn,
	Rui Sousa, Sebastien Laveze

Current PTP driver exposes one PTP device to user which binds network
interface/interfaces to provide timestamping. Actually we have a way
utilizing timecounter/cyclecounter to virtualize any number of PTP
clocks based on a same free running physical clock for using.
The purpose of having multiple PTP virtual clocks is for user space
to directly/easily use them for multiple domains synchronization.

user
space:     ^                                  ^
           | SO_TIMESTAMPING new flag:        | Packets with
           | SOF_TIMESTAMPING_BIND_PHC        | TX/RX HW timestamps
           v                                  v
         +--------------------------------------------+
sock:    |     sock (new member sk_bind_phc)          |
         +--------------------------------------------+
           ^                                  ^
           | ethtool_get_phc_vclocks          | Convert HW timestamps
           |                                  | to sk_bind_phc
           v                                  v
         +--------------+--------------+--------------+
vclock:  | ptp1         | ptp2         | ptpN         |
         +--------------+--------------+--------------+
pclock:  |             ptp0 free running              |
         +--------------------------------------------+

The block diagram may explain how it works. Besides the PTP virtual
clocks, the packet HW timestamp converting to the bound PHC is also
done in sock driver. For user space, PTP virtual clocks can be
created via sysfs, and extended SO_TIMESTAMPING API (new flag
SOF_TIMESTAMPING_BIND_PHC) can be used to bind one PTP virtual clock
for timestamping.

The test tool timestamping.c (together with linuxptp phc_ctl tool) can
be used to verify:

  # echo 4 > /sys/class/ptp/ptp0/n_vclocks
  [  129.399472] ptp ptp0: new virtual clock ptp2
  [  129.404234] ptp ptp0: new virtual clock ptp3
  [  129.409532] ptp ptp0: new virtual clock ptp4
  [  129.413942] ptp ptp0: new virtual clock ptp5
  [  129.418257] ptp ptp0: guarantee physical clock free running
  #
  # phc_ctl /dev/ptp2 set 10000
  # phc_ctl /dev/ptp3 set 20000
  #
  # timestamping eno0 2 SOF_TIMESTAMPING_TX_HARDWARE SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_BIND_PHC
  # timestamping eno0 2 SOF_TIMESTAMPING_RX_HARDWARE SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_BIND_PHC
  # timestamping eno0 3 SOF_TIMESTAMPING_TX_HARDWARE SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_BIND_PHC
  # timestamping eno0 3 SOF_TIMESTAMPING_RX_HARDWARE SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_BIND_PHC

Changes for v2:
	- Converted to num_vclocks for creating virtual clocks.
	- Guranteed physical clock free running when using virtual
	  clocks.
	- Fixed build warning.
	- Updated copyright.
Changes for v3:
	- Supported PTP virtual clock in default in PTP driver.
	- Protected concurrency of ptp->num_vclocks accessing.
	- Supported PHC vclocks query via ethtool.
	- Extended SO_TIMESTAMPING API for PHC binding.
	- Converted HW timestamps to PHC bound, instead of previous
	  binding domain value to PHC idea.
	- Other minor fixes.
Changes for v4:
	- Used do_aux_work callback for vclock refreshing instead.
	- Used unsigned int for vclocks number, and max_vclocks
	  for limitiation.
	- Fixed mutex locking.
	- Dynamically allocated memory for vclock index storage.
	- Removed ethtool ioctl command for vclocks getting.
	- Updated doc for ethtool phc vclocks get.
	- Converted to mptcp_setsockopt_sol_socket_timestamping().
	- Passed so_timestamping for sock_set_timestamping.
	- Fixed checkpatch/build.
	- Other minor fixed.

Yangbo Lu (11):
  ptp: add ptp virtual clock driver framework
  ptp: support ptp physical/virtual clocks conversion
  ptp: track available ptp vclocks information
  ptp: add kernel API ptp_get_vclocks_index()
  ethtool: add a new command for getting PHC virtual clocks
  ptp: add kernel API ptp_convert_timestamp()
  mptcp: setsockopt: convert to
    mptcp_setsockopt_sol_socket_timestamping()
  net: sock: extend SO_TIMESTAMPING for PHC binding
  net: socket: support hardware timestamp conversion to PHC bound
  selftests/net: timestamping: support binding PHC
  MAINTAINERS: add entry for PTP virtual clock driver

 Documentation/ABI/testing/sysfs-ptp          |  20 ++
 Documentation/networking/ethtool-netlink.rst |  22 ++
 MAINTAINERS                                  |   7 +
 drivers/ptp/Makefile                         |   2 +-
 drivers/ptp/ptp_clock.c                      |  41 +++-
 drivers/ptp/ptp_private.h                    |  39 ++++
 drivers/ptp/ptp_sysfs.c                      | 160 ++++++++++++++
 drivers/ptp/ptp_vclock.c                     | 219 +++++++++++++++++++
 include/linux/ethtool.h                      |  10 +
 include/linux/ptp_clock_kernel.h             |  31 ++-
 include/net/sock.h                           |   8 +-
 include/uapi/linux/ethtool_netlink.h         |  15 ++
 include/uapi/linux/net_tstamp.h              |  17 +-
 net/core/sock.c                              |  65 +++++-
 net/ethtool/Makefile                         |   2 +-
 net/ethtool/common.c                         |  14 ++
 net/ethtool/netlink.c                        |  10 +
 net/ethtool/netlink.h                        |   2 +
 net/ethtool/phc_vclocks.c                    |  94 ++++++++
 net/mptcp/sockopt.c                          |  69 ++++--
 net/socket.c                                 |  19 +-
 tools/testing/selftests/net/timestamping.c   |  62 ++++--
 22 files changed, 875 insertions(+), 53 deletions(-)
 create mode 100644 drivers/ptp/ptp_vclock.c
 create mode 100644 net/ethtool/phc_vclocks.c


base-commit: 19938bafa7ae8fc0a4a2c1c1430abb1a04668da1
-- 
2.25.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-08-29 17:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-25 16:22 [net-next, v4, 05/11] ethtool: add a new command for getting PHC virtual clocks kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-06-25  9:35 [net-next, v4, 00/11] ptp: support virtual clocks and timestamping Yangbo Lu
2021-06-25  9:35 ` [net-next, v4, 05/11] ethtool: add a new command for getting PHC virtual clocks Yangbo Lu
2021-08-29 17:04   ` Michal Kubecek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.