linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] RCU changes for v5.14
@ 2021-07-04 17:24 Paul E. McKenney
  2021-07-04 17:58 ` Paul E. McKenney
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Paul E. McKenney @ 2021-07-04 17:24 UTC (permalink / raw)
  To: torvalds; +Cc: mingo, linux-kernel, tglx, akpm, peterz, vbabka

Hello, Linus,

In a deviation from long-standing -tip tradition, please pull the latest
RCU git tree from:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git core-rcu-2021.07.04
  # HEAD: 641faf1b9064c270a476a424e60063bb05df3ee9: Merge branches 'bitmaprange.2021.05.10c', 'doc.2021.05.10c', 'fixes.2021.05.13a', 'kvfree_rcu.2021.05.10c', 'mmdumpobj.2021.05.10c', 'nocb.2021.05.12a', 'srcu.2021.05.12a', 'tasks.2021.05.18a' and 'torture.2021.05.10c' into HEAD (2021-05-18 10:56:19 -0700)

RCU changes for this cycle were:

o	Bitmap support for "all" as an alias for all bits.

o	Documentation updates.

o	Miscellaneous fixes, including some that overlap into mm and lockdep.

o	kvfree_rcu() updates.

o	mem_dump_obj() updates, with acks from one of the slab-allocator
	maintainers.

o	RCU NOCB CPU updates, including limited deoffloading.

o	SRCU updates.

o	Tasks-RCU updates.

o	Torture-test updates.

These changes have two merge conflicts with mainline.  The first is
a semantic conflict detected by -next between these two commits:

	2f064a59a11f ("sched: Change task_struct::state")
	e44111ed20d8 ("rcu: Add ->rt_priority and ->gp_start to show_rcu_gp_kthreads() output")

An example merge resolution may be found here:

	4e2b64e124c7 ("Merge remote-tracking branch 'linus/master' into HEAD")

The second is a trivial whitespace conflict between these two commits:

	76c8eaafe4f0 ("rcu: Create an unrcu_pointer() to remove __rcu from a pointer")
	b9964ce74544 ("rcu: Create an unrcu_pointer() to remove __rcu from a pointer")

An example merge resolution may be found here, on top of the merge commit
for the first conflict:

	f5f576accebd ("Example merge commit for RCU fixing whitespace conflict.")

And yes, this second conflict did in fact happen because I handed out
a patch containing this whitespace error, and failed to follow up with
the corrected patch.  :-/

							Thanx, Paul

----------------------------------------------------------------
Frederic Weisbecker (17):
      doc: Fix diagram references in memory-ordering document
      rcu/nocb: Use the rcuog CPU's ->nocb_timer
      timer: Revert "timer: Add timer_curr_running()"
      srcu: Remove superfluous sdp->srcu_lock_count zero filling
      srcu: Remove superfluous ssp initialization for early callbacks
      srcu: Unconditionally embed struct lockdep_map
      srcu: Initialize SRCU after timers
      srcu: Fix broken node geometry after early ssp init
      torture: Correctly fetch number of CPUs for non-English languages
      rcu/nocb: Directly call __wake_nocb_gp() from bypass timer
      rcu/nocb: Allow de-offloading rdp leader
      rcu/nocb: Cancel nocb_timer upon nocb_gp wakeup
      rcu/nocb: Delete bypass_timer upon nocb_gp wakeup
      rcu/nocb: Only cancel nocb timer if not polling
      rcu/nocb: Prepare for fine-grained deferred wakeup
      rcu/nocb: Unify timers
      srcu: Early test SRCU polling start

Ingo Molnar (1):
      rcu: Fix various typos in comments

Jules Irenge (1):
      rcu: Add missing __releases() annotation

Maninder Singh (2):
      mm/slub: Fix backtrace of objects to handle redzone adjustment
      mm/slub: Add Support for free path information of an object

Paul E. McKenney (47):
      doc: Fix statement of RCU's memory-ordering requirements
      tools/rcu: Add drgn script to dump number of RCU callbacks
      rcu-tasks: Add block comment laying out RCU Tasks design
      rcu-tasks: Add block comment laying out RCU Rude design
      torture: Fix remaining erroneous torture.sh instance of $*
      torture: Add "scenarios" option to kvm.sh --dryrun parameter
      torture: Make kvm-again.sh use "scenarios" rather than "batches" file
      refscale: Allow CPU hotplug to be enabled
      rcuscale: Allow CPU hotplug to be enabled
      torture: Add kvm-remote.sh script for distributed rcutorture test runs
      refscale: Add acqrel, lock, and lock-irq
      rcutorture: Abstract read-lock-held checks
      torture: Fix grace-period rate output
      torture: Abstract end-of-run summary
      torture: Make kvm.sh use abstracted kvm-end-run-stats.sh
      torture:  Make the build machine control N in "make -jN"
      torture: Make kvm-find-errors.sh account for kvm-remote.sh
      rcutorture: Judge RCU priority boosting on grace periods, not callbacks
      torture:  Set kvm.sh language to English
      rcutorture: Delay-based false positives for RCU priority boosting tests
      rcutorture: Consolidate rcu_torture_boost() timing and statistics
      rcutorture: Make rcu_torture_boost_failed() check for GP end
      rcutorture: Add BUSTED-BOOST to test RCU priority boosting tests
      rcutorture: Forgive RCU boost failures when CPUs don't pass through QS
      rcutorture: Don't count CPU-stalled time against priority boosting
      torture: Make kvm-remote.sh account for network failure in pathname checks
      torture: Don't cap remote runs by build-system number of CPUs
      rcutorture: Move mem_dump_obj() tests into separate function
      rcu: Remove the unused rcu_irq_exit_preempt() function
      rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread()
      rcu: Add ->rt_priority and ->gp_start to show_rcu_gp_kthreads() output
      rcu: Add ->gp_max to show_rcu_gp_kthreads() output
      lockdep: Explicitly flag likely false-positive report
      rcu: Reject RCU_LOCKDEP_WARN() false positives
      rcu: Add quiescent states and boost states to show_rcu_gp_kthreads() output
      rcu: Make RCU priority boosting work on single-CPU rcu_node structures
      rcu: Make show_rcu_gp_kthreads() dump rcu_node structures blocking GP
      rcu: Restrict RCU_STRICT_GRACE_PERIOD to at most four CPUs
      rcu: Make rcu_gp_cleanup() be noinline for tracing
      rcu: Point to documentation of ordering guarantees
      rcu: Don't penalize priority boosting when there is nothing to boost
      rcu: Create an unrcu_pointer() to remove __rcu from a pointer
      rcu: Improve comments describing RCU read-side critical sections
      rcu: Remove obsolete rcu_read_unlock() deadlock commentary
      rcu-tasks: Make ksoftirqd provide RCU Tasks quiescent states
      tasks-rcu: Make show_rcu_tasks_gp_kthreads() be static inline
      Merge branches 'bitmaprange.2021.05.10c', 'doc.2021.05.10c', 'fixes.2021.05.13a', 'kvfree_rcu.2021.05.10c', 'mmdumpobj.2021.05.10c', 'nocb.2021.05.12a', 'srcu.2021.05.12a', 'tasks.2021.05.18a' and 'torture.2021.05.10c' into HEAD

Rolf Eike Beer (1):
      rcu: Fix typo in comment: kthead -> kthread

Uladzislau Rezki (Sony) (6):
      kvfree_rcu: Use [READ/WRITE]_ONCE() macros to access to nr_bkv_objs
      kvfree_rcu: Add a bulk-list check when a scheduler is run
      kvfree_rcu: Update "monitor_todo" once a batch is started
      kvfree_rcu: Use kfree_rcu_monitor() instead of open-coded variant
      kvfree_rcu: Fix comments according to current code
      kvfree_rcu: Refactor kfree_rcu_monitor()

Yury Norov (2):
      bitmap_parse: Support 'all' semantics
      rcu/tree_plugin: Don't handle the case of 'all' CPU range

Zhang Qiang (1):
      kvfree_rcu: Release a page cache under memory pressure

Zhouyi Zhou (1):
      rcu: Improve tree.c comments and add code cleanups

 .../Memory-Ordering/Tree-RCU-Memory-Ordering.rst   |   6 +-
 Documentation/admin-guide/kernel-parameters.rst    |   5 +
 Documentation/admin-guide/kernel-parameters.txt    |   5 +
 include/linux/rcupdate.h                           |  84 +++---
 include/linux/rcutiny.h                            |   1 -
 include/linux/rcutree.h                            |   1 -
 include/linux/srcu.h                               |   6 +
 include/linux/srcutree.h                           |   2 -
 include/linux/timer.h                              |   2 -
 include/trace/events/rcu.h                         |   1 +
 init/main.c                                        |   2 +
 kernel/locking/lockdep.c                           |   6 +-
 kernel/rcu/Kconfig.debug                           |   2 +-
 kernel/rcu/rcu.h                                   |  14 +-
 kernel/rcu/rcutorture.c                            | 315 +++++++++++----------
 kernel/rcu/refscale.c                              | 109 ++++++-
 kernel/rcu/srcutree.c                              |  28 +-
 kernel/rcu/sync.c                                  |   4 +-
 kernel/rcu/tasks.h                                 |  58 +++-
 kernel/rcu/tiny.c                                  |   1 -
 kernel/rcu/tree.c                                  | 313 +++++++++++---------
 kernel/rcu/tree.h                                  |  14 +-
 kernel/rcu/tree_plugin.h                           | 239 ++++++++--------
 kernel/rcu/tree_stall.h                            |  84 +++++-
 kernel/rcu/update.c                                |   8 +-
 kernel/time/timer.c                                |  14 -
 lib/bitmap.c                                       |   9 +
 lib/test_bitmap.c                                  |   7 +
 mm/oom_kill.c                                      |   2 +-
 mm/slab.h                                          |   1 +
 mm/slab_common.c                                   |  12 +-
 mm/slub.c                                          |   8 +
 mm/util.c                                          |   2 +-
 tools/rcu/rcu-cbs.py                               |  46 +++
 .../testing/selftests/rcutorture/bin/kvm-again.sh  |  33 +--
 .../testing/selftests/rcutorture/bin/kvm-build.sh  |   6 +-
 .../selftests/rcutorture/bin/kvm-end-run-stats.sh  |  40 +++
 .../selftests/rcutorture/bin/kvm-find-errors.sh    |   2 +-
 .../selftests/rcutorture/bin/kvm-recheck-rcu.sh    |   2 +-
 .../testing/selftests/rcutorture/bin/kvm-remote.sh | 249 ++++++++++++++++
 tools/testing/selftests/rcutorture/bin/kvm.sh      |  61 ++--
 tools/testing/selftests/rcutorture/bin/torture.sh  |   2 +-
 .../selftests/rcutorture/configs/rcu/BUSTED-BOOST  |  17 ++
 .../rcutorture/configs/rcu/BUSTED-BOOST.boot       |   8 +
 .../selftests/rcutorture/configs/rcuscale/TREE     |   2 +-
 .../selftests/rcutorture/configs/rcuscale/TREE54   |   2 +-
 .../rcutorture/configs/refscale/NOPREEMPT          |   2 +-
 .../selftests/rcutorture/configs/refscale/PREEMPT  |   2 +-
 .../rcutorture/formal/srcu-cbmc/src/locks.h        |   2 +-
 49 files changed, 1265 insertions(+), 576 deletions(-)
 create mode 100644 tools/rcu/rcu-cbs.py
 create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-end-run-stats.sh
 create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-remote.sh
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/BUSTED-BOOST
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/BUSTED-BOOST.boot

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

* Re: [GIT PULL] RCU changes for v5.14
  2021-07-04 17:24 [GIT PULL] RCU changes for v5.14 Paul E. McKenney
@ 2021-07-04 17:58 ` Paul E. McKenney
  2021-07-04 20:01 ` Linus Torvalds
  2021-07-04 20:09 ` pr-tracker-bot
  2 siblings, 0 replies; 7+ messages in thread
From: Paul E. McKenney @ 2021-07-04 17:58 UTC (permalink / raw)
  To: torvalds; +Cc: mingo, linux-kernel, tglx, akpm, peterz, vbabka

On Sun, Jul 04, 2021 at 10:24:40AM -0700, Paul E. McKenney wrote:
> Hello, Linus,
> 
> In a deviation from long-standing -tip tradition, please pull the latest
> RCU git tree from:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git core-rcu-2021.07.04
>   # HEAD: 641faf1b9064c270a476a424e60063bb05df3ee9: Merge branches 'bitmaprange.2021.05.10c', 'doc.2021.05.10c', 'fixes.2021.05.13a', 'kvfree_rcu.2021.05.10c', 'mmdumpobj.2021.05.10c', 'nocb.2021.05.12a', 'srcu.2021.05.12a', 'tasks.2021.05.18a' and 'torture.2021.05.10c' into HEAD (2021-05-18 10:56:19 -0700)
> 
> RCU changes for this cycle were:
> 
> o	Bitmap support for "all" as an alias for all bits.
> 
> o	Documentation updates.
> 
> o	Miscellaneous fixes, including some that overlap into mm and lockdep.
> 
> o	kvfree_rcu() updates.
> 
> o	mem_dump_obj() updates, with acks from one of the slab-allocator
> 	maintainers.
> 
> o	RCU NOCB CPU updates, including limited deoffloading.
> 
> o	SRCU updates.
> 
> o	Tasks-RCU updates.
> 
> o	Torture-test updates.
> 
> These changes have two merge conflicts with mainline.  The first is
> a semantic conflict detected by -next between these two commits:
> 
> 	2f064a59a11f ("sched: Change task_struct::state")
> 	e44111ed20d8 ("rcu: Add ->rt_priority and ->gp_start to show_rcu_gp_kthreads() output")
> 
> An example merge resolution may be found here:
> 
> 	4e2b64e124c7 ("Merge remote-tracking branch 'linus/master' into HEAD")
> 
> The second is a trivial whitespace conflict between these two commits:
> 
> 	76c8eaafe4f0 ("rcu: Create an unrcu_pointer() to remove __rcu from a pointer")
> 	b9964ce74544 ("rcu: Create an unrcu_pointer() to remove __rcu from a pointer")
> 
> An example merge resolution may be found here, on top of the merge commit
> for the first conflict:
> 
> 	f5f576accebd ("Example merge commit for RCU fixing whitespace conflict.")

Gah!  Right merge, but wrong location.  Pulling this will pull in
KCSAN and LKMM as well as RCU.  Please accept my apologies, and
here is the correctly placed merge commit:

	fa5035b6a215 ("Merge remote-tracking branch 'linus/master' into merge-example-rcu")

> And yes, this second conflict did in fact happen because I handed out
> a patch containing this whitespace error, and failed to follow up with
> the corrected patch.  :-/
> 
> 							Thanx, Paul
> 
> ----------------------------------------------------------------
> Frederic Weisbecker (17):
>       doc: Fix diagram references in memory-ordering document
>       rcu/nocb: Use the rcuog CPU's ->nocb_timer
>       timer: Revert "timer: Add timer_curr_running()"
>       srcu: Remove superfluous sdp->srcu_lock_count zero filling
>       srcu: Remove superfluous ssp initialization for early callbacks
>       srcu: Unconditionally embed struct lockdep_map
>       srcu: Initialize SRCU after timers
>       srcu: Fix broken node geometry after early ssp init
>       torture: Correctly fetch number of CPUs for non-English languages
>       rcu/nocb: Directly call __wake_nocb_gp() from bypass timer
>       rcu/nocb: Allow de-offloading rdp leader
>       rcu/nocb: Cancel nocb_timer upon nocb_gp wakeup
>       rcu/nocb: Delete bypass_timer upon nocb_gp wakeup
>       rcu/nocb: Only cancel nocb timer if not polling
>       rcu/nocb: Prepare for fine-grained deferred wakeup
>       rcu/nocb: Unify timers
>       srcu: Early test SRCU polling start
> 
> Ingo Molnar (1):
>       rcu: Fix various typos in comments
> 
> Jules Irenge (1):
>       rcu: Add missing __releases() annotation
> 
> Maninder Singh (2):
>       mm/slub: Fix backtrace of objects to handle redzone adjustment
>       mm/slub: Add Support for free path information of an object
> 
> Paul E. McKenney (47):
>       doc: Fix statement of RCU's memory-ordering requirements
>       tools/rcu: Add drgn script to dump number of RCU callbacks
>       rcu-tasks: Add block comment laying out RCU Tasks design
>       rcu-tasks: Add block comment laying out RCU Rude design
>       torture: Fix remaining erroneous torture.sh instance of $*
>       torture: Add "scenarios" option to kvm.sh --dryrun parameter
>       torture: Make kvm-again.sh use "scenarios" rather than "batches" file
>       refscale: Allow CPU hotplug to be enabled
>       rcuscale: Allow CPU hotplug to be enabled
>       torture: Add kvm-remote.sh script for distributed rcutorture test runs
>       refscale: Add acqrel, lock, and lock-irq
>       rcutorture: Abstract read-lock-held checks
>       torture: Fix grace-period rate output
>       torture: Abstract end-of-run summary
>       torture: Make kvm.sh use abstracted kvm-end-run-stats.sh
>       torture:  Make the build machine control N in "make -jN"
>       torture: Make kvm-find-errors.sh account for kvm-remote.sh
>       rcutorture: Judge RCU priority boosting on grace periods, not callbacks
>       torture:  Set kvm.sh language to English
>       rcutorture: Delay-based false positives for RCU priority boosting tests
>       rcutorture: Consolidate rcu_torture_boost() timing and statistics
>       rcutorture: Make rcu_torture_boost_failed() check for GP end
>       rcutorture: Add BUSTED-BOOST to test RCU priority boosting tests
>       rcutorture: Forgive RCU boost failures when CPUs don't pass through QS
>       rcutorture: Don't count CPU-stalled time against priority boosting
>       torture: Make kvm-remote.sh account for network failure in pathname checks
>       torture: Don't cap remote runs by build-system number of CPUs
>       rcutorture: Move mem_dump_obj() tests into separate function
>       rcu: Remove the unused rcu_irq_exit_preempt() function
>       rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread()
>       rcu: Add ->rt_priority and ->gp_start to show_rcu_gp_kthreads() output
>       rcu: Add ->gp_max to show_rcu_gp_kthreads() output
>       lockdep: Explicitly flag likely false-positive report
>       rcu: Reject RCU_LOCKDEP_WARN() false positives
>       rcu: Add quiescent states and boost states to show_rcu_gp_kthreads() output
>       rcu: Make RCU priority boosting work on single-CPU rcu_node structures
>       rcu: Make show_rcu_gp_kthreads() dump rcu_node structures blocking GP
>       rcu: Restrict RCU_STRICT_GRACE_PERIOD to at most four CPUs
>       rcu: Make rcu_gp_cleanup() be noinline for tracing
>       rcu: Point to documentation of ordering guarantees
>       rcu: Don't penalize priority boosting when there is nothing to boost
>       rcu: Create an unrcu_pointer() to remove __rcu from a pointer
>       rcu: Improve comments describing RCU read-side critical sections
>       rcu: Remove obsolete rcu_read_unlock() deadlock commentary
>       rcu-tasks: Make ksoftirqd provide RCU Tasks quiescent states
>       tasks-rcu: Make show_rcu_tasks_gp_kthreads() be static inline
>       Merge branches 'bitmaprange.2021.05.10c', 'doc.2021.05.10c', 'fixes.2021.05.13a', 'kvfree_rcu.2021.05.10c', 'mmdumpobj.2021.05.10c', 'nocb.2021.05.12a', 'srcu.2021.05.12a', 'tasks.2021.05.18a' and 'torture.2021.05.10c' into HEAD
> 
> Rolf Eike Beer (1):
>       rcu: Fix typo in comment: kthead -> kthread
> 
> Uladzislau Rezki (Sony) (6):
>       kvfree_rcu: Use [READ/WRITE]_ONCE() macros to access to nr_bkv_objs
>       kvfree_rcu: Add a bulk-list check when a scheduler is run
>       kvfree_rcu: Update "monitor_todo" once a batch is started
>       kvfree_rcu: Use kfree_rcu_monitor() instead of open-coded variant
>       kvfree_rcu: Fix comments according to current code
>       kvfree_rcu: Refactor kfree_rcu_monitor()
> 
> Yury Norov (2):
>       bitmap_parse: Support 'all' semantics
>       rcu/tree_plugin: Don't handle the case of 'all' CPU range
> 
> Zhang Qiang (1):
>       kvfree_rcu: Release a page cache under memory pressure
> 
> Zhouyi Zhou (1):
>       rcu: Improve tree.c comments and add code cleanups
> 
>  .../Memory-Ordering/Tree-RCU-Memory-Ordering.rst   |   6 +-
>  Documentation/admin-guide/kernel-parameters.rst    |   5 +
>  Documentation/admin-guide/kernel-parameters.txt    |   5 +
>  include/linux/rcupdate.h                           |  84 +++---
>  include/linux/rcutiny.h                            |   1 -
>  include/linux/rcutree.h                            |   1 -
>  include/linux/srcu.h                               |   6 +
>  include/linux/srcutree.h                           |   2 -
>  include/linux/timer.h                              |   2 -
>  include/trace/events/rcu.h                         |   1 +
>  init/main.c                                        |   2 +
>  kernel/locking/lockdep.c                           |   6 +-
>  kernel/rcu/Kconfig.debug                           |   2 +-
>  kernel/rcu/rcu.h                                   |  14 +-
>  kernel/rcu/rcutorture.c                            | 315 +++++++++++----------
>  kernel/rcu/refscale.c                              | 109 ++++++-
>  kernel/rcu/srcutree.c                              |  28 +-
>  kernel/rcu/sync.c                                  |   4 +-
>  kernel/rcu/tasks.h                                 |  58 +++-
>  kernel/rcu/tiny.c                                  |   1 -
>  kernel/rcu/tree.c                                  | 313 +++++++++++---------
>  kernel/rcu/tree.h                                  |  14 +-
>  kernel/rcu/tree_plugin.h                           | 239 ++++++++--------
>  kernel/rcu/tree_stall.h                            |  84 +++++-
>  kernel/rcu/update.c                                |   8 +-
>  kernel/time/timer.c                                |  14 -
>  lib/bitmap.c                                       |   9 +
>  lib/test_bitmap.c                                  |   7 +
>  mm/oom_kill.c                                      |   2 +-
>  mm/slab.h                                          |   1 +
>  mm/slab_common.c                                   |  12 +-
>  mm/slub.c                                          |   8 +
>  mm/util.c                                          |   2 +-
>  tools/rcu/rcu-cbs.py                               |  46 +++
>  .../testing/selftests/rcutorture/bin/kvm-again.sh  |  33 +--
>  .../testing/selftests/rcutorture/bin/kvm-build.sh  |   6 +-
>  .../selftests/rcutorture/bin/kvm-end-run-stats.sh  |  40 +++
>  .../selftests/rcutorture/bin/kvm-find-errors.sh    |   2 +-
>  .../selftests/rcutorture/bin/kvm-recheck-rcu.sh    |   2 +-
>  .../testing/selftests/rcutorture/bin/kvm-remote.sh | 249 ++++++++++++++++
>  tools/testing/selftests/rcutorture/bin/kvm.sh      |  61 ++--
>  tools/testing/selftests/rcutorture/bin/torture.sh  |   2 +-
>  .../selftests/rcutorture/configs/rcu/BUSTED-BOOST  |  17 ++
>  .../rcutorture/configs/rcu/BUSTED-BOOST.boot       |   8 +
>  .../selftests/rcutorture/configs/rcuscale/TREE     |   2 +-
>  .../selftests/rcutorture/configs/rcuscale/TREE54   |   2 +-
>  .../rcutorture/configs/refscale/NOPREEMPT          |   2 +-
>  .../selftests/rcutorture/configs/refscale/PREEMPT  |   2 +-
>  .../rcutorture/formal/srcu-cbmc/src/locks.h        |   2 +-
>  49 files changed, 1265 insertions(+), 576 deletions(-)
>  create mode 100644 tools/rcu/rcu-cbs.py
>  create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-end-run-stats.sh
>  create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-remote.sh
>  create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/BUSTED-BOOST
>  create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/BUSTED-BOOST.boot

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

* Re: [GIT PULL] RCU changes for v5.14
  2021-07-04 17:24 [GIT PULL] RCU changes for v5.14 Paul E. McKenney
  2021-07-04 17:58 ` Paul E. McKenney
@ 2021-07-04 20:01 ` Linus Torvalds
  2021-07-04 20:32   ` Paul E. McKenney
  2021-07-04 20:09 ` pr-tracker-bot
  2 siblings, 1 reply; 7+ messages in thread
From: Linus Torvalds @ 2021-07-04 20:01 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: Ingo Molnar, Linux Kernel Mailing List, Thomas Gleixner,
	Andrew Morton, Peter Zijlstra, Vlastimil Babka

On Sun, Jul 4, 2021 at 10:24 AM Paul E. McKenney <paulmck@kernel.org> wrote:
>
> An example merge resolution may be found here:
>
>         4e2b64e124c7 ("Merge remote-tracking branch 'linus/master' into HEAD")

There sommit ID's are completely useless, because I have no idea where
they come from. They aren't in the linux-next tree as far as I can
tell, for example.

So they are just random noise.

Now, none of the conflicts looked in the least complicated, so it's
not like I _need_ the examples, but this "send random shortened SHA1s
to Linus" is simply not useful.

At a guess, it's actually from your merge-example branch in your own tree.

The point being, that a SHA1 may be globally unique, but without
telling me where that SHA1 can be _found_, it is entirely useless.

If you have example merges - which I do like seeing, and I will
compare against just to double-check even when I have no reason to
doubt my own merge - you need to point to it the same way you point to
the actual real branch.

IOW, say something like

  "I've done an example merge, and you can find it in

     git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
rcu-example-merge"

or similar.

Because actual SHA1 names are only useful WHEN THEY ARE IN MY TREE. So
you can point to history that I have (or that was in your actual pull
request), and I can see _those_ just fine.

So when you say

  "The second is a trivial whitespace conflict between these two commits:

        76c8eaafe4f0 ("rcu: Create an unrcu_pointer() to remove __rcu
from a pointer")
        b9964ce74544 ("rcu: Create an unrcu_pointer() to remove __rcu
from a pointer")"

then that makes sense, because those are two commits that I actually
have as part of the merge conflict).

But that example merge? I don't have it, unless you actually tell me
where it is.

Then I can just do

      git fetch <paul-told-me-where-to-fetch>

and can do

    git show FETCH_HEAD

or (more commonly) just compare my merge result with yours:

    git diff FETCH_HEAD kernel/rcu/tree_stall.h

and it's all golden. But if you send me a random SHA1 of somethign
that only exists in your trees, I just go "oh, ok, not useful".

           Linus

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

* Re: [GIT PULL] RCU changes for v5.14
  2021-07-04 17:24 [GIT PULL] RCU changes for v5.14 Paul E. McKenney
  2021-07-04 17:58 ` Paul E. McKenney
  2021-07-04 20:01 ` Linus Torvalds
@ 2021-07-04 20:09 ` pr-tracker-bot
  2 siblings, 0 replies; 7+ messages in thread
From: pr-tracker-bot @ 2021-07-04 20:09 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: torvalds, mingo, linux-kernel, tglx, akpm, peterz, vbabka

The pull request you sent on Sun, 4 Jul 2021 10:24:40 -0700:

> git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git core-rcu-2021.07.04

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/28e92f990337b8b4c5fdec47667f8b96089c503e

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL] RCU changes for v5.14
  2021-07-04 20:01 ` Linus Torvalds
@ 2021-07-04 20:32   ` Paul E. McKenney
  2021-07-04 20:44     ` Linus Torvalds
  0 siblings, 1 reply; 7+ messages in thread
From: Paul E. McKenney @ 2021-07-04 20:32 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Ingo Molnar, Linux Kernel Mailing List, Thomas Gleixner,
	Andrew Morton, Peter Zijlstra, Vlastimil Babka

On Sun, Jul 04, 2021 at 01:01:33PM -0700, Linus Torvalds wrote:
> On Sun, Jul 4, 2021 at 10:24 AM Paul E. McKenney <paulmck@kernel.org> wrote:
> >
> > An example merge resolution may be found here:
> >
> >         4e2b64e124c7 ("Merge remote-tracking branch 'linus/master' into HEAD")
> 
> There sommit ID's are completely useless, because I have no idea where
> they come from. They aren't in the linux-next tree as far as I can
> tell, for example.
> 
> So they are just random noise.
> 
> Now, none of the conflicts looked in the least complicated, so it's
> not like I _need_ the examples, but this "send random shortened SHA1s
> to Linus" is simply not useful.
> 
> At a guess, it's actually from your merge-example branch in your own tree.
> 
> The point being, that a SHA1 may be globally unique, but without
> telling me where that SHA1 can be _found_, it is entirely useless.
> 
> If you have example merges - which I do like seeing, and I will
> compare against just to double-check even when I have no reason to
> doubt my own merge - you need to point to it the same way you point to
> the actual real branch.
> 
> IOW, say something like
> 
>   "I've done an example merge, and you can find it in
> 
>      git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
> rcu-example-merge"
> 
> or similar.
> 
> Because actual SHA1 names are only useful WHEN THEY ARE IN MY TREE. So
> you can point to history that I have (or that was in your actual pull
> request), and I can see _those_ just fine.
> 
> So when you say
> 
>   "The second is a trivial whitespace conflict between these two commits:
> 
>         76c8eaafe4f0 ("rcu: Create an unrcu_pointer() to remove __rcu
> from a pointer")
>         b9964ce74544 ("rcu: Create an unrcu_pointer() to remove __rcu
> from a pointer")"
> 
> then that makes sense, because those are two commits that I actually
> have as part of the merge conflict).
> 
> But that example merge? I don't have it, unless you actually tell me
> where it is.
> 
> Then I can just do
> 
>       git fetch <paul-told-me-where-to-fetch>
> 
> and can do
> 
>     git show FETCH_HEAD
> 
> or (more commonly) just compare my merge result with yours:
> 
>     git diff FETCH_HEAD kernel/rcu/tree_stall.h
> 
> and it's all golden. But if you send me a random SHA1 of somethign
> that only exists in your trees, I just go "oh, ok, not useful".

Once again, please accept my apologies, and thank you for the explanation.
I should have sent something like the following, correct?  Or is there
still something I am missing?

							Thanx, Paul

------------------------------------------------------------------------

Hello, Linus,

In a deviation from long-standing -tip tradition, please pull the latest
RCU git tree from:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git core-rcu-2021.07.04
  # HEAD: 641faf1b9064c270a476a424e60063bb05df3ee9: Merge branches 'bitmaprange.2021.05.10c', 'doc.2021.05.10c', 'fixes.2021.05.13a', 'kvfree_rcu.2021.05.10c', 'mmdumpobj.2021.05.10c', 'nocb.2021.05.12a', 'srcu.2021.05.12a', 'tasks.2021.05.18a' and 'torture.2021.05.10c' into HEAD (2021-05-18 10:56:19 -0700)

RCU changes for this cycle were:

o	Bitmap support for "all" as an alias for all bits.

o	Documentation updates.

o	Miscellaneous fixes, including some that overlap into mm and lockdep.

o	kvfree_rcu() updates.

o	mem_dump_obj() updates, with acks from one of the slab-allocator
	maintainers.

o	RCU NOCB CPU updates, including limited deoffloading.

o	SRCU updates.

o	Tasks-RCU updates.

o	Torture-test updates.

These changes have two merge conflicts with mainline.  The first is
a semantic conflict detected by -next between these two commits:

	2f064a59a11f ("sched: Change task_struct::state")
	e44111ed20d8 ("rcu: Add ->rt_priority and ->gp_start to show_rcu_gp_kthreads() output")

I have done an example merge here:

	git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git merge-example-rcu

The second is a trivial whitespace conflict between these two commits:

	76c8eaafe4f0 ("rcu: Create an unrcu_pointer() to remove __rcu from a pointer")
	b9964ce74544 ("rcu: Create an unrcu_pointer() to remove __rcu from a pointer")

I have done an example merge on top of the merge commit for the first
conflict:

	git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git merge-example-rcu2

And yes, this second conflict did in fact happen because I handed out
a patch containing this whitespace error, and failed to follow up with
the corrected patch.  :-/

							Thanx, Paul

----------------------------------------------------------------
Frederic Weisbecker (17):
      doc: Fix diagram references in memory-ordering document
      rcu/nocb: Use the rcuog CPU's ->nocb_timer
      timer: Revert "timer: Add timer_curr_running()"
      srcu: Remove superfluous sdp->srcu_lock_count zero filling
      srcu: Remove superfluous ssp initialization for early callbacks
      srcu: Unconditionally embed struct lockdep_map
      srcu: Initialize SRCU after timers
      srcu: Fix broken node geometry after early ssp init
      torture: Correctly fetch number of CPUs for non-English languages
      rcu/nocb: Directly call __wake_nocb_gp() from bypass timer
      rcu/nocb: Allow de-offloading rdp leader
      rcu/nocb: Cancel nocb_timer upon nocb_gp wakeup
      rcu/nocb: Delete bypass_timer upon nocb_gp wakeup
      rcu/nocb: Only cancel nocb timer if not polling
      rcu/nocb: Prepare for fine-grained deferred wakeup
      rcu/nocb: Unify timers
      srcu: Early test SRCU polling start

Ingo Molnar (1):
      rcu: Fix various typos in comments

Jules Irenge (1):
      rcu: Add missing __releases() annotation

Maninder Singh (2):
      mm/slub: Fix backtrace of objects to handle redzone adjustment
      mm/slub: Add Support for free path information of an object

Paul E. McKenney (47):
      doc: Fix statement of RCU's memory-ordering requirements
      tools/rcu: Add drgn script to dump number of RCU callbacks
      rcu-tasks: Add block comment laying out RCU Tasks design
      rcu-tasks: Add block comment laying out RCU Rude design
      torture: Fix remaining erroneous torture.sh instance of $*
      torture: Add "scenarios" option to kvm.sh --dryrun parameter
      torture: Make kvm-again.sh use "scenarios" rather than "batches" file
      refscale: Allow CPU hotplug to be enabled
      rcuscale: Allow CPU hotplug to be enabled
      torture: Add kvm-remote.sh script for distributed rcutorture test runs
      refscale: Add acqrel, lock, and lock-irq
      rcutorture: Abstract read-lock-held checks
      torture: Fix grace-period rate output
      torture: Abstract end-of-run summary
      torture: Make kvm.sh use abstracted kvm-end-run-stats.sh
      torture:  Make the build machine control N in "make -jN"
      torture: Make kvm-find-errors.sh account for kvm-remote.sh
      rcutorture: Judge RCU priority boosting on grace periods, not callbacks
      torture:  Set kvm.sh language to English
      rcutorture: Delay-based false positives for RCU priority boosting tests
      rcutorture: Consolidate rcu_torture_boost() timing and statistics
      rcutorture: Make rcu_torture_boost_failed() check for GP end
      rcutorture: Add BUSTED-BOOST to test RCU priority boosting tests
      rcutorture: Forgive RCU boost failures when CPUs don't pass through QS
      rcutorture: Don't count CPU-stalled time against priority boosting
      torture: Make kvm-remote.sh account for network failure in pathname checks
      torture: Don't cap remote runs by build-system number of CPUs
      rcutorture: Move mem_dump_obj() tests into separate function
      rcu: Remove the unused rcu_irq_exit_preempt() function
      rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread()
      rcu: Add ->rt_priority and ->gp_start to show_rcu_gp_kthreads() output
      rcu: Add ->gp_max to show_rcu_gp_kthreads() output
      lockdep: Explicitly flag likely false-positive report
      rcu: Reject RCU_LOCKDEP_WARN() false positives
      rcu: Add quiescent states and boost states to show_rcu_gp_kthreads() output
      rcu: Make RCU priority boosting work on single-CPU rcu_node structures
      rcu: Make show_rcu_gp_kthreads() dump rcu_node structures blocking GP
      rcu: Restrict RCU_STRICT_GRACE_PERIOD to at most four CPUs
      rcu: Make rcu_gp_cleanup() be noinline for tracing
      rcu: Point to documentation of ordering guarantees
      rcu: Don't penalize priority boosting when there is nothing to boost
      rcu: Create an unrcu_pointer() to remove __rcu from a pointer
      rcu: Improve comments describing RCU read-side critical sections
      rcu: Remove obsolete rcu_read_unlock() deadlock commentary
      rcu-tasks: Make ksoftirqd provide RCU Tasks quiescent states
      tasks-rcu: Make show_rcu_tasks_gp_kthreads() be static inline
      Merge branches 'bitmaprange.2021.05.10c', 'doc.2021.05.10c', 'fixes.2021.05.13a', 'kvfree_rcu.2021.05.10c', 'mmdumpobj.2021.05.10c', 'nocb.2021.05.12a', 'srcu.2021.05.12a', 'tasks.2021.05.18a' and 'torture.2021.05.10c' into HEAD

Rolf Eike Beer (1):
      rcu: Fix typo in comment: kthead -> kthread

Uladzislau Rezki (Sony) (6):
      kvfree_rcu: Use [READ/WRITE]_ONCE() macros to access to nr_bkv_objs
      kvfree_rcu: Add a bulk-list check when a scheduler is run
      kvfree_rcu: Update "monitor_todo" once a batch is started
      kvfree_rcu: Use kfree_rcu_monitor() instead of open-coded variant
      kvfree_rcu: Fix comments according to current code
      kvfree_rcu: Refactor kfree_rcu_monitor()

Yury Norov (2):
      bitmap_parse: Support 'all' semantics
      rcu/tree_plugin: Don't handle the case of 'all' CPU range

Zhang Qiang (1):
      kvfree_rcu: Release a page cache under memory pressure

Zhouyi Zhou (1):
      rcu: Improve tree.c comments and add code cleanups

 .../Memory-Ordering/Tree-RCU-Memory-Ordering.rst   |   6 +-
 Documentation/admin-guide/kernel-parameters.rst    |   5 +
 Documentation/admin-guide/kernel-parameters.txt    |   5 +
 include/linux/rcupdate.h                           |  84 +++---
 include/linux/rcutiny.h                            |   1 -
 include/linux/rcutree.h                            |   1 -
 include/linux/srcu.h                               |   6 +
 include/linux/srcutree.h                           |   2 -
 include/linux/timer.h                              |   2 -
 include/trace/events/rcu.h                         |   1 +
 init/main.c                                        |   2 +
 kernel/locking/lockdep.c                           |   6 +-
 kernel/rcu/Kconfig.debug                           |   2 +-
 kernel/rcu/rcu.h                                   |  14 +-
 kernel/rcu/rcutorture.c                            | 315 +++++++++++----------
 kernel/rcu/refscale.c                              | 109 ++++++-
 kernel/rcu/srcutree.c                              |  28 +-
 kernel/rcu/sync.c                                  |   4 +-
 kernel/rcu/tasks.h                                 |  58 +++-
 kernel/rcu/tiny.c                                  |   1 -
 kernel/rcu/tree.c                                  | 313 +++++++++++---------
 kernel/rcu/tree.h                                  |  14 +-
 kernel/rcu/tree_plugin.h                           | 239 ++++++++--------
 kernel/rcu/tree_stall.h                            |  84 +++++-
 kernel/rcu/update.c                                |   8 +-
 kernel/time/timer.c                                |  14 -
 lib/bitmap.c                                       |   9 +
 lib/test_bitmap.c                                  |   7 +
 mm/oom_kill.c                                      |   2 +-
 mm/slab.h                                          |   1 +
 mm/slab_common.c                                   |  12 +-
 mm/slub.c                                          |   8 +
 mm/util.c                                          |   2 +-
 tools/rcu/rcu-cbs.py                               |  46 +++
 .../testing/selftests/rcutorture/bin/kvm-again.sh  |  33 +--
 .../testing/selftests/rcutorture/bin/kvm-build.sh  |   6 +-
 .../selftests/rcutorture/bin/kvm-end-run-stats.sh  |  40 +++
 .../selftests/rcutorture/bin/kvm-find-errors.sh    |   2 +-
 .../selftests/rcutorture/bin/kvm-recheck-rcu.sh    |   2 +-
 .../testing/selftests/rcutorture/bin/kvm-remote.sh | 249 ++++++++++++++++
 tools/testing/selftests/rcutorture/bin/kvm.sh      |  61 ++--
 tools/testing/selftests/rcutorture/bin/torture.sh  |   2 +-
 .../selftests/rcutorture/configs/rcu/BUSTED-BOOST  |  17 ++
 .../rcutorture/configs/rcu/BUSTED-BOOST.boot       |   8 +
 .../selftests/rcutorture/configs/rcuscale/TREE     |   2 +-
 .../selftests/rcutorture/configs/rcuscale/TREE54   |   2 +-
 .../rcutorture/configs/refscale/NOPREEMPT          |   2 +-
 .../selftests/rcutorture/configs/refscale/PREEMPT  |   2 +-
 .../rcutorture/formal/srcu-cbmc/src/locks.h        |   2 +-
 49 files changed, 1265 insertions(+), 576 deletions(-)
 create mode 100644 tools/rcu/rcu-cbs.py
 create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-end-run-stats.sh
 create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-remote.sh
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/BUSTED-BOOST
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/BUSTED-BOOST.boot


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

* Re: [GIT PULL] RCU changes for v5.14
  2021-07-04 20:32   ` Paul E. McKenney
@ 2021-07-04 20:44     ` Linus Torvalds
  2021-07-04 21:13       ` Paul E. McKenney
  0 siblings, 1 reply; 7+ messages in thread
From: Linus Torvalds @ 2021-07-04 20:44 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: Ingo Molnar, Linux Kernel Mailing List, Thomas Gleixner,
	Andrew Morton, Peter Zijlstra, Vlastimil Babka

On Sun, Jul 4, 2021 at 1:32 PM Paul E. McKenney <paulmck@kernel.org> wrote:
>
> Once again, please accept my apologies, and thank you for the explanation.
> I should have sent something like the following, correct?

Correct.  That

> I have done an example merge here:
>
>         git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git merge-example-rcu

makes it trivial for me to just do that "git fetch" and compare what
you did with what I did.

Of course, now I've already pushed out my resolution, so it's too late
(and I've forgotten which files were involved, so I'm too lazy to go
back and check). But hopefully it matches anyway.

             Linus

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

* Re: [GIT PULL] RCU changes for v5.14
  2021-07-04 20:44     ` Linus Torvalds
@ 2021-07-04 21:13       ` Paul E. McKenney
  0 siblings, 0 replies; 7+ messages in thread
From: Paul E. McKenney @ 2021-07-04 21:13 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Ingo Molnar, Linux Kernel Mailing List, Thomas Gleixner,
	Andrew Morton, Peter Zijlstra, Vlastimil Babka

On Sun, Jul 04, 2021 at 01:44:02PM -0700, Linus Torvalds wrote:
> On Sun, Jul 4, 2021 at 1:32 PM Paul E. McKenney <paulmck@kernel.org> wrote:
> >
> > Once again, please accept my apologies, and thank you for the explanation.
> > I should have sent something like the following, correct?
> 
> Correct.  That
> 
> > I have done an example merge here:
> >
> >         git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git merge-example-rcu
> 
> makes it trivial for me to just do that "git fetch" and compare what
> you did with what I did.
> 
> Of course, now I've already pushed out my resolution, so it's too late
> (and I've forgotten which files were involved, so I'm too lazy to go
> back and check). But hopefully it matches anyway.

Nothing that my compiler cares about or that would make any difference
in the code output.

So I have it queued the patch shown below for later, unless someone
else's compiler complains before then.

							Thanx, Paul

------------------------------------------------------------------------

commit 30363f26e6cc347a7cf6e80206139c2e95d6f7d8
Author: Paul E. McKenney <paulmck@kernel.org>
Date:   Sun Jul 4 13:59:35 2021 -0700

    rcu: Fix pr_info() formats and values in show_rcu_gp_kthreads()
    
    This commit changes from "%lx" to "%x" and from "0x1ffffL" to "0x1ffff"
    to match the change in type between the old field ->state (unsigned long)
    and the new field ->__state (unsigned int).
    
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>

diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h
index 3f937b20814f..6c76988cc019 100644
--- a/kernel/rcu/tree_stall.h
+++ b/kernel/rcu/tree_stall.h
@@ -795,9 +795,9 @@ void show_rcu_gp_kthreads(void)
 	jr = j - data_race(rcu_state.gp_req_activity);
 	js = j - data_race(rcu_state.gp_start);
 	jw = j - data_race(rcu_state.gp_wake_time);
-	pr_info("%s: wait state: %s(%d) ->state: %#lx ->rt_priority %u delta ->gp_start %lu ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_max %lu ->gp_flags %#x\n",
+	pr_info("%s: wait state: %s(%d) ->state: %#x ->rt_priority %u delta ->gp_start %lu ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_max %lu ->gp_flags %#x\n",
 		rcu_state.name, gp_state_getname(rcu_state.gp_state),
-		rcu_state.gp_state, t ? t->__state : 0x1ffffL, t ? t->rt_priority : 0xffU,
+		rcu_state.gp_state, t ? t->__state : 0x1ffff, t ? t->rt_priority : 0xffU,
 		js, ja, jr, jw, (long)data_race(rcu_state.gp_wake_seq),
 		(long)data_race(rcu_state.gp_seq),
 		(long)data_race(rcu_get_root()->gp_seq_needed),

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

end of thread, other threads:[~2021-07-04 21:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-04 17:24 [GIT PULL] RCU changes for v5.14 Paul E. McKenney
2021-07-04 17:58 ` Paul E. McKenney
2021-07-04 20:01 ` Linus Torvalds
2021-07-04 20:32   ` Paul E. McKenney
2021-07-04 20:44     ` Linus Torvalds
2021-07-04 21:13       ` Paul E. McKenney
2021-07-04 20:09 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).