All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Parri <andrea.parri@amarulasolutions.com>
To: Ingo Molnar <mingo@kernel.org>, Jonathan Corbet <corbet@lwn.net>
Cc: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-arch@vger.kernel.org,
	Andrea Parri <andrea.parri@amarulasolutions.com>
Subject: [RFC PATCH 0/3] Documentation/features: Provide and apply "features-refresh.sh"
Date: Tue,  3 Apr 2018 18:55:48 +0200	[thread overview]
Message-ID: <1522774551-9503-1-git-send-email-andrea.parri@amarulasolutions.com> (raw)

In Ingo's words [1]:

  "[...]  what should be done instead is to write a script that refreshes
   all the arch-support.txt files in-place. [...]

   It's OK for the script to have various quirks for weirdly implemented
   features and exceptions: i.e. basically whenever it gets a feature wrong,
   we can just tweak the script with quirks to make it all work out of box.

   [...]  But in the end there should only be a single new script:

     Documentation/features/scripts/features-refresh.sh

   ... which operates on the arch-support.txt files and refreshes them in
   place, and which, after all the refreshes have been committed, should
   produce an empty 'git diff' result."

  "[...]  New features can then be added by basically just creating a
   header-only arch-support.txt file, such as:

     triton:~/tip/Documentation/features> cat foo/bar/arch-support.txt
     #
     # Feature name:          shiny new fubar kernel feature
     #         Kconfig:       ARCH_USE_FUBAR
     #         description:   arch supports the fubar feature
     #

   And running Documentation/features/scripts/features-refresh.sh would
   auto-generate the arch support matrix. [...]
 
   This way we soft- decouple the refreshing of the entries from the
   introduction of the features, while still making it all easy to keep
   sync and to extend."

This RFC presents a first attempt to implement such a feature/script, and
applies it script on top of Arnd's:

  git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git arch-removal

Patch 1/3 provides the "features-refresh.sh" script.  Patch 2/3 removes the
"BPF-JIT" feature file and it creates header-only files for "cBPF-JIT" and
"eBPF-JIT".  Patch 3/3 presents the results of running the script; this run
also printed to standard output the following warnings:

  WARNING: '__HAVE_ARCH_STRNCASECMP' is not a valid Kconfig
  WARNING: 'Optimized asm/rwsem.h' is not a valid Kconfig
  WARNING: '!ARCH_USES_GETTIMEOFFSET' is not a valid Kconfig
  WARNING: '__HAVE_ARCH_PTE_SPECIAL' is not a valid Kconfig

(I'm sending these patches with empty commit messagges, for early feedback:
 I'll fill in these messages in subsequent versions if this makes sense...)

Cheers,
  Andrea

Andrea Parri (3):
  Documentation/features: Add script that refreshes the arch support
    status files in place
  Documentation/features/core: Add arch support status files for
    'cBPF-JIT' and 'eBPF-JIT'
  Documentation/features: Refresh and auto-generate the arch support
    status files in place

 .../features/core/BPF-JIT/arch-support.txt         | 31 ------------
 .../features/core/cBPF-JIT/arch-support.txt        | 32 +++++++++++++
 .../features/core/eBPF-JIT/arch-support.txt        | 32 +++++++++++++
 .../core/generic-idle-thread/arch-support.txt      |  3 +-
 .../features/core/jump-labels/arch-support.txt     |  1 +
 .../features/core/tracehook/arch-support.txt       |  1 +
 .../features/debug/KASAN/arch-support.txt          |  3 +-
 .../debug/gcov-profile-all/arch-support.txt        |  1 +
 Documentation/features/debug/kgdb/arch-support.txt |  3 +-
 .../debug/kprobes-on-ftrace/arch-support.txt       |  1 +
 .../features/debug/kprobes/arch-support.txt        |  3 +-
 .../features/debug/kretprobes/arch-support.txt     |  3 +-
 .../features/debug/optprobes/arch-support.txt      |  3 +-
 .../features/debug/stackprotector/arch-support.txt |  1 +
 .../features/debug/uprobes/arch-support.txt        |  5 +-
 .../debug/user-ret-profiler/arch-support.txt       |  1 +
 .../features/io/dma-api-debug/arch-support.txt     |  1 +
 .../features/io/dma-contiguous/arch-support.txt    |  3 +-
 .../features/io/sg-chain/arch-support.txt          |  1 +
 .../features/lib/strncasecmp/arch-support.txt      |  1 +
 .../locking/cmpxchg-local/arch-support.txt         |  3 +-
 .../features/locking/lockdep/arch-support.txt      |  3 +-
 .../locking/queued-rwlocks/arch-support.txt        |  9 ++--
 .../locking/queued-spinlocks/arch-support.txt      |  7 +--
 .../locking/rwsem-optimized/arch-support.txt       |  1 +
 .../features/perf/kprobes-event/arch-support.txt   |  5 +-
 .../features/perf/perf-regs/arch-support.txt       |  3 +-
 .../features/perf/perf-stackdump/arch-support.txt  |  3 +-
 .../sched/membarrier-sync-core/arch-support.txt    |  1 +
 .../features/sched/numa-balancing/arch-support.txt |  5 +-
 Documentation/features/scripts/features-refresh.sh | 55 ++++++++++++++++++++++
 .../seccomp/seccomp-filter/arch-support.txt        |  5 +-
 .../time/arch-tick-broadcast/arch-support.txt      |  3 +-
 .../features/time/clockevents/arch-support.txt     |  3 +-
 .../time/context-tracking/arch-support.txt         |  1 +
 .../features/time/irq-time-acct/arch-support.txt   |  3 +-
 .../time/modern-timekeeping/arch-support.txt       |  1 +
 .../features/time/virt-cpuacct/arch-support.txt    |  1 +
 .../features/vm/ELF-ASLR/arch-support.txt          |  3 +-
 .../features/vm/PG_uncached/arch-support.txt       |  1 +
 Documentation/features/vm/THP/arch-support.txt     |  1 +
 Documentation/features/vm/TLB/arch-support.txt     |  1 +
 .../features/vm/huge-vmap/arch-support.txt         |  1 +
 .../features/vm/ioremap_prot/arch-support.txt      |  1 +
 .../features/vm/numa-memblock/arch-support.txt     |  3 +-
 .../features/vm/pte_special/arch-support.txt       |  1 +
 46 files changed, 192 insertions(+), 62 deletions(-)
 delete mode 100644 Documentation/features/core/BPF-JIT/arch-support.txt
 create mode 100644 Documentation/features/core/cBPF-JIT/arch-support.txt
 create mode 100644 Documentation/features/core/eBPF-JIT/arch-support.txt
 create mode 100755 Documentation/features/scripts/features-refresh.sh

-- 
2.7.4

WARNING: multiple messages have this Message-ID (diff)
From: Andrea Parri <andrea.parri@amarulasolutions.com>
To: Ingo Molnar <mingo@kernel.org>, Jonathan Corbet <corbet@lwn.net>
Cc: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-arch@vger.kernel.org,
	Andrea Parri <andrea.parri@amarulasolutions.com>
Subject: [RFC PATCH 0/3] Documentation/features: Provide and apply "features-refresh.sh"
Date: Tue,  3 Apr 2018 18:55:48 +0200	[thread overview]
Message-ID: <1522774551-9503-1-git-send-email-andrea.parri@amarulasolutions.com> (raw)

In Ingo's words [1]:

  "[...]  what should be done instead is to write a script that refreshes
   all the arch-support.txt files in-place. [...]

   It's OK for the script to have various quirks for weirdly implemented
   features and exceptions: i.e. basically whenever it gets a feature wrong,
   we can just tweak the script with quirks to make it all work out of box.

   [...]  But in the end there should only be a single new script:

     Documentation/features/scripts/features-refresh.sh

   ... which operates on the arch-support.txt files and refreshes them in
   place, and which, after all the refreshes have been committed, should
   produce an empty 'git diff' result."

  "[...]  New features can then be added by basically just creating a
   header-only arch-support.txt file, such as:

     triton:~/tip/Documentation/features> cat foo/bar/arch-support.txt
     #
     # Feature name:          shiny new fubar kernel feature
     #         Kconfig:       ARCH_USE_FUBAR
     #         description:   arch supports the fubar feature
     #

   And running Documentation/features/scripts/features-refresh.sh would
   auto-generate the arch support matrix. [...]
 
   This way we soft- decouple the refreshing of the entries from the
   introduction of the features, while still making it all easy to keep
   sync and to extend."

This RFC presents a first attempt to implement such a feature/script, and
applies it script on top of Arnd's:

  git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git arch-removal

Patch 1/3 provides the "features-refresh.sh" script.  Patch 2/3 removes the
"BPF-JIT" feature file and it creates header-only files for "cBPF-JIT" and
"eBPF-JIT".  Patch 3/3 presents the results of running the script; this run
also printed to standard output the following warnings:

  WARNING: '__HAVE_ARCH_STRNCASECMP' is not a valid Kconfig
  WARNING: 'Optimized asm/rwsem.h' is not a valid Kconfig
  WARNING: '!ARCH_USES_GETTIMEOFFSET' is not a valid Kconfig
  WARNING: '__HAVE_ARCH_PTE_SPECIAL' is not a valid Kconfig

(I'm sending these patches with empty commit messagges, for early feedback:
 I'll fill in these messages in subsequent versions if this makes sense...)

Cheers,
  Andrea

Andrea Parri (3):
  Documentation/features: Add script that refreshes the arch support
    status files in place
  Documentation/features/core: Add arch support status files for
    'cBPF-JIT' and 'eBPF-JIT'
  Documentation/features: Refresh and auto-generate the arch support
    status files in place

 .../features/core/BPF-JIT/arch-support.txt         | 31 ------------
 .../features/core/cBPF-JIT/arch-support.txt        | 32 +++++++++++++
 .../features/core/eBPF-JIT/arch-support.txt        | 32 +++++++++++++
 .../core/generic-idle-thread/arch-support.txt      |  3 +-
 .../features/core/jump-labels/arch-support.txt     |  1 +
 .../features/core/tracehook/arch-support.txt       |  1 +
 .../features/debug/KASAN/arch-support.txt          |  3 +-
 .../debug/gcov-profile-all/arch-support.txt        |  1 +
 Documentation/features/debug/kgdb/arch-support.txt |  3 +-
 .../debug/kprobes-on-ftrace/arch-support.txt       |  1 +
 .../features/debug/kprobes/arch-support.txt        |  3 +-
 .../features/debug/kretprobes/arch-support.txt     |  3 +-
 .../features/debug/optprobes/arch-support.txt      |  3 +-
 .../features/debug/stackprotector/arch-support.txt |  1 +
 .../features/debug/uprobes/arch-support.txt        |  5 +-
 .../debug/user-ret-profiler/arch-support.txt       |  1 +
 .../features/io/dma-api-debug/arch-support.txt     |  1 +
 .../features/io/dma-contiguous/arch-support.txt    |  3 +-
 .../features/io/sg-chain/arch-support.txt          |  1 +
 .../features/lib/strncasecmp/arch-support.txt      |  1 +
 .../locking/cmpxchg-local/arch-support.txt         |  3 +-
 .../features/locking/lockdep/arch-support.txt      |  3 +-
 .../locking/queued-rwlocks/arch-support.txt        |  9 ++--
 .../locking/queued-spinlocks/arch-support.txt      |  7 +--
 .../locking/rwsem-optimized/arch-support.txt       |  1 +
 .../features/perf/kprobes-event/arch-support.txt   |  5 +-
 .../features/perf/perf-regs/arch-support.txt       |  3 +-
 .../features/perf/perf-stackdump/arch-support.txt  |  3 +-
 .../sched/membarrier-sync-core/arch-support.txt    |  1 +
 .../features/sched/numa-balancing/arch-support.txt |  5 +-
 Documentation/features/scripts/features-refresh.sh | 55 ++++++++++++++++++++++
 .../seccomp/seccomp-filter/arch-support.txt        |  5 +-
 .../time/arch-tick-broadcast/arch-support.txt      |  3 +-
 .../features/time/clockevents/arch-support.txt     |  3 +-
 .../time/context-tracking/arch-support.txt         |  1 +
 .../features/time/irq-time-acct/arch-support.txt   |  3 +-
 .../time/modern-timekeeping/arch-support.txt       |  1 +
 .../features/time/virt-cpuacct/arch-support.txt    |  1 +
 .../features/vm/ELF-ASLR/arch-support.txt          |  3 +-
 .../features/vm/PG_uncached/arch-support.txt       |  1 +
 Documentation/features/vm/THP/arch-support.txt     |  1 +
 Documentation/features/vm/TLB/arch-support.txt     |  1 +
 .../features/vm/huge-vmap/arch-support.txt         |  1 +
 .../features/vm/ioremap_prot/arch-support.txt      |  1 +
 .../features/vm/numa-memblock/arch-support.txt     |  3 +-
 .../features/vm/pte_special/arch-support.txt       |  1 +
 46 files changed, 192 insertions(+), 62 deletions(-)
 delete mode 100644 Documentation/features/core/BPF-JIT/arch-support.txt
 create mode 100644 Documentation/features/core/cBPF-JIT/arch-support.txt
 create mode 100644 Documentation/features/core/eBPF-JIT/arch-support.txt
 create mode 100755 Documentation/features/scripts/features-refresh.sh

-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2018-04-03 16:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-03 16:55 Andrea Parri [this message]
2018-04-03 16:55 ` [RFC PATCH 0/3] Documentation/features: Provide and apply "features-refresh.sh" Andrea Parri
2018-04-03 16:55 ` [PATCH 1/3] Documentation/features: Add script that refreshes the arch support status files in place Andrea Parri
2018-04-03 16:55   ` Andrea Parri
2018-04-03 16:55 ` [PATCH 2/3] Documentation/features/core: Add arch support status files for 'cBPF-JIT' and 'eBPF-JIT' Andrea Parri
2018-04-03 16:55   ` Andrea Parri
2018-04-03 16:55 ` [PATCH 3/3] Documentation/features: Refresh and auto-generate the arch support status files in place Andrea Parri
2018-04-03 16:55   ` Andrea Parri
2018-04-04  4:56 ` [RFC PATCH 0/3] Documentation/features: Provide and apply "features-refresh.sh" Ingo Molnar
2018-04-04  4:56   ` Ingo Molnar
2018-04-04 13:03   ` Andrea Parri
2018-04-04 13:03     ` Andrea Parri
2018-04-05 15:18     ` Ingo Molnar
2018-04-05 15:18       ` Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1522774551-9503-1-git-send-email-andrea.parri@amarulasolutions.com \
    --to=andrea.parri@amarulasolutions.com \
    --cc=corbet@lwn.net \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.