)]}'
{
  "commit": "620162505e5d46bc4494b1761743e4b0b3bf8e16",
  "tree": "462e6d2ecdcfdaa117c5b926325a0ce1d565571e",
  "parents": [
    "f2f108eb4511f22a6f7568090cfcf4e7b2dc0f62"
  ],
  "author": {
    "name": "Hitoshi Mitake",
    "email": "mitake@dcl.info.waseda.ac.jp",
    "time": "Tue Oct 05 18:01:51 2010 +0900"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Mon Oct 18 18:44:25 2010 +0200"
  },
  "message": "lockdep: Add improved subclass caching\n\nCurrent lockdep_map only caches one class with subclass \u003d\u003d 0,\nand looks up hash table of classes when subclass !\u003d 0.\n\nIt seems that this has no problem because the case of\nsubclass !\u003d 0 is rare. But locks of struct rq are\nacquired with subclass \u003d\u003d 1 when task migration is executed.\nTask migration is high frequent event, so I modified lockdep\nto cache subclasses.\n\nI measured the score of perf bench sched messaging.\nThis patch has slightly but certain (order of milli seconds\nor 10 milli seconds) effect when lots of tasks are running.\nI\u0027ll show the result in the tail of this description.\n\nNR_LOCKDEP_CACHING_CLASSES specifies how many classes can be\ncached in the instances of lockdep_map.\nI discussed with Peter Zijlstra in LinuxCon Japan about\nthis approach and he taught me that caching every subclasses(8)\nis cleary waste of memory. So number of cached classes\nshould be configurable.\n\n\u003d\u003d\u003d Score comparison of benchmarks \u003d\u003d\u003d\n# \"min\" means best score, and \"max\" means worst score\n\nfor i in `seq 1 10`; do ./perf bench -f simple sched messaging; done\n\nbefore: min: 0.565000, max: 0.583000, avg: 0.572500\nafter:  min: 0.559000, max: 0.568000, avg: 0.563300\n\n# with more processes\nfor i in `seq 1 10`; do ./perf bench -f simple sched messaging -g 40; done\n\nbefore: min: 2.274000, max: 2.298000, avg: 2.286300\nafter:  min: 2.242000, max: 2.270000, avg: 2.259700\n\nSigned-off-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286269311-28336-2-git-send-email-mitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "06aed8305bf3bc38061dc42c168c3b9d83f29492",
      "old_mode": 33188,
      "old_path": "include/linux/lockdep.h",
      "new_id": "2186a64ee4b568f09649347b5bf04e5ed7a66cdb",
      "new_mode": 33188,
      "new_path": "include/linux/lockdep.h"
    },
    {
      "type": "modify",
      "old_id": "84baa71cfda56a89cc90c84b0fda30327c14b2e6",
      "old_mode": 33188,
      "old_path": "kernel/lockdep.c",
      "new_id": "bc4d32871f9a3ebdcea24b5c73d18a2ce50a28fd",
      "new_mode": 33188,
      "new_path": "kernel/lockdep.c"
    }
  ]
}
