)]}'
{
  "commit": "4b3e975e4a06f1710693c5aa51b8f98facfa9863",
  "tree": "2ccc660fda43c6e0906b3d03bfb39a9dd81f7ade",
  "parents": [
    "fde97822a295da9dffa4af643b49a58ffc4516ad"
  ],
  "author": {
    "name": "Ralf Baechle",
    "email": "ralf@linux-mips.org",
    "time": "Thu Jun 21 00:22:34 2007 +0100"
  },
  "committer": {
    "name": "Ralf Baechle",
    "email": "ralf@linux-mips.org",
    "time": "Fri Jul 06 16:17:11 2007 +0100"
  },
  "message": "[MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores\n\nThe idle loop goes to sleep using the WAIT instruction if !need_resched().\nThis has is suffering from from a race condition that if if just after\nneed_resched has returned 0 an interrupt might set TIF_NEED_RESCHED but\nwe\u0027ve just completed the test so go to sleep anyway.  This would be\ntrivial to fix by just disabling interrupts during that sequence as in:\n\n        local_irq_disable();\n        if (!need_resched())\n                __asm__(\"wait\");\n        local_irq_enable();\n\nbut the processor architecture leaves it undefined if a processor calling\nWAIT with interrupts disabled will ever restart its pipeline and indeed\nsome processors have made use of the freedom provided by the architecture\ndefinition.  This has been resolved and the Config7.WII bit indicates that\nthe use of WAIT is safe on 24K, 24KE and 34K cores.  It also is safe on\n74K starting revision 2.1.0 so enable the use of WAIT with interrupts\ndisabled for 74K based on a c0_prid of at least that.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0fc90ba16ae1594d5ad7b9ba2dba771b954f1e05",
      "old_mode": 33188,
      "old_path": "arch/mips/kernel/cpu-probe.c",
      "new_id": "b12eeee0e9748f841d85de87dfe2f7a7c3503d69",
      "new_mode": 33188,
      "new_path": "arch/mips/kernel/cpu-probe.c"
    },
    {
      "type": "modify",
      "old_id": "9985cb7c16e726e22f90ef58f50692920c73ced6",
      "old_mode": 33188,
      "old_path": "include/asm-mips/mipsregs.h",
      "new_id": "89c81922d47cea5c5ea229cc6c87f1b5e525b9b7",
      "new_mode": 33188,
      "new_path": "include/asm-mips/mipsregs.h"
    }
  ]
}
