All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xen-devel] [PATCH v5 0/4] xen/rcu: let rcu work better with core scheduling
@ 2020-03-12  8:28 Juergen Gross
  2020-03-12  8:28 ` [Xen-devel] [PATCH v5 1/4] xen/rcu: don't use stop_machine_run() for rcu_barrier() Juergen Gross
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Juergen Gross @ 2020-03-12  8:28 UTC (permalink / raw)
  To: xen-devel
  Cc: Juergen Gross, Stefano Stabellini, Julien Grall, Wei Liu,
	Andrew Cooper, Ian Jackson, George Dunlap, Jan Beulich

Today the RCU handling in Xen is affecting scheduling in several ways.
It is raising sched softirqs without any real need and it requires
tasklets for rcu_barrier(), which interacts badly with core scheduling.

This small series repairs those issues.

Additionally some ASSERT()s are added for verification of sane rcu
handling. In order to avoid those triggering right away the obvious
violations are fixed. This includes making rcu locking functions type
safe.

Changes in V5:
- dropped already committed patches 1 and 4
- fixed race
- rework blocking of rcu processing with held rcu locks

Changes in V4:
- patch 5: use barrier()

Changes in V3:
- type safe locking functions (functions instead of macros)
- per-lock debug additions
- new patches 4 and 6
- fixed races

Changes in V2:
- use get_cpu_maps() in rcu_barrier() handling
- avoid recursion in rcu_barrier() handling
- new patches 3 and 4

Juergen Gross (4):
  xen/rcu: don't use stop_machine_run() for rcu_barrier()
  xen: don't process rcu callbacks when holding a rcu_read_lock()
  xen/rcu: add assertions to debug build
  xen/rcu: add per-lock counter in debug builds

 xen/common/multicall.c     |  1 +
 xen/common/preempt.c       |  5 ++-
 xen/common/rcupdate.c      | 94 +++++++++++++++++++++++++++++++++-------------
 xen/common/softirq.c       | 14 ++++++-
 xen/common/wait.c          |  1 +
 xen/include/xen/rcupdate.h | 75 +++++++++++++++++++++++++++++-------
 6 files changed, 146 insertions(+), 44 deletions(-)

-- 
2.16.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

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

end of thread, other threads:[~2020-03-13 11:22 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-12  8:28 [Xen-devel] [PATCH v5 0/4] xen/rcu: let rcu work better with core scheduling Juergen Gross
2020-03-12  8:28 ` [Xen-devel] [PATCH v5 1/4] xen/rcu: don't use stop_machine_run() for rcu_barrier() Juergen Gross
2020-03-13 11:02   ` Julien Grall
2020-03-13 11:18     ` Jürgen Groß
2020-03-13 11:22       ` Jan Beulich
2020-03-12  8:28 ` [Xen-devel] [PATCH v5 2/4] xen: don't process rcu callbacks when holding a rcu_read_lock() Juergen Gross
2020-03-12  8:28 ` [Xen-devel] [PATCH v5 3/4] xen/rcu: add assertions to debug build Juergen Gross
2020-03-13  8:09   ` Jürgen Groß
2020-03-12  8:28 ` [Xen-devel] [PATCH v5 4/4] xen/rcu: add per-lock counter in debug builds Juergen Gross

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.