)]}'
{
  "commit": "39c0d3a9999cb74f45d2cfeabdbaa39a0591efe5",
  "tree": "f453098a993cb050bad54432e541bf5d53a3bb9c",
  "parents": [
    "548ace6baec9b2e4b0644a729b6a790672214e39"
  ],
  "author": {
    "name": "Paul E. McKenney",
    "email": "paulmck@kernel.org",
    "time": "Thu Jun 25 10:57:06 2026 -0700"
  },
  "committer": {
    "name": "Paul E. McKenney",
    "email": "paulmck@kernel.org",
    "time": "Thu Jun 25 10:57:06 2026 -0700"
  },
  "message": "rcutorture: Add nwriters module parameter\n\nBelieve it or not, there are people who would like to run rcutorture\nwithout actually torturing RCU.  For example, some people would like to\ninduce various types of stall warnings without placing any unnecessary\nadditional overhead on their systems running in production.  And\nrcutorture provides the stall_cpu, stall_cpu_holdoff, stall_no_softlockup,\nstall_cpu_irqsoff, stall_cpu_block, and stall_cpu_repeat module parameters\nin order to allow the user to force numerous types of stalls.  In addition,\nrcutorture provides a great number of other module parameters to allow the\nuser to reduce other overhead.\n\nBut unfortunately, there is no way to turn of the rcu_torture_writer()\nportion of this torture test, which on my x86 laptop consumes somewhere\nbetween 40% and 45% of a CPU.  Although this is quite lightweight for a\ntorture test, it is not welcome on systems running production workloads.\nThis commit therefore adds an nwriters module parameter that defaults\nto 1 but can be set to 0 in order to disable the rcu_torture_writer()\nportion of the torture test, but that cannot be set to any other value\n(that is what the fakewriters module parameter is for!).  This reduces\nthe overhead to well under 1% of a CPU, which is much more likely to be\ncompatible with production workloads.\n\nReported-by: Breno Leitao \u003cleitao@debian.org\u003e\nReported-by: Puranjay Mohan \u003cpuranjay@kernel.org\u003e\nReported-by: Usama Arif \u003cusama.arif@linux.dev\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "989131cea5cfa7aa8cdfa7e65c6a90ea4714f6dc",
      "old_mode": 33188,
      "old_path": "kernel/rcu/rcutorture.c",
      "new_id": "507a30e3a09a93ef8db4be8f9ec08b04d63497e0",
      "new_mode": 33188,
      "new_path": "kernel/rcu/rcutorture.c"
    }
  ]
}
