)]}'
{
  "commit": "31656519e132f6612584815f128c83976a9aaaef",
  "tree": "595349fdcd65988d7a43d647594dcea8a8a4e80b",
  "parents": [
    "577b4a58d2e74a4d48050eeea3e3f952ce04eb86"
  ],
  "author": {
    "name": "Peter Zijlstra",
    "email": "peterz@infradead.org",
    "time": "Fri Jul 18 18:01:23 2008 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Sun Jul 20 10:37:28 2008 +0200"
  },
  "message": "sched, x86: clean up hrtick implementation\n\nrandom uvesafb failures were reported against Gentoo:\n\n  http://bugs.gentoo.org/show_bug.cgi?id\u003d222799\n\nand Mihai Moldovan bisected it back to:\n\n\u003e 8f4d37ec073c17e2d4aa8851df5837d798606d6f is first bad commit\n\u003e commit 8f4d37ec073c17e2d4aa8851df5837d798606d6f\n\u003e Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\u003e Date:   Fri Jan 25 21:08:29 2008 +0100\n\u003e\n\u003e    sched: high-res preemption tick\n\nLinus suspected it to be hrtick + vm86 interaction and observed:\n\n\u003e Btw, Peter, Ingo: I think that commit is doing bad things. They aren\u0027t\n\u003e _incorrect_ per se, but they are definitely bad.\n\u003e\n\u003e Why?\n\u003e\n\u003e Using random _TIF_WORK_MASK flags is really impolite for doing\n\u003e \"scheduling\" work. There\u0027s a reason that arch/x86/kernel/entry_32.S\n\u003e special-cases the _TIF_NEED_RESCHED flag: we don\u0027t want to exit out of\n\u003e vm86 mode unnecessarily.\n\u003e\n\u003e See the \"work_notifysig_v86\" label, and how it does that\n\u003e \"save_v86_state()\" thing etc etc.\n\nRight, I never liked having to fiddle with those TIF flags. Initially I\nneeded it because the hrtimer base lock could not nest in the rq lock.\nThat however is fixed these days.\n\nCurrently the only reason left to fiddle with the TIF flags is remote\nwakeups. We cannot program a remote cpu\u0027s hrtimer. I\u0027ve been thinking\nabout using the new and improved IPI function call stuff to implement\nhrtimer_start_on().\n\nHowever that does require that smp_call_function_single(.wait\u003d0) works\nfrom interrupt context - /me looks at the latest series from Jens - Yes\nthat does seem to be supported, good.\n\nHere\u0027s a stab at cleaning this stuff up ...\n\nMihai reported test success as well.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Mihai Moldovan \u003cionic@ionic.de\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Antonino Daplas \u003cadaplas@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d92373630963f980fb5471a0d96d903b5d4b18bf",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/signal_32.c",
      "new_id": "e1fc7bd57bfe8733539808aadf08ae3bd752ec4f",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/signal_32.c"
    },
    {
      "type": "modify",
      "old_id": "e53b267662e712681d99b4b5ae6014af9bf790c1",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/signal_64.c",
      "new_id": "88023fcc7049e8e9f63766e12a81a8cf99d7a562",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/signal_64.c"
    },
    {
      "type": "modify",
      "old_id": "895339d2bc0bae799af368ec10efff5050d5afc3",
      "old_mode": 33188,
      "old_path": "include/asm-x86/thread_info.h",
      "new_id": "d7012634ace4c93a11c50ac81643c669c88ad2cf",
      "new_mode": 33188,
      "new_path": "include/asm-x86/thread_info.h"
    },
    {
      "type": "modify",
      "old_id": "526128a2e62297630c3207f263e80a4879659003",
      "old_mode": 33188,
      "old_path": "kernel/Kconfig.hz",
      "new_id": "2a202a846757f238cccb290033633e5778bd3bb9",
      "new_mode": 33188,
      "new_path": "kernel/Kconfig.hz"
    },
    {
      "type": "modify",
      "old_id": "1ee18dbb451659de9feb1de076708a89777d22a6",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "c13c75e9f9f7cff775fbe8adc15f3254928e281c",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    },
    {
      "type": "modify",
      "old_id": "f2aa987027d695750f2ca4b8f917d02171eeb3b8",
      "old_mode": 33188,
      "old_path": "kernel/sched_fair.c",
      "new_id": "6893b3ed65fe4b6f9d2082ed99a7346e5a370c35",
      "new_mode": 33188,
      "new_path": "kernel/sched_fair.c"
    }
  ]
}
