)]}'
{
  "commit": "98e7dcbb82fa57de8dfad357f9b851c3625797fa",
  "tree": "18b2b79e656f29dc6553cc316e276a379695e572",
  "parents": [
    "b687034b1a4d85333ced0fe07f67b17276cccdc8",
    "9a08942f17017b708991c5089843d4a1bfac4420"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Dec 03 12:18:07 2025 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Dec 03 12:18:07 2025 -0800"
  },
  "message": "Merge tag \u0027rcu.release.v6.19\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux\n\nPull RCU updates from Frederic Weisbecker:\n \"SRCU:\n\n   - Properly handle SRCU readers within IRQ disabled sections in tiny\n     SRCU\n\n   - Preparation to reimplement RCU Tasks Trace on top of SRCU fast:\n\n      - Introduce API to expedite a grace period and test it through\n        rcutorture\n\n      - Split srcu-fast in two flavours: SRCU-fast and SRCU-fast-updown.\n\n        Both are still targeted toward faster readers (without full\n        barriers on LOCK and UNLOCK) at the expense of heavier write\n        side (using full RCU grace period ordering instead of simply\n        full ordering) as compared to \"traditional\" non-fast SRCU. But\n        those srcu-fast flavours are going to be optimized in two\n        different ways:\n\n          - SRCU-fast will become the reimplementation basis for\n            RCU-TASK-TRACE for consolidation. Since RCU-TASK-TRACE must\n            be NMI safe, SRCU-fast must be as well.\n\n          - SRCU-fast-updown will be needed for uretprobes code in order\n            to get rid of the read-side memory barriers while still\n            allowing entering the reader at task level while exiting it\n            in a timer handler. It is considered semaphore-like in that\n            it can have different owners between LOCK and UNLOCK.\n            However it is not NMI-safe.\n\n        The actual optimizations are work in progress for the next\n        cycle. Only the new interfaces are added for now, along with\n        related torture and scalability test code.\n\n   - Create/document/debug/torture new proper initializers for RCU fast:\n     DEFINE_SRCU_FAST() and init_srcu_struct_fast()\n\n     This allows for using right away the proper ordering on the write\n     side (either full ordering or full RCU grace period ordering)\n     without waiting for the read side to tell which to use.\n\n     This also optimizes the read side altogether with moving flavour\n     debug checks under debug config and with removing a costly RmW\n     operation on their first call.\n\n   - Make some diagnostic functions tracing safe\n\n  Refscale:\n\n   - Add performance testing for common context synchronizations\n     (Preemption, IRQ, Softirq) and per-cpu increments. Those are\n     relevant comparisons against SRCU-fast read side APIs, especially\n     as they are planned to synchronize further tracing fast-path code\n\n  Miscellanous:\n\n   - In order to prepare the layout for nohz_full work deferral to user\n     exit, the context tracking state must shrink the counter of\n     transitions to/from RCU not watching. The only possible hazard is\n     to trigger wrap-around more easily, delaying a bit grace periods\n     when that happens. This should be a rare event though. Yet add\n     debugging and torture code to test that assumption\n\n   - Fix memory leak on locktorture module\n\n   - Annotate accesses in rculist_nulls.h to prevent from KCSAN\n     warnings. On recent discussions, we also concluded that all those\n     WRITE_ONCE() and READ_ONCE() on list APIs deserve appropriate\n     comments. Something to be expected for the next cycle\n\n   - Provide a script to apply several configs to several commits with\n     torture\n\n   - Allow torture to reuse a build directory in order to save needless\n     rebuild time\n\n   - Various cleanups\"\n\n* tag \u0027rcu.release.v6.19\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux: (29 commits)\n  refscale: Add SRCU-fast-updown readers\n  refscale: Exercise DEFINE_STATIC_SRCU_FAST() and init_srcu_struct_fast()\n  rcutorture: Make srcu{,d}_torture_init() announce the SRCU type\n  srcu: Create an SRCU-fast-updown API\n  refscale: Do not disable interrupts for tests involving local_bh_enable()\n  refscale: Add non-atomic per-CPU increment readers\n  refscale: Add this_cpu_inc() readers\n  refscale: Add preempt_disable() readers\n  refscale: Add local_bh_disable() readers\n  refscale: Add local_irq_disable() and local_irq_save() readers\n  torture: Permit negative kvm.sh --kconfig numberic arguments\n  srcu: Add SRCU_READ_FLAVOR_FAST_UPDOWN CPP macro\n  rcu: Mark diagnostic functions as notrace\n  rcutorture: Make TREE04 use CONFIG_RCU_DYNTICKS_TORTURE\n  rcutorture: Remove redundant rcutorture_one_extend() from rcu_torture_one_read()\n  rcutorture: Permit kvm-again.sh to re-use the build directory\n  torture: Add kvm-series.sh to test commit/scenario combination\n  rcu: use WRITE_ONCE() for -\u003enext and -\u003epprev of hlist_nulls\n  locktorture: Fix memory leak in param_set_cpumask()\n  doc: Update for SRCU-fast definitions and initialization\n  ...\n",
  "tree_diff": []
}
