mbox series

[v4,0/7] coresight: syscfg: Extend configfs for config load

Message ID 20220704154249.11501-1-mike.leach@linaro.org (mailing list archive)
Headers show
Series coresight: syscfg: Extend configfs for config load | expand

Message

Mike Leach July 4, 2022, 3:42 p.m. UTC
This set extends the configfs support to allow loading and unloading of
configurations as binary files via configfs.

Additional attributes - load and unload are provided to in the
/config/cs-syscfg subsytem base group to implement the load functionality.

Routines to generate binary configuration files are supplied in
./tools/coresight.

Example generator and reader applications are provided.

Tools may be cross compiled or built for use on host system.

Documentation is updated to describe feature usage.

Changes since v3:
1) Rebase & tested on coresight/next - 5.19-rc3 - which includes the
fix patch for earlier configfs works.
2) Lockdep investigations resulted in re-design of some of the code
accessing configfs.
3) moved load and unload attributes to root of cs-syscfg. (Mathieu)
4) Additional minor fixes suggested by Mathieu.
5) Memory for configfs loaded and unloaded configurations is now
explicitly freed.
6) LOCKDEP nesting fix for configfs base code (fs/configfs/dir.c)

Changes since v2:
1) Rebased & tested on coresight/next - 5.18-rc2
2) Moved coresight config generator and reader programs from samples to
tools/coresight. Docs updated to match. (suggested by Mathieu)
3) userspace builds now use userspace headers from tools/...
4) Other minor fixes from Mathieu's review.

Changes since v1:
1) Rebased to coresight/next - 5.16-rc1 with previous coresight config
set applied.
2) Makefile.host fixed to default to all target.

Mike Leach (7):
  coresight: configfs: Update memory allocation / free for configfs
    elements
  coresight: configfs: Add in functionality for load via configfs
  coresight: configfs: Add in binary attributes to load files
  coresight: configfs: Modify config files to allow userspace use
  coresight: tools: Add config file write and reader tools
  Documentation: coresight: docs for config load via configfs
  configfs: Fix LOCKDEP nesting issues with fragment semaphores

 .../trace/coresight/coresight-config.rst      | 202 +++++-
 MAINTAINERS                                   |   1 +
 drivers/hwtracing/coresight/Makefile          |   2 +-
 .../coresight/coresight-config-file.c         | 583 ++++++++++++++++++
 .../coresight/coresight-config-file.h         | 139 +++++
 .../hwtracing/coresight/coresight-config.h    |  27 +
 .../coresight/coresight-syscfg-configfs.c     | 300 +++++++--
 .../coresight/coresight-syscfg-configfs.h     |   3 +
 .../hwtracing/coresight/coresight-syscfg.c    | 107 ++++
 .../hwtracing/coresight/coresight-syscfg.h    |   2 +
 fs/configfs/configfs_internal.h               |   3 +
 fs/configfs/dir.c                             |  45 ++
 tools/coresight/Makefile                      |  52 ++
 tools/coresight/coresight-cfg-bufw.c          | 309 ++++++++++
 tools/coresight/coresight-cfg-bufw.h          |  26 +
 tools/coresight/coresight-cfg-example1.c      |  62 ++
 tools/coresight/coresight-cfg-example2.c      |  95 +++
 tools/coresight/coresight-cfg-examples.h      |  22 +
 tools/coresight/coresight-cfg-file-gen.c      |  61 ++
 tools/coresight/coresight-cfg-file-read.c     | 227 +++++++
 tools/coresight/coresight-config-uapi.h       |  76 +++
 21 files changed, 2298 insertions(+), 46 deletions(-)
 create mode 100644 drivers/hwtracing/coresight/coresight-config-file.c
 create mode 100644 drivers/hwtracing/coresight/coresight-config-file.h
 create mode 100644 tools/coresight/Makefile
 create mode 100644 tools/coresight/coresight-cfg-bufw.c
 create mode 100644 tools/coresight/coresight-cfg-bufw.h
 create mode 100644 tools/coresight/coresight-cfg-example1.c
 create mode 100644 tools/coresight/coresight-cfg-example2.c
 create mode 100644 tools/coresight/coresight-cfg-examples.h
 create mode 100644 tools/coresight/coresight-cfg-file-gen.c
 create mode 100644 tools/coresight/coresight-cfg-file-read.c
 create mode 100644 tools/coresight/coresight-config-uapi.h