)]}'
{
  "log": [
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "02f36038c568111ad4fc433f6fa760ff5e38fab4",
      "tree": "78e6ef15798c6e9d1052eab7f7d3a0db0ec908e5",
      "parents": [
        "6c2754c28f2388a276fe21edde826f2113c8f60e",
        "676cb02dc32adef13d9efb5ea52079e4ede1e3ec",
        "07bd8516a2f967aa67904c68ab97bb896a448b09",
        "50f2d7f682f9c0ed58191d0982fe77888d59d162",
        "892df7f81c31ce7f85778aa78094e8d1f19b8413",
        "68f4d5a00adaab33b136fce2c72d5c377b39b0b0",
        "b365a85c68161ea5db5476eb8845a91ceb1777ea",
        "6554287b1de0448f1e02e200d02b43914e997d15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 08:25:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 08:25:36 2010 -0700"
      },
      "message": "Merge branches \u0027softirq-for-linus\u0027, \u0027x86-debug-for-linus\u0027, \u0027x86-numa-for-linus\u0027, \u0027x86-quirks-for-linus\u0027, \u0027x86-setup-for-linus\u0027, \u0027x86-uv-for-linus\u0027 and \u0027x86-vm86-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027softirq-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  softirqs: Make wakeup_softirqd static\n\n* \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, asm: Restore parentheses around one pushl_cfi argument\n  x86, asm: Fix ancient-GAS workaround\n  x86, asm: Fix CFI macro invocations to deal with shortcomings in gas\n\n* \u0027x86-numa-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, numa: Assign CPUs to nodes in round-robin manner on fake NUMA\n\n* \u0027x86-quirks-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: HPET force enable for CX700 / VIA Epia LT\n\n* \u0027x86-setup-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, setup: Use string copy operation to optimze copy in kernel compression\n\n* \u0027x86-uv-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, UV: Use allocated buffer in tlb_uv.c:tunables_read()\n\n* \u0027x86-vm86-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, vm86: Fix preemption bug for int1 debug and int3 breakpoint handlers.\n"
    },
    {
      "commit": "8814011679d1a47d8b0158fc991727a5859471a0",
      "tree": "f5d84ea8dba4fb7e18312deb04ff51ba35f9b901",
      "parents": [
        "5cc103506289de7ee0a0b526ae0381541990cad4",
        "495363d380b4f4745bd8677912688654afc44020"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 20:35:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 20:35:12 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  kdb,debug_core: adjust master cpu switch logic against new debug_core locking\n  debug_core: refactor locking for master/slave cpus\n  x86,kgdb: remove unnecessary call to kgdb_correct_hw_break()\n  debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter()\n  kdb,kgdb: fix sparse fixups\n  kdb: Fix oops in kdb_unregister\n  kdb,ftdump: Remove reference to internal kdb include\n  kdb: Allow kernel loadable modules to add kdb shell functions\n  debug_core: stop rcu warnings on kernel resume\n  debug_core: move all watch dog syncs to a single function\n  x86,kgdb: fix debugger hw breakpoint test regression in 2.6.35\n"
    },
    {
      "commit": "91b745016c12d440386c40fb76ab69c8e08cbc06",
      "tree": "881a26a43b3ee924c0979a54b38c7a87d79d7f1a",
      "parents": [
        "04cc69768e7d1f40d98b79d23d203674553b4da2",
        "daaae6b010ac0f60c9c35e481589966f9f1fcc22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:13:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:13:10 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: remove in_workqueue_context()\n  workqueue: Clarify that schedule_on_each_cpu is synchronous\n  memory_hotplug: drop spurious calls to flush_scheduled_work()\n  shpchp: update workqueue usage\n  pciehp: update workqueue usage\n  isdn/eicon: don\u0027t call flush_scheduled_work() from diva_os_remove_soft_isr()\n  workqueue: add and use WQ_MEM_RECLAIM flag\n  workqueue: fix HIGHPRI handling in keep_working()\n  workqueue: add queue_work and activate_work trace points\n  workqueue: prepare for more tracepoints\n  workqueue: implement flush[_delayed]_work_sync()\n  workqueue: factor out start_flush_work()\n  workqueue: cleanup flush/cancel functions\n  workqueue: implement alloc_ordered_workqueue()\n\nFix up trivial conflict in fs/gfs2/main.c as per Tejun\n"
    },
    {
      "commit": "495363d380b4f4745bd8677912688654afc44020",
      "tree": "647032c22f9e77f91578dcae864776849dbcbfa8",
      "parents": [
        "dfee3a7b92208b30f77876068aece9ea571270c2"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri May 21 08:46:00 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:13 2010 -0500"
      },
      "message": "kdb,debug_core: adjust master cpu switch logic against new debug_core locking\n\nThe kdb shell needs to enforce switching back to the original CPU that\ntook the exception before restoring normal kernel execution.  Resuming\nfrom a different CPU than what took the original exception will cause\nproblems with spin locks that are freed from the a different processor\nthan had taken the lock.\n\nThe special logic in dbg_cpu_switch() can go away entirely with\nbecause the state of what cpus want to be masters or slaves will\nremain unchanged between entry and exit of the debug_core exception\ncontext.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "dfee3a7b92208b30f77876068aece9ea571270c2",
      "tree": "de243b8c2e1a3b5dea007b1fb79f1e7b4a8263ba",
      "parents": [
        "39a0715f5ace92268190c89e246fd1cf741dbaea"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri May 21 08:46:00 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:13 2010 -0500"
      },
      "message": "debug_core: refactor locking for master/slave cpus\n\nFor quite some time there have been problems with memory barriers and\nvarious races with NMI on multi processor systems using the kernel\ndebugger.  The algorithm for entering the kernel debug core and\nresuming kernel execution was racy and had several known edge case\nproblems with attempting to debug something on a heavily loaded system\nusing breakpoints that are hit repeatedly and quickly.\n\nThe prior \"locking\" design entry worked as follows:\n\n  * The atomic counter kgdb_active was used with atomic exchange in\n    order to elect a master cpu out of all the cpus that may have\n    taken a debug exception.\n  * The master cpu increments all elements of passive_cpu_wait[].\n  * The master cpu issues the round up cpus message.\n  * Each \"slave cpu\" that enters the debug core increments its own\n    element in cpu_in_kgdb[].\n  * Each \"slave cpu\" spins on passive_cpu_wait[] until it becomes 0.\n  * The master cpu debugs the system.\n\nThe new scheme removes the two arrays of atomic counters and replaces\nthem with 2 single counters.  One counter is used to count the number\nof cpus waiting to become a master cpu (because one or more hit an\nexception). The second counter is use to indicate how many cpus have\nentered as slave cpus.\n\nThe new entry logic works as follows:\n\n  * One or more cpus enters via kgdb_handle_exception() and increments\n    the masters_in_kgdb. Each cpu attempts to get the spin lock called\n    dbg_master_lock.\n  * The master cpu sets kgdb_active to the current cpu.\n  * The master cpu takes the spinlock dbg_slave_lock.\n  * The master cpu asks to round up all the other cpus.\n  * Each slave cpu that is not already in kgdb_handle_exception()\n    will enter and increment slaves_in_kgdb.  Each slave will now spin\n    try_locking on dbg_slave_lock.\n  * The master cpu waits for the sum of masters_in_kgdb and slaves_in_kgdb\n    to be equal to the sum of the online cpus.\n  * The master cpu debugs the system.\n\nIn the new design the kgdb_active can only be changed while holding\ndbg_master_lock.  Stress testing has not turned up any further\nentry/exit races that existed in the prior locking design.  The prior\nlocking design suffered from atomic variables not being truly atomic\n(in the capacity as used by kgdb) along with memory barrier races.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\n"
    },
    {
      "commit": "c1bb9a9c1911036549c5cdfb23f32d7d20ffdc5a",
      "tree": "8d86976df36697e54ae3582d6c30b7355a942647",
      "parents": [
        "91b152aa85bbcf076e269565394c31964f940371"
      ],
      "author": {
        "name": "Dongdong Deng",
        "email": "dongdong.deng@windriver.com",
        "time": "Mon Sep 13 06:58:00 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:12 2010 -0500"
      },
      "message": "debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter()\n\nThe slave cpus do not have the hw breakpoints disabled upon entry to\nthe debug_core and as a result could cause unrecoverable recursive\nfaults on badly placed breakpoints, or get out of sync with the arch\nspecific hw breakpoint operations.\n\nThis patch addresses the problem by invoking kgdb_disable_hw_debug()\nearlier in kgdb_enter_cpu for each cpu that enters the debug core.\n\nThe hw breakpoint dis/enable flow should be:\n\nmaster_debug_cpu   slave_debug_cpu\n         \\              /\n          kgdb_cpu_enter\n                |\n        kgdb_disable_hw_debug --\u003e uninstall pre-enabled hw_breakpoint\n                |\n do add/rm dis/enable operates to hw_breakpoints on master_debug_cpu..\n                |\n        correct_hw_break --\u003e correct/install the enabled hw_breakpoint\n                |\n           leave_kgdb\n\nSigned-off-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "91b152aa85bbcf076e269565394c31964f940371",
      "tree": "32b2a8684877a15b050ef21c8ddcd583b695538d",
      "parents": [
        "75d14edee5689716b55afe467acfc13206a31f95"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 23 09:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:12 2010 -0500"
      },
      "message": "kdb,kgdb: fix sparse fixups\n\nFix the following sparse warnings:\n\nkdb_main.c:328:5: warning: symbol \u0027kdbgetu64arg\u0027 was not declared. Should it be static?\nkgdboc.c:246:12: warning: symbol \u0027kgdboc_early_init\u0027 was not declared. Should it be static?\nkgdb.c:652:26: warning: incorrect type in argument 1 (different address spaces)\nkgdb.c:652:26:    expected void const *ptr\nkgdb.c:652:26:    got struct perf_event *[noderef] \u003casn:3\u003e*pev\n\nThe one in kgdb.c required the (void * __force) because of the return\ncode from register_wide_hw_breakpoint looking like:\n\n        return (void __percpu __force *)ERR_PTR(err);\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "75d14edee5689716b55afe467acfc13206a31f95",
      "tree": "2646d65a43916e2eac7e24e8b23f1f82918b6702",
      "parents": [
        "e3bda3ac33d3bf3e5a4049e2cabe82d3caaffc26"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Oct 11 10:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:12 2010 -0500"
      },
      "message": "kdb: Fix oops in kdb_unregister\n\nNothing should try to use kdb_commands directly as sometimes it is\nnull.  Instead, use the for_each_kdbcmd() iterator.\n\nThis particular problem dates back to the initial kdb merge (2.6.35),\nbut at that point nothing was dynamically unregistering commands from\nthe kdb shell.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "e3bda3ac33d3bf3e5a4049e2cabe82d3caaffc26",
      "tree": "e8ce99ce6b807b5929b8dd0920fcbefa8a59bc1c",
      "parents": [
        "f7030bbc446430ecd12c9ad02cf0ea94934e5f91"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Oct 11 10:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:11 2010 -0500"
      },
      "message": "kdb,ftdump: Remove reference to internal kdb include\n\nNow that include/linux/kdb.h properly exports all the functions\nrequired to dynamically add a kdb shell command, the reference to the\nprivate kdb header can be removed.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "f7030bbc446430ecd12c9ad02cf0ea94934e5f91",
      "tree": "1a281ffa0c2686fa898081781a0c7b9bbc2d5b00",
      "parents": [
        "fb70b5888b70b0b50f738fbfc019445493112eb1"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Oct 11 10:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:11 2010 -0500"
      },
      "message": "kdb: Allow kernel loadable modules to add kdb shell functions\n\nIn order to allow kernel modules to dynamically add a command to the\nkdb shell the kdb_register, kdb_register_repeat, kdb_unregister, and\nkdb_printf need to be exported as GPL symbols.\n\nAny kernel module that adds a dynamic kdb shell function should only\nneed to include linux/kdb.h.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "fb70b5888b70b0b50f738fbfc019445493112eb1",
      "tree": "ee35bfc0e78af0702756d15e05ed09f0f56e18ac",
      "parents": [
        "16cdc628c3aed47d02205135b7e2f01e0064f566"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Aug 13 12:44:04 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:10 2010 -0500"
      },
      "message": "debug_core: stop rcu warnings on kernel resume\n\nWhen returning from the kernel debugger reset the rcu jiffies_stall\nvalue to prevent the rcu stall detector from sending NMI events which\ninvoke a stack dump for each cpu in the system.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "16cdc628c3aed47d02205135b7e2f01e0064f566",
      "tree": "8f8709ee2b9e2c5f38e1261dcc773887d092f73d",
      "parents": [
        "fad99fac2627e2cc0ebfe07fcb5046c0b4e103f9"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Aug 06 11:47:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:10 2010 -0500"
      },
      "message": "debug_core: move all watch dog syncs to a single function\n\nMove the various clock and watch dog syncs to a single function in\nadvance of adding another sync for the rcu stall detector.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
      "tree": "3bb53b7806c1baba6cc24b91724a9264cceccd39",
      "parents": [
        "c37927d4359e81b85de644f8fb08878717cf5f3f",
        "6d7bccc2215c37205ede6c9cf84db64e7c4f9443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "message": "Merge branch \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: (30 commits)\n  BKL: remove BKL from freevxfs\n  BKL: remove BKL from qnx4\n  autofs4: Only declare function when CONFIG_COMPAT is defined\n  autofs: Only declare function when CONFIG_COMPAT is defined\n  ncpfs: Lock socket in ncpfs while setting its callbacks\n  fs/locks.c: prepare for BKL removal\n  BKL: Remove BKL from ncpfs\n  BKL: Remove BKL from OCFS2\n  BKL: Remove BKL from squashfs\n  BKL: Remove BKL from jffs2\n  BKL: Remove BKL from ecryptfs\n  BKL: Remove BKL from afs\n  BKL: Remove BKL from USB gadgetfs\n  BKL: Remove BKL from autofs4\n  BKL: Remove BKL from isofs\n  BKL: Remove BKL from fat\n  BKL: Remove BKL from ext2 filesystem\n  BKL: Remove BKL from do_new_mount()\n  BKL: Remove BKL from cgroup\n  BKL: Remove BKL from NTFS\n  ...\n"
    },
    {
      "commit": "5704e44d283e907623e3775c1262f206a2c48cf3",
      "tree": "0a981b24173e90854e7b7d812b35859e1e5f0174",
      "parents": [
        "91151240ed8e97cc4457dae4094153c2744f1eb8",
        "6de5bd128d381ad88ac6d419a5e597048eb468cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "message": "Merge branch \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  BKL: introduce CONFIG_BKL.\n  dabusb: remove the BKL\n  sunrpc: remove the big kernel lock\n  init/main.c: remove BKL notations\n  blktrace: remove the big kernel lock\n  rtmutex-tester: make it build without BKL\n  dvb-core: kill the big kernel lock\n  dvb/bt8xx: kill the big kernel lock\n  tlclk: remove big kernel lock\n  fix rawctl compat ioctls breakage on amd64 and itanic\n  uml: kill big kernel lock\n  parisc: remove big kernel lock\n  cris: autoconvert trivial BKL users\n  alpha: kill big kernel lock\n  isapnp: BKL removal\n  s390/block: kill the big kernel lock\n  hpet: kill BKL, add compat_ioctl\n"
    },
    {
      "commit": "d4429f608abde89e8bc1e24b43cd503feb95c496",
      "tree": "4c11afa193593a5e3949391bf35022b4f87ba375",
      "parents": [
        "e10117d36ef758da0690c95ecffc09d5dd7da479",
        "6a1c9dfe4186f18fed38421b35b40fb9260cbfe1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 21:19:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 21:19:54 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (71 commits)\n  powerpc/44x: Update ppc44x_defconfig\n  powerpc/watchdog: Make default timeout for Book-E watchdog a Kconfig option\n  fsl_rio: Add comments for sRIO registers.\n  powerpc/fsl-booke: Add e55xx (64-bit) smp defconfig\n  powerpc/fsl-booke: Add p5020 DS board support\n  powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips\n  powerpc/fsl-booke: Add support for FSL Arch v1.0 MMU in setup_page_sizes\n  powerpc/fsl-booke: Add support for FSL 64-bit e5500 core\n  powerpc/85xx: add cache-sram support\n  powerpc/85xx: add ngPIXIS FPGA device tree node to the P1022DS board\n  powerpc: Fix compile error with paca code on ppc64e\n  powerpc/fsl-booke: Add p3041 DS board support\n  oprofile/fsl emb: Don\u0027t set MSR[PMM] until after clearing the interrupt.\n  powerpc/fsl-booke: Add PCI device ids for P2040/P3041/P5010/P5020 QoirQ chips\n  powerpc/mpc8xxx_gpio: Add support for \u0027qoriq-gpio\u0027 controllers\n  powerpc/fsl_booke: Add support to boot from core other than 0\n  powerpc/p1022: Add probing for individual DMA channels\n  powerpc/fsl_soc: Search all global-utilities nodes for rstccr\n  powerpc: Fix invalid page flags in create TLB CAM path for PTE_64BIT\n  powerpc/mpc83xx: Support for MPC8308 P1M board\n  ...\n\nFix up conflict with the generic irq_work changes in arch/powerpc/kernel/time.c\n"
    },
    {
      "commit": "3044100e58c84e133791c8b60a2f5bef69d732e4",
      "tree": "f9ed0d1f3df89c31dd81ccaf0cf3478f57b08440",
      "parents": [
        "b5153163ed580e00c67bdfecb02b2e3843817b3e",
        "67e87f0a1c5cbc750f81ebf6a128e8ff6f4376cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 18:52:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 18:52:11 2010 -0700"
      },
      "message": "Merge branch \u0027core-memblock-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-memblock-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (74 commits)\n  x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S\n  xen: Cope with unmapped pages when initializing kernel pagetable\n  memblock, bootmem: Round pfn properly for memory and reserved regions\n  memblock: Annotate memblock functions with __init_memblock\n  memblock: Allow memblock_init to be called early\n  memblock/arm: Fix memblock_region_is_memory() typo\n  x86, memblock: Remove __memblock_x86_find_in_range_size()\n  memblock: Fix wraparound in find_region()\n  x86-32, memblock: Make add_highpages honor early reserved ranges\n  x86, memblock: Fix crashkernel allocation\n  arm, memblock: Fix the sparsemem build\n  memblock: Fix section mismatch warnings\n  powerpc, memblock: Fix memblock API change fallout\n  memblock, microblaze: Fix memblock API change fallout\n  x86: Remove old bootmem code\n  x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve\n  x86: Remove not used early_res code\n  x86, memblock: Replace e820_/_early string with memblock_\n  x86: Use memblock to replace early_res\n  x86, memblock: Use memblock_debug to control debug message print out\n  ...\n\nFix up trivial conflicts in arch/x86/kernel/setup.c and kernel/Makefile\n"
    },
    {
      "commit": "b5153163ed580e00c67bdfecb02b2e3843817b3e",
      "tree": "b8c878601f07f5df8f694435857a5f3dcfd75482",
      "parents": [
        "a8cbf22559ceefdcdfac00701e8e6da7518b7e8e",
        "6451d7783ba5ff24eb1a544eaa6665b890f30466"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 16:42:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 16:42:32 2010 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (278 commits)\n  arm: remove machine_desc.io_pg_offst and .phys_io\n  arm: use addruart macro to establish debug mappings\n  arm: return both physical and virtual addresses from addruart\n  arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC\n  ARM: make struct machine_desc definition coherent with its comment\n  eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free\n  cpuimx27: fix compile when ULPI is selected\n  mach-pcm037_eet: fix compile errors\n  Fixing ethernet driver compilation error for i.MX31 ADS board\n  cpuimx51: update board support\n  mx5: add cpuimx51sd module and its baseboard\n  iomux-mx51: fix GPIO_1_xx \u0027s IOMUX configuration\n  imx-esdhc: update devices registration\n  mx51: add resources for SD/MMC on i.MX51\n  iomux-mx51: fix SD1 and SD2\u0027s iomux configuration\n  clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability\n  clock-mx51: factorize clk_set_parent and clk_get_rate\n  eukrea_mbimxsd: add support for DVI displays\n  cpuimx25 \u0026 cpuimx35: fix OTG port registration in host mode\n  i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472\n  ...\n"
    },
    {
      "commit": "a8cbf22559ceefdcdfac00701e8e6da7518b7e8e",
      "tree": "63ebd5779a37f809f7daed77dbf27aa3f1e1110c",
      "parents": [
        "e36f561a2c88394ef2708f1ab300fe8a79e9f651",
        "9c034392533f3e9f00656d5c58478cff2560ef81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:53:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:53:17 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: (26 commits)\n  PM / Wakeup: Show wakeup sources statistics in debugfs\n  PM: Introduce library for device-specific OPPs (v7)\n  PM: Add sysfs attr for rechecking dev hash from PM trace\n  PM: Lock PM device list mutex in show_dev_hash()\n  PM / Runtime: Remove idle notification after failing suspend\n  PM / Hibernate: Modify signature used to mark swap\n  PM / Runtime: Reduce code duplication in core helper functions\n  PM: Allow wakeup events to abort freezing of tasks\n  PM: runtime: add missed pm_request_autosuspend\n  PM / Hibernate: Make some boot messages look less scary\n  PM / Runtime: Implement autosuspend support\n  PM / Runtime: Add no_callbacks flag\n  PM / Runtime: Combine runtime PM entry points\n  PM / Runtime: Merge synchronous and async runtime routines\n  PM / Runtime: Replace boolean arguments with bitflags\n  PM / Runtime: Move code in drivers/base/power/runtime.c\n  sysfs: Add sysfs_merge_group() and sysfs_unmerge_group()\n  PM: Fix potential issue with failing asynchronous suspend\n  PM / Wakeup: Introduce wakeup source objects and event statistics (v3)\n  PM: Fix signed/unsigned warning in dpm_show_time()\n  ...\n"
    },
    {
      "commit": "4a60cfa9457749f7987fd4f3c956dbba5a281129",
      "tree": "85f3633276282cde0a3ac558d988704eaa3e68af",
      "parents": [
        "62bea97f54d806218a992b18d1f425cfb5060175",
        "27afdf2008da0b8878a73e32e4eb12381b84e224"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:11:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:11:46 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (96 commits)\n  apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets\n  apic, x86: Check if EILVT APIC registers are available (AMD only)\n  x86: ioapic: Call free_irte only if interrupt remapping enabled\n  arm: Use ARCH_IRQ_INIT_FLAGS\n  genirq, ARM: Fix boot on ARM platforms\n  genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED\u003dy build\n  x86: Switch sparse_irq allocations to GFP_KERNEL\n  genirq: Switch sparse_irq allocator to GFP_KERNEL\n  genirq: Make sparse_lock a mutex\n  x86: lguest: Use new irq allocator\n  genirq: Remove the now unused sparse irq leftovers\n  genirq: Sanitize dynamic irq handling\n  genirq: Remove arch_init_chip_data()\n  x86: xen: Sanitise sparse_irq handling\n  x86: Use sane enumeration\n  x86: uv: Clean up the direct access to irq_desc\n  x86: Make io_apic.c local functions static\n  genirq: Remove irq_2_iommu\n  x86: Speed up the irq_remapped check in hot pathes\n  intr_remap: Simplify the code further\n  ...\n\nFix up trivial conflicts in arch/x86/Kconfig\n"
    },
    {
      "commit": "62bea97f54d806218a992b18d1f425cfb5060175",
      "tree": "56269aab888af586f4f63ed6a05286d11e46168c",
      "parents": [
        "b61f6a57f1919ef8dbd33f864df9b8b361c65b11",
        "8af3c153baf95374eff20a37f00c59a295b52756"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:08:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:08:08 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ntp: Clamp PLL update interval\n"
    },
    {
      "commit": "b61f6a57f1919ef8dbd33f864df9b8b361c65b11",
      "tree": "9341bc1a3f6a8fdcd19f97d5bcf1a658ab7fc92c",
      "parents": [
        "0575db881d18a4791013fc93ba756ad08b18fb48",
        "fb62db2ba943b1683f1d7181bb2988fce4c60870"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:06:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:06:17 2010 -0700"
      },
      "message": "Merge branch \u0027futexes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027futexes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  futex: Fix kernel-doc notation \u0026 typos\n  futex: Add lock context annotations\n  futex: Mark restart_block.futex.uaddr[2] __user\n  futex: Change 3rd arg of fetch_robust_entry() to unsigned int*\n"
    },
    {
      "commit": "0575db881d18a4791013fc93ba756ad08b18fb48",
      "tree": "fa0d9a789c1e74d4c94a2cda283b61bcc68ec7f9",
      "parents": [
        "c029e405bd3d4e92d09fbbc97c03952585986ebe",
        "7ada876a8703f23befbb20a7465a702ee39b1704"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:05:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:05:55 2010 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  futex: Fix errors in nested key ref-counting\n"
    },
    {
      "commit": "bc4016f48161454a9a8e5eb209b0693c6cde9f62",
      "tree": "f470f5d711e975b152eec90282f5dd30a1d5dba5",
      "parents": [
        "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
        "b7dadc38797584f6203386da1947ed5edf516646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:55:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:55:43 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (29 commits)\n  sched: Export account_system_vtime()\n  sched: Call tick_check_idle before __irq_enter\n  sched: Remove irq time from available CPU power\n  sched: Do not account irq time to current task\n  x86: Add IRQ_TIME_ACCOUNTING\n  sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time\n  sched: Add a PF flag for ksoftirqd identification\n  sched: Consolidate account_system_vtime extern declaration\n  sched: Fix softirq time accounting\n  sched: Drop group_capacity to 1 only if local group has extra capacity\n  sched: Force balancing on newidle balance if local group has capacity\n  sched: Set group_imb only a task can be pulled from the busiest cpu\n  sched: Do not consider SCHED_IDLE tasks to be cache hot\n  sched: Drop all load weight manipulation for RT tasks\n  sched: Create special class for stop/migrate work\n  sched: Unindent labels\n  sched: Comment updates: fix default latency and granularity numbers\n  tracing/sched: Add sched_pi_setprio tracepoint\n  sched: Give CPU bound RT tasks preference\n  sched: Try not to migrate higher priority RT tasks\n  ...\n"
    },
    {
      "commit": "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
      "tree": "a0d6de0930ba83ecf4629c2e2e261f5eaa2d8f33",
      "parents": [
        "888a6f77e0418b049f83d37547c209b904d30af4",
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits)\n  tracing: Fix compile issue for trace_sched_wakeup.c\n  [S390] hardirq: remove pointless header file includes\n  [IA64] Move local_softirq_pending() definition\n  perf, powerpc: Fix power_pmu_event_init to not use event-\u003ectx\n  ftrace: Remove recursion between recordmcount and scripts/mod/empty\n  jump_label: Add COND_STMT(), reducer wrappery\n  perf: Optimize sw events\n  perf: Use jump_labels to optimize the scheduler hooks\n  jump_label: Add atomic_t interface\n  jump_label: Use more consistent naming\n  perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n  perf: Find task before event alloc\n  perf: Fix task refcount bugs\n  perf: Fix group moving\n  irq_work: Add generic hardirq context callbacks\n  perf_events: Fix transaction recovery in group_sched_in()\n  perf_events: Fix bogus AMD64 generic TLB events\n  perf_events: Fix bogus context time tracking\n  tracing: Remove parent recording in latency tracer graph options\n  tracing: Use one prologue for the preempt irqs off tracer function tracers\n  ...\n"
    },
    {
      "commit": "888a6f77e0418b049f83d37547c209b904d30af4",
      "tree": "42cdb9f781d2177e6b380e69a66a27ec7705f51f",
      "parents": [
        "31b7eab27a314b153d8fa07ba9e9ec00a98141e1",
        "6506cf6ce68d78a5470a8360c965dafe8e4b78e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits)\n  sched: fix RCU lockdep splat from task_group()\n  rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp-\u003eqsmask value\n  sched: suppress RCU lockdep splat in task_fork_fair\n  net: suppress RCU lockdep false positive in sock_update_classid\n  rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held\n  rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter\n  rcu: Add tracing data to support queueing models\n  rcu: fix sparse errors in rcutorture.c\n  rcu: only one evaluation of arg in rcu_dereference_check() unless sparse\n  kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC\n  rcu: fix _oddness handling of verbose stall warnings\n  rcu: performance fixes to TINY_PREEMPT_RCU callback checking\n  rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes\n  vhost: add __rcu annotations\n  rcu: add comment stating that list_empty() applies to RCU-protected lists\n  rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU\n  rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU\n  rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods\n  rcu: document ways of stalling updates in low-memory situations\n  rcu: repair code-duplication FIXMEs\n  ...\n"
    },
    {
      "commit": "31b7eab27a314b153d8fa07ba9e9ec00a98141e1",
      "tree": "47415377d5f9bcf8c06e501f1636088548202edf",
      "parents": [
        "1053e6bba091d9d18797f7789df6a7ef8735f20c",
        "4ba053c04aece1f4734056f21b751eee47ea3fb1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:49:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:49:31 2010 -0700"
      },
      "message": "Merge branch \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  lockdep: Check the depth of subclass\n  lockdep: Add improved subclass caching\n  affs: Use sema_init instead of init_MUTEX\n  hfs: Convert tree_lock to mutex\n  arm: Bcmring: semaphore cleanup\n  printk: Make console_sem a semaphore not a pseudo mutex\n  drivers/macintosh/adb: Do not claim that the semaphore is a mutex\n  parport: Semaphore cleanup\n  irda: Semaphore cleanup\n  net: Wan/cosa.c: Convert \"mutex\" to semaphore\n  net: Ppp_async: semaphore cleanup\n  hamradio: Mkiss: semaphore cleanup\n  hamradio: 6pack: semaphore cleanup\n  net: 3c527: semaphore cleanup\n  input: Serio/hp_sdc: semaphore cleanup\n  input: Serio/hil_mlc: semaphore cleanup\n  input: Misc/hp_sdc_rtc: semaphore cleanup\n  lockup_detector: Make callback function static\n  lockup detector: Fix grammar by adding a missing \"to\" in the comments\n  lockdep: Remove __debug_show_held_locks\n"
    },
    {
      "commit": "b0ae19811375031ae3b3fecc65b702a9c6e5cc28",
      "tree": "a765b71155fbed1ed3a3cff35c1044ad49a002ae",
      "parents": [
        "9b3056cca09529d34af2d81305b2a9c6b622ca1b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Oct 15 04:21:18 2010 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Oct 21 10:12:44 2010 +1100"
      },
      "message": "security: remove unused parameter from security_task_setscheduler()\n\nAll security modules shouldn\u0027t change sched_param parameter of\nsecurity_task_setscheduler().  This is not only meaningless, but also\nmake a harmful result if caller pass a static variable.\n\nThis patch remove policy and sched_param parameter from\nsecurity_task_setscheduler() becuase none of security module is\nusing it.\n\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "14d4962dc863ab42e898d66d4837aa6c3afedc3b",
      "tree": "780cb53645b781dfd33b6d0ad21e0596f2ad1a1a",
      "parents": [
        "9717967c4b704ce344c954afb5bb160aa9c01c34",
        "2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 20 04:38:56 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 20 04:38:59 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/core\n\nMerge reason: update to almost-final-.36\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "809b4e00baf006a990a73329ba381d536c6fa277",
      "tree": "e949e0efd019d6f932537aba762792b07a84351c",
      "parents": [
        "a0a55682b83fd5f012afadcf415b030d7424ae68",
        "79a94c3538bda6869d7bb150b5e02dd3a72314dd"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Oct 19 22:06:36 2010 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Oct 19 22:06:36 2010 +0100"
      },
      "message": "Merge branch \u0027devel-stable\u0027 into devel\n"
    },
    {
      "commit": "750ed158bf6c782d2813da1bca2c824365a0b777",
      "tree": "49bc9fb43e5211c97c8e572cb5b6b9352ea1aa14",
      "parents": [
        "3f7edb1656e5beba2b5e617d31e4064e1eed0bc0",
        "7e40798f406fe73f9bac496a390daabd8768a8f7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 19 20:41:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 19 20:41:38 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "7e40798f406fe73f9bac496a390daabd8768a8f7",
      "tree": "c75eee47b3d324218c53bf4f6af5b2fa9780d1db",
      "parents": [
        "78c89ba121221d9224a5747803d7fffe51cd6e44"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 19 10:56:19 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 19 10:56:19 2010 -0400"
      },
      "message": "tracing: Fix compile issue for trace_sched_wakeup.c\n\nThe function start_func_tracer() was incorrectly added in the\n #ifdef CONFIG_FUNCTION_TRACER condition, but is still used even\nwhen function tracing is not enabled.\n\nThe calls to register_ftrace_function() and register_ftrace_graph()\nbecome nops (and their arguments are even ignored), thus there is\nno reason to hide start_func_tracer() when function tracing is\nnot enabled.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7ada876a8703f23befbb20a7465a702ee39b1704",
      "tree": "adee9cf8676fed56a0a6ad1d270ae5fb84d32553",
      "parents": [
        "2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e"
      ],
      "author": {
        "name": "Darren Hart",
        "email": "dvhart@linux.intel.com",
        "time": "Sun Oct 17 08:35:04 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 19 11:41:54 2010 +0200"
      },
      "message": "futex: Fix errors in nested key ref-counting\n\nfutex_wait() is leaking key references due to futex_wait_setup()\nacquiring an additional reference via the queue_lock() routine. The\nnested key ref-counting has been masking bugs and complicating code\nanalysis. queue_lock() is only called with a previously ref-counted\nkey, so remove the additional ref-counting from the queue_(un)lock()\nfunctions.\n\nAlso futex_wait_requeue_pi() drops one key reference too many in\nunqueue_me_pi(). Remove the key reference handling from\nunqueue_me_pi(). This was paired with a queue_lock() in\nfutex_lock_pi(), so the count remains unchanged.\n\nDocument remaining nested key ref-counting sites.\n\nSigned-off-by: Darren Hart \u003cdvhart@linux.intel.com\u003e\nReported-and-tested-by: Matthieu Fertré\u003cmatthieu.fertre@kerlabs.com\u003e\nReported-by: Louis Rilling\u003clouis.rilling@kerlabs.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c4CBB17A8.70401@linux.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "01b284f9b6d51cc3f3bcf3b49f16d2601d3ca22d",
      "tree": "686f6c3cb92f172c96eeb853c58cb343bbb5dd94",
      "parents": [
        "0fc86c7bd924debd0bddee790ecc884604fdcc63"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Sep 17 20:39:22 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 19 11:29:57 2010 +0200"
      },
      "message": "blktrace: remove the big kernel lock\n\nAccording to Jens, this code does not need the BKL at all,\nit is sufficiently serialized by bd_mutex.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0fc86c7bd924debd0bddee790ecc884604fdcc63",
      "tree": "227016cf171dfb313b3d609f958e09062dc9059e",
      "parents": [
        "72024f1ec5164a70d84dd8cf4458fe4064a6b692"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Sep 11 20:11:08 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 19 11:29:56 2010 +0200"
      },
      "message": "rtmutex-tester: make it build without BKL\n\nThe big kernel lock is going away, so make sure\nthat if it is disabled by Kconfig, we do not\ntry to validate it, which would result in\ncompile errors.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "daaae6b010ac0f60c9c35e481589966f9f1fcc22",
      "tree": "94f4f463d898af0ad1926b8d21c15db94a0a411a",
      "parents": [
        "31ddd871fc3db73e2024cb3eb3ee5051edf5a80f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 19 11:28:15 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 19 11:28:15 2010 +0200"
      },
      "message": "workqueue: remove in_workqueue_context()\n\nCommit a25909a4 (lockdep: Add an in_workqueue_context() lockdep-based\ntest function) added in_workqueue_context() but there hasn\u0027t been any\nin-kernel user and the lockdep annotation in workqueue is scheduled to\nchange.  Remove the unused function.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "31ddd871fc3db73e2024cb3eb3ee5051edf5a80f",
      "tree": "3a2d578ec9ebefecca5e4cad196023bbe1a7d0f2",
      "parents": [
        "10ccd84695c2a03075bad2f4fc728575fe9051f8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 19 11:14:49 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 19 11:14:49 2010 +0200"
      },
      "message": "workqueue: Clarify that schedule_on_each_cpu is synchronous\n\nThe documentation for schedule_on_each_cpu() states that it calls a\nfunction on each online CPU from keventd.  This can easily be\ninterpreted as an asyncronous call because the description does not\nmention that flush_work is called.  Clarify that it is synchronous.\n\ntj: rephrased a bit\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "23beab76b490172a9ff3d52843e4d27a35b2a4c6",
      "tree": "4fcde568ad32a1be08301172cb61a22717217f0e",
      "parents": [
        "8ed9059533eb89b4372d7fc31b6565c053e5253b",
        "5fb31a96e1e0078f1e82736ccd72a61ecabe6a4f",
        "80be7a7f642719bf99fc49692fc77d6333f51a73",
        "19852e59002fbba1c2c6ba0f154095a37ad2ac03",
        "29e29f27486ed7074df259b3eda8656bb014e9b5",
        "725343fa748fc9b7c883d198e9cec391425aa478",
        "9e978f096241e303c10cf6e6dc80dce41ef41b92",
        "f3af03de0b1c42225d492d874d9afeed0c02568c",
        "5333a3de3cdd739ec4f6d501f5f6d09bab7ff919"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Oct 18 22:34:25 2010 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Oct 18 22:34:25 2010 +0100"
      },
      "message": "Merge branches \u0027at91\u0027, \u0027dcache\u0027, \u0027ftrace\u0027, \u0027hwbpt\u0027, \u0027misc\u0027, \u0027mmci\u0027, \u0027s3c\u0027, \u0027st-ux\u0027 and \u0027unwind\u0027 into devel\n"
    },
    {
      "commit": "b7dadc38797584f6203386da1947ed5edf516646",
      "tree": "7598dbfaa7b2515da697c740c87d0a98e950b8c7",
      "parents": [
        "d267f87fb8179c6dba03d08b91952e81bc3723c7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:00:37 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:30 2010 +0200"
      },
      "message": "sched: Export account_system_vtime()\n\nKVM uses it for example:\n\n ERROR: \"account_system_vtime\" [arch/x86/kvm/kvm.ko] undefined!\n\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-3-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d267f87fb8179c6dba03d08b91952e81bc3723c7",
      "tree": "ddcd2f7429964367fcb4ab1dd230a970452d72da",
      "parents": [
        "aa483808516ca5cacfa0e5849691f64fec25828e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:23 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:29 2010 +0200"
      },
      "message": "sched: Call tick_check_idle before __irq_enter\n\nWhen CPU is idle and on first interrupt, irq_enter calls tick_check_idle()\nto notify interruption from idle. But, there is a problem if this call\nis done after __irq_enter, as all routines in __irq_enter may find\nstale time due to yet to be done tick_check_idle.\n\nSpecifically, trace calls in __irq_enter when they use global clock and also\naccount_system_vtime change in this patch as it wants to use sched_clock_cpu()\nto do proper irq timing.\n\nBut, tick_check_idle was moved after __irq_enter intentionally to\nprevent problem of unneeded ksoftirqd wakeups by the commit ee5f80a:\n\n    irq: call __irq_enter() before calling the tick_idle_check\n    Impact: avoid spurious ksoftirqd wakeups\n\nMoving tick_check_idle() before __irq_enter and wrapping it with\nlocal_bh_enable/disable would solve both the problems.\n\nFixed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-9-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa483808516ca5cacfa0e5849691f64fec25828e",
      "tree": "38a1d9f1cb1157bd68dc2475447bacbb4b63c64a",
      "parents": [
        "305e6835e05513406fa12820e40e4a8ecb63743c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:22 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:27 2010 +0200"
      },
      "message": "sched: Remove irq time from available CPU power\n\nThe idea was suggested by Peter Zijlstra here:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d127476934517534\u0026w\u003d2\n\nirq time is technically not available to the tasks running on the CPU.\nThis patch removes irq time from CPU power piggybacking on\nsched_rt_avg_update().\n\nTested this by keeping CPU X busy with a network intensive task having 75%\noa a single CPU irq processing (hard+soft) on a 4-way system. And start seven\ncycle soakers on the system. Without this change, there will be two tasks on\neach CPU. With this change, there is a single task on irq busy CPU X and\nremaining 7 tasks are spread around among other 3 CPUs.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-8-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "305e6835e05513406fa12820e40e4a8ecb63743c",
      "tree": "8b43703e27d26f4a7e743a99459e0b465cd1e5e1",
      "parents": [
        "e82b8e4ea4f3dffe6e7939f90e78da675fcc450e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:21 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:26 2010 +0200"
      },
      "message": "sched: Do not account irq time to current task\n\nScheduler accounts both softirq and interrupt processing times to the\ncurrently running task. This means, if the interrupt processing was\nfor some other task in the system, then the current task ends up being\npenalized as it gets shorter runtime than otherwise.\n\nChange sched task accounting to acoount only actual task time from\ncurrently running task. Now update_curr(), modifies the delta_exec to\ndepend on rq-\u003eclock_task.\n\nNote that this change only handles CONFIG_IRQ_TIME_ACCOUNTING case. We can\nextend this to CONFIG_VIRT_CPU_ACCOUNTING with minimal effort. But, thats\nfor later.\n\nThis change will impact scheduling behavior in interrupt heavy conditions.\n\nTested on a 4-way system with eth0 handled by CPU 2 and a network heavy\ntask (nc) running on CPU 3 (and no RSS/RFS). With that I have CPU 2\nspending 75%+ of its time in irq processing. CPU 3 spending around 35%\ntime running nc task.\n\nNow, if I run another CPU intensive task on CPU 2, without this change\n/proc/\u003cpid\u003e/schedstat shows 100% of time accounted to this task. With this\nchange, it rightly shows less than 25% accounted to this task as remaining\ntime is actually spent on irq processing.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-7-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b52bfee445d315549d41eacf2fa7c156e7d153d5",
      "tree": "740f3aa24e2afad42772a662ceb460c555003c0f",
      "parents": [
        "6cdd5199daf0cb7b0fcc8dca941af08492612887"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:19 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:24 2010 +0200"
      },
      "message": "sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time\n\ns390/powerpc/ia64 have support for CONFIG_VIRT_CPU_ACCOUNTING which does\nthe fine granularity accounting of user, system, hardirq, softirq times.\nAdding that option on archs like x86 will be challenging however, given the\nstate of TSC reliability on various platforms and also the overhead it will\nadd in syscall entry exit.\n\nInstead, add a lighter variant that only does finer accounting of\nhardirq and softirq times, providing precise irq times (instead of timer tick\nbased samples). This accounting is added with a new config option\nCONFIG_IRQ_TIME_ACCOUNTING so that there won\u0027t be any overhead for users not\ninterested in paying the perf penalty.\n\nThis accounting is based on sched_clock, with the code being generic.\nSo, other archs may find it useful as well.\n\nThis patch just adds the core logic and does not enable this logic yet.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-5-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6cdd5199daf0cb7b0fcc8dca941af08492612887",
      "tree": "ad9d632d5731a64d0b1ab6410557415480ffcbfd",
      "parents": [
        "e1e10a265d28273ab8c70be19d43dcbdeead6c5a"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:18 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:22 2010 +0200"
      },
      "message": "sched: Add a PF flag for ksoftirqd identification\n\nTo account softirq time cleanly in scheduler, we need to identify whether\nsoftirq is invoked in ksoftirqd context or softirq at hardirq tail context.\nAdd PF_KSOFTIRQD for that purpose.\n\nAs all PF flag bits are currently taken, create space by moving one of the\ninfrequently used bits (PF_THREAD_BOUND) down in task_struct to be along\nwith some other state fields.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-4-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75e1056f5c57050415b64cb761a3acc35d91f013",
      "tree": "e7cd483e38f9bf9131a3b212301a009890b8de49",
      "parents": [
        "75dd321d79d495a0ee579e6249ebc38ddbb2667f"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:16 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:20 2010 +0200"
      },
      "message": "sched: Fix softirq time accounting\n\nPeter Zijlstra found a bug in the way softirq time is accounted in\nVIRT_CPU_ACCOUNTING on this thread:\n\n   http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html\n\nThe problem is, softirq processing uses local_bh_disable internally. There\nis no way, later in the flow, to differentiate between whether softirq is\nbeing processed or is it just that bh has been disabled. So, a hardirq when bh\nis disabled results in time being wrongly accounted as softirq.\n\nLooking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING\nas well. As account_system_time() in normal tick based accouting also uses\nsoftirq_count, which will be set even when not in softirq with bh disabled.\n\nPeter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count\nfor local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq\nprocessing. The patch below does that and adds API in_serving_softirq() which\nreturns whether we are currently processing softirq or not.\n\nAlso changes one of the usages of softirq_count in net/sched/cls_cgroup.c\nto in_serving_softirq.\n\nLooks like many usages of in_softirq really want in_serving_softirq. Those\nchanges can be made individually on a case by case basis.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-2-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75dd321d79d495a0ee579e6249ebc38ddbb2667f",
      "tree": "182f2ca3c9124da514c647547d4f4e549ba7afc1",
      "parents": [
        "fab476228ba37907ad75216d0fd9732ada9c119e"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Fri Oct 15 13:12:30 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:19 2010 +0200"
      },
      "message": "sched: Drop group_capacity to 1 only if local group has extra capacity\n\nWhen SD_PREFER_SIBLING is set on a sched domain, drop group_capacity to 1\nonly if the local group has extra capacity. The extra check prevents the case\nwhere you always pull from the heaviest group when it is already under-utilized\n(possible with a large weight task outweighs the tasks on the system).\n\nFor example, consider a 16-cpu quad-core quad-socket machine with MC and NUMA\nscheduling domains. Let\u0027s say we spawn 15 nice0 tasks and one nice-15 task,\nand each task is running on one core. In this case, we observe the following\nevents when balancing at the NUMA domain:\n\n- find_busiest_group() will always pick the sched group containing the niced\n  task to be the busiest group.\n- find_busiest_queue() will then always pick one of the cpus running the\n  nice0 task (never picks the cpu with the nice -15 task since\n  weighted_cpuload \u003e imbalance).\n- The load balancer fails to migrate the task since it is the running task\n  and increments sd-\u003enr_balance_failed.\n- It repeats the above steps a few more times until sd-\u003enr_balance_failed \u003e 5,\n  at which point it kicks off the active load balancer, wakes up the migration\n  thread and kicks the nice 0 task off the cpu.\n\nThe load balancer doesn\u0027t stop until we kick out all nice 0 tasks from\nthe sched group, leaving you with 3 idle cpus and one cpu running the\nnice -15 task.\n\nWhen balancing at the NUMA domain, we drop sgs.group_capacity to 1 if the child\ndomain (in this case MC) has SD_PREFER_SIBLING set.  Subsequent load checks are\nnot relevant because the niced task has a very large weight.\n\nIn this patch, we add an extra condition to the \"if(prefer_sibling)\" check in\nupdate_sd_lb_stats(). We drop the capacity of a group only if the local group\nhas extra capacity, ie. nr_running \u003c group_capacity. This patch preserves the\noriginal intent of the prefer_siblings check (to spread tasks across the system\nin low utilization scenarios) and fixes the case above.\n\nIt helps in the following ways:\n- In low utilization cases (where nr_tasks \u003c\u003c nr_cpus), we still drop\n  group_capacity down to 1 if we prefer siblings.\n- On very busy systems (where nr_tasks \u003e\u003e nr_cpus), sgs.nr_running will most\n  likely be \u003e sgs.group_capacity.\n- When balancing large weight tasks, if the local group does not have extra\n  capacity, we do not pick the group with the niced task as the busiest group.\n  This prevents failed balances, active migration and the under-utilization\n  described above.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-5-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fab476228ba37907ad75216d0fd9732ada9c119e",
      "tree": "51246ee236cbaae94e18213e5419f9e9f244d69d",
      "parents": [
        "2582f0eba54066b5e98ff2b27ef0cfa833b59f54"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Fri Oct 15 13:12:29 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:18 2010 +0200"
      },
      "message": "sched: Force balancing on newidle balance if local group has capacity\n\nThis patch forces a load balance on a newly idle cpu when the local group has\nextra capacity and the busiest group does not have any. It improves system\nutilization when balancing tasks with a large weight differential.\n\nUnder certain situations, such as a niced down task (i.e. nice \u003d -15) in the\npresence of nr_cpus NICE0 tasks, the niced task lands on a sched group and\nkicks away other tasks because of its large weight. This leads to sub-optimal\nutilization of the machine. Even though the sched group has capacity, it does\nnot pull tasks because sds.this_load \u003e\u003e sds.max_load, and f_b_g() returns NULL.\n\nWith this patch, if the local group has extra capacity, we shortcut the checks\nin f_b_g() and try to pull a task over. A sched group has extra capacity if the\ngroup capacity is greater than the number of running tasks in that group.\n\nThanks to Mike Galbraith for discussions leading to this patch and for the\ninsight to reuse SD_NEWIDLE_BALANCE.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-4-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2582f0eba54066b5e98ff2b27ef0cfa833b59f54",
      "tree": "c5a41c2b1458a813b40f20f529a3b86a93c24932",
      "parents": [
        "ef8002f6848236de5adc613063ebeabddea8a6fb"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed Oct 13 12:09:36 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:17 2010 +0200"
      },
      "message": "sched: Set group_imb only a task can be pulled from the busiest cpu\n\nWhen cycling through sched groups to determine the busiest group, set\ngroup_imb only if the busiest cpu has more than 1 runnable task. This patch\nfixes the case where two cpus in a group have one runnable task each, but there\nis a large weight differential between these two tasks. The load balancer is\nunable to migrate any task from this group, and hence do not consider this\ngroup to be imbalanced.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286996978-7007-3-git-send-email-ncrao@google.com\u003e\n[ small code readability edits ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ef8002f6848236de5adc613063ebeabddea8a6fb",
      "tree": "3fd3411b2727e2ed784f6ab3fd3485c4527714c1",
      "parents": [
        "17bdcf949d03306b308c5fb694849cd35f119807"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed Oct 13 12:09:35 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:15 2010 +0200"
      },
      "message": "sched: Do not consider SCHED_IDLE tasks to be cache hot\n\nThis patch adds a check in task_hot to return if the task has SCHED_IDLE\npolicy. SCHED_IDLE tasks have very low weight, and when run with regular\nworkloads, are typically scheduled many milliseconds apart. There is no\nneed to consider these tasks hot for load balancing.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-2-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7e54a5a0b655734326dc78c2b5efc1eb35497bb6",
      "tree": "71346dfdb01ef387ad1aaaccbf72b3127814ce92",
      "parents": [
        "82cd6def9806dcb6a325fb6abbc1d61388a15f6a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 22:32:45 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:59 2010 +0200"
      },
      "message": "perf: Optimize sw events\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82cd6def9806dcb6a325fb6abbc1d61388a15f6a",
      "tree": "569ce440f8a0619adb8c3791d6b68eecdb2fd29c",
      "parents": [
        "8b92538d84e50062560ba33adbaed7887b6e4a42"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 17:57:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:58 2010 +0200"
      },
      "message": "perf: Use jump_labels to optimize the scheduler hooks\n\nTrades a call + conditional + ret for an unconditional jmp.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.501657727@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3b6e901f839f42afb40f614418df82c08b01320a",
      "tree": "04056f3347b926e9623c225acd496e39b9d1b85a",
      "parents": [
        "d580ff8699e8811a9af37e9de4dea375401bdeec"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 21:10:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:56 2010 +0200"
      },
      "message": "jump_label: Use more consistent naming\n\nNow that there\u0027s still only a few users around, rename things to make\nthem more consistent.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.448565169@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d580ff8699e8811a9af37e9de4dea375401bdeec",
      "tree": "f2789d8a8628b856ad902c0bfbb1899e6cc67697",
      "parents": [
        "c6be5a5cb62592d9d661899a2aa78236eb00ffa5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 17:43:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:55 2010 +0200"
      },
      "message": "perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n\nhw_breakpoint creation needs to account stuff per-task to ensure there\nis always sufficient hardware resources to back these things due to\nptrace.\n\nWith the perf per pmu context changes the event initialization no\nlonger has access to the event context, for the simple reason that we\nneed to first find the pmu (result of initialization) before we can\nfind the context.\n\nThis makes hw_breakpoints unhappy, because it can no longer do per\ntask accounting, cure this by frobbing a task pointer in the event::hw\nbits for now...\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20101014203625.391543667@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c6be5a5cb62592d9d661899a2aa78236eb00ffa5",
      "tree": "510a7b92a65a2faf7395f6ab37be44328f0186cf",
      "parents": [
        "e7d0bc047548d76feee6b23f7d3d9da927189a50"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 16:59:46 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:54 2010 +0200"
      },
      "message": "perf: Find task before event alloc\n\nSo that we can pass the task pointer to the event allocation, so that\nwe can use task associated data during event initialization.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.340789919@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7d0bc047548d76feee6b23f7d3d9da927189a50",
      "tree": "be1cd1fc48f6458a2efa4d0bfac53808938208dc",
      "parents": [
        "74c3337c2fc6389d3a57a622a936036b6db6b2e8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 16:54:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:52 2010 +0200"
      },
      "message": "perf: Fix task refcount bugs\n\nCurrently it looks like find_lively_task_by_vpid() takes a task ref\nand relies on find_get_context() to drop it.\n\nThe problem is that perf_event_create_kernel_counter() shouldn\u0027t be\ndropping task refs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nLKML-Reference: \u003c20101014203625.278436085@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74c3337c2fc6389d3a57a622a936036b6db6b2e8",
      "tree": "d87232b7cc19eef0f1fe0a0bb167868513819b31",
      "parents": [
        "e360adbe29241a0194e10e20595360dd7b98a2b3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 15 11:40:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:51 2010 +0200"
      },
      "message": "perf: Fix group moving\n\nMatt found we trigger the WARN_ON_ONCE() in perf_group_attach() when we take\nthe move_group path in perf_event_open().\n\nSince we cannot de-construct the group (we rely on it to move the events), we\nhave to simply ignore the double attach. The group state is context invariant\nand doesn\u0027t need changing.\n\nReported-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287135757.29097.1368.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e360adbe29241a0194e10e20595360dd7b98a2b3",
      "tree": "ef5fa5f50a895096bfb25bc11b25949603158238",
      "parents": [
        "8e5fc1a7320baf6076391607515dceb61319b36a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 14:01:34 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:50 2010 +0200"
      },
      "message": "irq_work: Add generic hardirq context callbacks\n\nProvide a mechanism that allows running code in IRQ context. It is\nmost useful for NMI code that needs to interact with the rest of the\nsystem -- like wakeup a task to drain buffers.\n\nPerf currently has such a mechanism, so extract that and provide it as\na generic feature, independent of perf so that others may also\nbenefit.\n\nThe IRQ context callback is generated through self-IPIs where\npossible, or on architectures like powerpc the decrementer (the\nbuilt-in timer facility) is set to generate an interrupt immediately.\n\nArchitectures that don\u0027t have anything like this get to do with a\ncallback from the timer tick. These architectures can call\nirq_work_run() at the tail of any IRQ handlers that might enqueue such\nwork (like the perf IRQ handler) to avoid undue latencies in\nprocessing the work.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n[ various fixes ]\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nLKML-Reference: \u003c1287036094.7768.291.camel@yhuang-dev\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e5fc1a7320baf6076391607515dceb61319b36a",
      "tree": "24a5e7ac4bbd8a960fa90ce2a668b9475a3f0b16",
      "parents": [
        "ba0cef3d149ce4db293c572bf36ed352b11ce7b9"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Fri Oct 15 16:54:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:49 2010 +0200"
      },
      "message": "perf_events: Fix transaction recovery in group_sched_in()\n\nThe group_sched_in() function uses a transactional approach to schedule\na group of events. In a group, either all events can be scheduled or\nnone are. To schedule each event in, the function calls event_sched_in().\nIn case of error, event_sched_out() is called on each event in the group.\n\nThe problem is that event_sched_out() does not completely cancel the\neffects of event_sched_in(). Furthermore event_sched_out() changes the\nstate of the event as if it had run which is not true is this particular\ncase.\n\nThose inconsistencies impact time tracking fields and may lead to events\nin a group not all reporting the same time_enabled and time_running values.\nThis is demonstrated with the example below:\n\n$ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5\n1946101 unhalted_core_cycles (32.85% scaling, ena\u003d829181, run\u003d556827)\n  11423 baclears (32.85% scaling, ena\u003d829181, run\u003d556827)\n   7671 baclears (0.00% scaling, ena\u003d556827, run\u003d556827)\n\n2250443 unhalted_core_cycles (57.83% scaling, ena\u003d962822, run\u003d405995)\n  11705 baclears (57.83% scaling, ena\u003d962822, run\u003d405995)\n  11705 baclears (57.83% scaling, ena\u003d962822, run\u003d405995)\n\nNotice that in the first group, the last baclears event does not\nreport the same timings as its siblings.\n\nThis issue comes from the fact that tstamp_stopped is updated\nby event_sched_out() as if the event had actually run.\n\nTo solve the issue, we must ensure that, in case of error, there is\nno change in the event state whatsoever. That means timings must\nremain as they were when entering group_sched_in().\n\nTo do this we defer updating tstamp_running until we know the\ntransaction succeeded. Therefore, we have split event_sched_in()\nin two parts separating the update to tstamp_running.\n\nSimilarly, in case of error, we do not want to update tstamp_stopped.\nTherefore, we have split event_sched_out() in two parts separating\nthe update to tstamp_stopped.\n\nWith this patch, we now get the following output:\n\n$ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5\n2492050 unhalted_core_cycles (71.75% scaling, ena\u003d1093330, run\u003d308841)\n  11243 baclears (71.75% scaling, ena\u003d1093330, run\u003d308841)\n  11243 baclears (71.75% scaling, ena\u003d1093330, run\u003d308841)\n\n1852746 unhalted_core_cycles (0.00% scaling, ena\u003d784489, run\u003d784489)\n   9253 baclears (0.00% scaling, ena\u003d784489, run\u003d784489)\n   9253 baclears (0.00% scaling, ena\u003d784489, run\u003d784489)\n\nNote that the uneven timing between groups is a side effect of\nthe process spending most of its time sleeping, i.e., not enough\nevent rotations (but that\u0027s a separate issue).\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4cb86b4c.41e9d80a.44e9.3e19@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c530ccd9a1864a44a7ff35826681229ce9f2357a",
      "tree": "51cb7ae96aa2b6e144686e850255344b2d94b888",
      "parents": [
        "f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Fri Oct 15 15:26:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:46 2010 +0200"
      },
      "message": "perf_events: Fix bogus context time tracking\n\nYou can only call update_context_time() when the context\nis active, i.e., the thread it is attached to is still running.\n\nHowever, perf_event_read() can be called even when the context\nis inactive, e.g., user read() the counters. The call to\nupdate_context_time() must be conditioned on the status of\nthe context, otherwise, bogus time_enabled, time_running may\nbe returned. Here is an example on AMD64. The task program\nis an example from libpfm4. The -p prints deltas every 1s.\n\n$ task -p -e cpu_clk_unhalted sleep 5\n    2,266,610 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n5,242,358,071 cpu_clk_unhalted (99.95% scaling, ena\u003d5,000,359,984, run\u003d2,319,270)\n\nWhereas if you don\u0027t read deltas, e.g., no call to perf_event_read() until\nthe process terminates:\n\n$ task -e cpu_clk_unhalted sleep 5\n    2,497,783 cpu_clk_unhalted (0.00% scaling, ena\u003d2,376,899, run\u003d2,376,899)\n\nNotice that time_enable, time_running are bogus in the first example\ncausing bogus scaling.\n\nThis patch fixes the problem, by conditionally calling update_context_time()\nin perf_event_read().\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c4cb856dc.51edd80a.5ae0.38fb@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ba053c04aece1f4734056f21b751eee47ea3fb1",
      "tree": "2386ea00022684cd8a9ff811bee2cd8cc7229001",
      "parents": [
        "620162505e5d46bc4494b1761743e4b0b3bf8e16"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Wed Oct 13 17:30:26 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:44:26 2010 +0200"
      },
      "message": "lockdep: Check the depth of subclass\n\nCurrent look_up_lock_class() doesn\u0027t check the parameter \"subclass\".\nThis rarely rises problems because the main caller of this function,\nregister_lock_class(), checks it.\n\nBut register_lock_class() is not the only function which calls\nlook_up_lock_class(). lock_set_class() and its callees also call it.\nAnd lock_set_class() doesn\u0027t check this parameter.\n\nThis will rise problems when the the value of subclass is larger than\nMAX_LOCKDEP_SUBCLASSES. Because the address (used as the key of class)\ncaliculated with too large subclass has a probability to point\nanother key in different lock_class_key.\n\nOf course this problem depends on the memory layout and\noccurs with really low probability.\n\nSigned-off-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Vojtech Pavlik \u003cvojtech@ucw.cz\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286958626-986-1-git-send-email-mitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "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"
    },
    {
      "commit": "f2f108eb4511f22a6f7568090cfcf4e7b2dc0f62",
      "tree": "4b75771ec02543372808c7df31a1a65e37fdb361",
      "parents": [
        "756b0322e50aebc4b9afb4488a2d3f6c802b4e64",
        "2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:43:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:43:46 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/locking\n\nMerge reason: Update to almost-final-.36\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "17bdcf949d03306b308c5fb694849cd35f119807",
      "tree": "5a84fcb6e691fb17b4c723fd8429e3ff2ce767e2",
      "parents": [
        "34f971f6f7988be4d014eec3e3526bee6d007ffa"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@stericsson.com",
        "time": "Mon Oct 11 16:36:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:59 2010 +0200"
      },
      "message": "sched: Drop all load weight manipulation for RT tasks\n\nLoad weights are for the CFS, they do not belong in the RT task. This makes all\nRT scheduling classes leave the CFS weights alone.\n\nThis fixes a real bug as well: I noticed the following phonomena: a process\nelevated to SCHED_RR forks with SCHED_RESET_ON_FORK set, and the child is\nindeed SCHED_OTHER, and the niceval is indeed reset to 0. However the weight\ninserted by set_load_weight() remains at 0, giving the task insignificat\npriority.\n\nWith this fix, the weight is reset to what the task had before being elevated\nto SCHED_RR/SCHED_FIFO.\n\nCc: Lennart Poettering \u003clennart@poettering.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286807811-10568-1-git-send-email-linus.walleij@stericsson.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "34f971f6f7988be4d014eec3e3526bee6d007ffa",
      "tree": "a662e0701f81f019418b55aa1354f833277b9c40",
      "parents": [
        "4924627423d5e286136ad2520f5be536345ae590"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 22 13:53:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:58 2010 +0200"
      },
      "message": "sched: Create special class for stop/migrate work\n\nIn order to separate the stop/migrate work thread from the SCHED_FIFO\nimplementation, create a special class for it that is of higher priority than\nSCHED_FIFO itself.\n\nThis currently solves a problem where cpu-hotplug consumes so much cpu-time\nthat the SCHED_FIFO class gets throttled, but has the bandwidth replenishment\ntimer pending on the now dead cpu.\n\nIt is also required for when we add the planned deadline scheduling class above\nSCHED_FIFO, as the stop/migrate thread still needs to transcent those tasks.\n\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1285165776.2275.1022.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4924627423d5e286136ad2520f5be536345ae590",
      "tree": "0ad0151d0a359edb89d99fb5c5c1dfebd64e5a14",
      "parents": [
        "864616ee6785d9fac7a2cd80c01a2da89579f2e4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun Oct 17 21:46:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:56 2010 +0200"
      },
      "message": "sched: Unindent labels\n\nLabels should be on column 0.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "78c89ba121221d9224a5747803d7fffe51cd6e44",
      "tree": "08f529d73a27513014a15c0a21dfa2d106a68368",
      "parents": [
        "5e6d2b9cfa3a6e7fe62fc0135bc1bd778f5db564"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 05 23:22:19 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:38 2010 -0400"
      },
      "message": "tracing: Remove parent recording in latency tracer graph options\n\nEven though the parent is recorded with the normal function tracing\nof the latency tracers (irqsoff and wakeup), the function graph\nrecording is bogus.\n\nThis is due to the function graph messing with the return stack.\nThe latency tracers pass in as the parent CALLER_ADDR0, which\nworks fine for plain function tracing. But this causes bogus output\nwith the graph tracer:\n\n 3)    \u003cidle\u003e-0    |  d.s3.  0.000 us    |  return_to_handler();\n 3)    \u003cidle\u003e-0    |  d.s3.  0.000 us    |  _raw_spin_unlock_irqrestore();\n 3)    \u003cidle\u003e-0    |  d.s3.  0.000 us    |  return_to_handler();\n 3)    \u003cidle\u003e-0    |  d.s3.  0.000 us    |  trace_hardirqs_on();\n\nThe \"return_to_handle()\" call is the trampoline of the\nfunction graph tracer, and is meaningless in this context.\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e6d2b9cfa3a6e7fe62fc0135bc1bd778f5db564",
      "tree": "5ef2d83c172b0e22dea1532d33e491471a1cc6e7",
      "parents": [
        "542181d3769d001c59cd17573dd4381e87d215f2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 05 19:41:43 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:36 2010 -0400"
      },
      "message": "tracing: Use one prologue for the preempt irqs off tracer function tracers\n\nThe preempt and irqsoff tracers have three types of function tracers.\nNormal function tracer, function graph entry, and function graph return.\nEach of these use a complex dance to prevent recursion and whether\nto trace the data or not (depending if interrupts are enabled or not).\n\nThis patch moves the duplicate code into a single routine, to\nprevent future mistakes with modifying duplicate complex code.\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "542181d3769d001c59cd17573dd4381e87d215f2",
      "tree": "ffb13617cd0fee70cdd1a9eb869daca272b07454",
      "parents": [
        "7495a5beaa22f190f4888aa8cbe4827c16575d0a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 05 16:38:49 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:33 2010 -0400"
      },
      "message": "tracing: Use one prologue for the wakeup tracer function tracers\n\nThe wakeup tracer has three types of function tracers. Normal\nfunction tracer, function graph entry, and function graph return.\nEach of these use a complex dance to prevent recursion and whether\nto trace the data or not (depending on the wake_task variable).\n\nThis patch moves the duplicate code into a single routine, to\nprevent future mistakes with modifying duplicate complex code.\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7495a5beaa22f190f4888aa8cbe4827c16575d0a",
      "tree": "8e094689aba97c6739450f32ee2ca6fe0c58d319",
      "parents": [
        "0a772620a2e21fb55a02f70fe38d4b5c3a5fbbbf"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Sep 23 14:00:53 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:30 2010 -0400"
      },
      "message": "tracing: Graph support for wakeup tracer\n\nAdd function graph support for wakeup latency tracer.\nThe graph output is enabled by setting the \u0027display-graph\u0027\ntrace option.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1285243253-7372-4-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0a772620a2e21fb55a02f70fe38d4b5c3a5fbbbf",
      "tree": "f868daa13783b0dc99f43c53c2a53c2dfa92b85e",
      "parents": [
        "a9d61173dc1cb63e660ae89e874e51ba4fd2f991"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Sep 23 14:00:52 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:28 2010 -0400"
      },
      "message": "tracing: Make graph related irqs/preemptsoff functions global\n\nMove trace_graph_function() and print_graph_headers_flags() functions\nto the trace_function_graph.c to be globaly available.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1285243253-7372-3-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a9d61173dc1cb63e660ae89e874e51ba4fd2f991",
      "tree": "e1ca3badfc9604199670d049e26871bd69d8932f",
      "parents": [
        "907f27840985fe6a0c62e43cd4702c6e04b4bcc7"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Sep 24 17:41:02 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:25 2010 -0400"
      },
      "message": "tracing: Add proper check for irq_depth routines\n\nThe check_irq_entry and check_irq_return could be called\nfrom graph event context. In such case there\u0027s no graph\nprivate data allocated. Adding checks to handle this case.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c20100924154102.GB1818@jolsa.brq.redhat.com\u003e\n\n[ Fixed some grammar in the comments ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "907f27840985fe6a0c62e43cd4702c6e04b4bcc7",
      "tree": "1023e32295a25e0602aef4bab14f41b97975f6bd",
      "parents": [
        "f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfm@muteddisk.com",
        "time": "Mon Sep 27 19:04:53 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:22 2010 -0400"
      },
      "message": "tracing/trivial: Remove cast from void*\n\nUnnecessary cast from void* in assignment.\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e1f60b292ffd61151403327aa19ff7a1871820bd",
      "tree": "63a01a1ab04e54b1ed859728b594e40123c80fc3",
      "parents": [
        "d33ac60beaf2c7dee5cd90aba7c1eb385dd70937"
      ],
      "author": {
        "name": "Nishanth Menon",
        "email": "nm@ti.com",
        "time": "Wed Oct 13 00:13:10 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:50 2010 +0200"
      },
      "message": "PM: Introduce library for device-specific OPPs (v7)\n\nSoCs have a standard set of tuples consisting of frequency and\nvoltage pairs that the device will support per voltage domain. These\nare called Operating Performance Points or OPPs. The actual\ndefinitions of OPP varies over silicon versions. For a specific domain,\nwe can have a set of {frequency, voltage} pairs. As the kernel boots\nand more information is available, a default set of these are activated\nbased on the precise nature of device. Further on operation, based on\nconditions prevailing in the system (such as temperature), some OPP\navailability may be temporarily controlled by the SoC frameworks.\n\nTo implement an OPP, some sort of power management support is necessary\nhence this library depends on CONFIG_PM.\n\nContributions include:\nSanjeev Premi for the initial concept:\n\thttp://patchwork.kernel.org/patch/50998/\nKevin Hilman for converting original design to device-based.\nKevin Hilman and Paul Walmsey for cleaning up many of the function\nabstractions, improvements and data structure handling.\nRomit Dasgupta for using enums instead of opp pointers.\nThara Gopinath, Eduardo Valentin and Vishwanath BS for fixes and\ncleanups.\nLinus Walleij for recommending this layer be made generic for usage\nin other architectures beyond OMAP and ARM.\nMark Brown, Andrew Morton, Rafael J. Wysocki, Paul E. McKenney for\nvaluable improvements.\n\nDiscussions and comments from:\nhttp://marc.info/?l\u003dlinux-omap\u0026m\u003d126033945313269\u0026w\u003d2\nhttp://marc.info/?l\u003dlinux-omap\u0026m\u003d125482970102327\u0026w\u003d2\nhttp://marc.info/?t\u003d125809247500002\u0026r\u003d1\u0026w\u003d2\nhttp://marc.info/?l\u003dlinux-omap\u0026m\u003d126025973426007\u0026w\u003d2\nhttp://marc.info/?t\u003d128152609200064\u0026r\u003d1\u0026w\u003d2\nhttp://marc.info/?t\u003d128468723000002\u0026r\u003d1\u0026w\u003d2\nincorporated.\n\nv1: http://marc.info/?t\u003d128468723000002\u0026r\u003d1\u0026w\u003d2\n\nSigned-off-by: Nishanth Menon \u003cnm@ti.com\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d33ac60beaf2c7dee5cd90aba7c1eb385dd70937",
      "tree": "7393c5f323433f39d2c64e7d9990aa7565397214",
      "parents": [
        "2ac21c6bc4249ee6d922f18dbec7266377592c32"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james@albanarts.com",
        "time": "Tue Oct 12 00:00:25 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:50 2010 +0200"
      },
      "message": "PM: Add sysfs attr for rechecking dev hash from PM trace\n\nIf the device which fails to resume is part of a loadable kernel module\nit won\u0027t be checked at startup against the magic number stored in the\nRTC.\n\nAdd a read-only sysfs attribute /sys/power/pm_trace_dev_match which\ncontains a list of newline separated devices (usually just the one)\nwhich currently match the last magic number. This allows the device\nwhich is failing to resume to be found after the modules are loaded\nagain.\n\nSigned-off-by: James Hogan \u003cjames@albanarts.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "3624eb04c24861ab296842414f9752a393e68372",
      "tree": "4e92377b27b993488c9270b435bcdd2d6574a386",
      "parents": [
        "71c63122c4609a917f14a79c32067a68909fc487"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Oct 04 22:08:12 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:49 2010 +0200"
      },
      "message": "PM / Hibernate: Modify signature used to mark swap\n\nSince we are adding compression to the kernel\u0027s hibernate code,\nchange signature used by it to mark swap spaces, so that earlier\nkernels don\u0027t attempt to restore compressed images they cannot\nhandle.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\n"
    },
    {
      "commit": "dbeeec5fe868f2e2e92fe94daa2c5a047240fdc4",
      "tree": "165c04443d737c0e8524e9917a6e4a338c397391",
      "parents": [
        "5fc62aad4e7779c2f04691e48b351d08c050c1f1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Oct 04 22:07:32 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:49 2010 +0200"
      },
      "message": "PM: Allow wakeup events to abort freezing of tasks\n\nIf there is a wakeup event during the freezing of tasks, suspend or\nhibernation will fail anyway.  Since try_to_freeze_tasks() can take\nup to 20 seconds to complete or fail, aborting it as soon as a wakeup\nevent is detected improves the worst case wakeup latency.\n\nBased on a patch from Arve Hjønnevåg.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\n"
    },
    {
      "commit": "d0941ead3fdd31aafff992d211bcefdbff1eaedb",
      "tree": "3afd75a241739a7b3188a8e8ead167c10aeaac46",
      "parents": [
        "15bcb91d7e607d8a2e060f01f7784a7454668da4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 28 23:31:22 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:48 2010 +0200"
      },
      "message": "PM / Hibernate: Make some boot messages look less scary\n\nThe hibernate resume code checks if there is an image to resume from\non every boot and, if the kernel is built with CONFIG_PM_DEBUG set\nand the image is not present, it prints some scary messages\nsuggesting there was a boot error of some sort.  Apparently, some\nusers are confused by them, so make them look less scary and adjust\nthe other hibernate resume debug messages to match them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "074037ec79bea73edf1b1ec72fef1010e83e3cc5",
      "tree": "1876caa07f755e680da5ea102d985efe4b508d56",
      "parents": [
        "0702d9ee0f1dcb6258789032f03b3208bfafaffc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Sep 22 22:09:10 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:43 2010 +0200"
      },
      "message": "PM / Wakeup: Introduce wakeup source objects and event statistics (v3)\n\nIntroduce struct wakeup_source for representing system wakeup sources\nwithin the kernel and for collecting statistics related to them.\nMake the recently introduced helper functions pm_wakeup_event(),\npm_stay_awake() and pm_relax() use struct wakeup_source objects\ninternally, so that wakeup statistics associated with wakeup devices\ncan be collected and reported in a consistent way (the definition of\npm_relax() is changed, which is harmless, because this function is\nnot called directly by anyone yet).  Introduce new wakeup-related\nsysfs device attributes in /sys/devices/.../power for reporting the\ndevice wakeup statistics.\n\nChange the global wakeup events counters event_count and\nevents_in_progress into atomic variables, so that it is not necessary\nto acquire a global spinlock in pm_wakeup_event(), pm_stay_awake()\nand pm_relax(), which should allow us to avoid lock contention in\nthese functions on SMP systems with many wakeup devices.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ac5c24ec1e983313ef0015258fba6f630e54e7cf",
      "tree": "0bd6e99ece68f27b322033fd2ecaea3fa2d9e369",
      "parents": [
        "266f1a25eff5ff98c498d7754a419aacfd88f71c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 20 19:44:56 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:43 2010 +0200"
      },
      "message": "PM / Hibernate: Make default image size depend on total RAM size\n\nThe default hibernation image size is currently hard coded and euqal\nto 500 MB, which is not a reasonable default on many contemporary\nsystems.  Make it equal 2/5 of the total RAM size (this is slightly\nbelow the maximum, i.e. 1/2 of the total RAM size, and seems to be\ngenerally suitable).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: M. Vefa Bicakci \u003cbicave@superonline.com\u003e\n"
    },
    {
      "commit": "266f1a25eff5ff98c498d7754a419aacfd88f71c",
      "tree": "1666c23a92f3845be4644dc26728574119ca61f9",
      "parents": [
        "bcb5ba8b4e8a5ae14b27351bdf499dd4c3bcc944"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 20 19:44:38 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:42 2010 +0200"
      },
      "message": "PM / Hibernate: Improve comments in hibernate_preallocate_memory()\n\nOne comment in hibernate_preallocate_memory() is wrong, so fix it and\nadd one more comment to clarify the meaning of the fixed one.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "bcb5ba8b4e8a5ae14b27351bdf499dd4c3bcc944",
      "tree": "0eaccca57b57868046afbbd52b33101359b01daf",
      "parents": [
        "ede890c2c069d611ece0e184103a6b9236ce416a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 20 19:44:17 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:42 2010 +0200"
      },
      "message": "PM / Runtime: Use alloc_workqueue() for creating the PM workqueue\n\nAlthough we need the PM workqueue to be freezable, we don\u0027t need it\nto be singlethread.  Also, the number of concurrent work items\nrunning on a single CPU need not be constrained.  For these reasons\nuse alloc_workqueue() directly, with suitable arguments, instead of\ncreate_freezeable_workqueue(), to create the runtime PM workqueue.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "ede890c2c069d611ece0e184103a6b9236ce416a",
      "tree": "60c54446878e60d898f233cba2946aeaa7b582b2",
      "parents": [
        "f996fc9671d088bd5f52a70f18c64bfe3d0e418f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Sep 12 21:40:01 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:42 2010 +0200"
      },
      "message": "PM: Fix unmet dependency warning from kconfig\n\nFix the following build warning:\n\nwarning: (PM_SLEEP_SMP \u0026\u0026 SMP \u0026\u0026 (ARCH_SUSPEND_POSSIBLE || \\\nARCH_HIBERNATION_POSSIBLE) \u0026\u0026 PM_SLEEP) selects HOTPLUG_CPU which \\\nhas unmet direct dependencies (SMP \u0026\u0026 HOTPLUG)\n\nby selecting HOTPLUG along with CPU_HOTPLUG.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "f996fc9671d088bd5f52a70f18c64bfe3d0e418f",
      "tree": "3d88b5adfa21fc71cbabb9a891d37b0c1ce1c692",
      "parents": [
        "05aa55dddb9ee4045c320661068bea78dad6a6e5"
      ],
      "author": {
        "name": "Bojan Smojver",
        "email": "bojan@rexursive.com",
        "time": "Thu Sep 09 23:06:23 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:42 2010 +0200"
      },
      "message": "PM / Hibernate: Compress hibernation image with LZO\n\nCompress hibernation image with LZO in order to save on I/O and\ntherefore time to hibernate/thaw.\n\n[rjw: Added hibernate\u003dnocompress command line option instead of just\n nocompress which would be confusing, fixed a couple of compiler\n warnings, fixed kerneldoc comments, minor cleanups.]\n\nSigned-off-by: Bojan Smojver \u003cbojan@rexursive.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a9febbb4bd1302b6f01aa1203b0a804e4e5c9e25",
      "tree": "7367bee631d0a050e0d392102dd652ec48a57a08",
      "parents": [
        "5a2b3ef4559f3d0ef58cbfb723f528f1c6b2e601"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 15 14:34:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 15 14:42:24 2010 -0700"
      },
      "message": "sysctl: min/max bounds are optional\n\nsysctl check complains with a WARN() when proc_doulongvec_minmax() or\nproc_doulongvec_ms_jiffies_minmax() are used by a vector of longs (with\nmore than one element), with no min or max value specified.\n\nThis is unexpected, given we had a bug on this min/max handling :)\n\nReported-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "6268464b370e234e0255330190f9bd5d19386ad7",
      "tree": "5742641092ce64227dd2086d78baaede57da1f80",
      "parents": [
        "7df01d96b295e400167e78061b81d4c91630b12d",
        "0fdf13606b67f830559abdaad15980c7f4f05ec4"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Fri Oct 15 12:45:00 2010 +0200"
      },
      "committer": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Fri Oct 15 12:45:00 2010 +0200"
      },
      "message": "Merge remote branch \u0027tip/perf/core\u0027 into oprofile/core\n\nConflicts:\n\tarch/arm/oprofile/common.c\n\tkernel/perf_event.c\n"
    },
    {
      "commit": "0fdf13606b67f830559abdaad15980c7f4f05ec4",
      "tree": "dd69bf50a6d27cd15f1876657584e4e2b526d9d8",
      "parents": [
        "d9d572a9c0195486e3baf0d8d6a710196a707335",
        "cf4db2597ae93b60efc0a7a4ec08690b75d629b1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 15 06:12:28 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 15 06:12:28 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/recordmcount-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "cf4db2597ae93b60efc0a7a4ec08690b75d629b1",
      "tree": "12ee3585d7a65291032b3258000523d6386c7d2e",
      "parents": [
        "c28d5077f8d79bfce1e3f88db2e261cf2b6473dc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Oct 14 23:32:44 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 14 23:32:44 2010 -0400"
      },
      "message": "ftrace: Rename config option HAVE_C_MCOUNT_RECORD to HAVE_C_RECORDMCOUNT\n\nThe config option used by archs to let the build system know that\nthe C version of the recordmcount works for said arch is currently\ncalled HAVE_C_MCOUNT_RECORD which enables BUILD_C_RECORDMCOUNT. To\nbe more consistent with the name that all archs may use, it has been\nrenamed to HAVE_C_RECORDMCOUNT. This will be less confusing since\nwe are building a C recordmcount and not a mcount_record.\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: linux-kbuild@vger.kernel.org\nCc: John Reiser \u003cjreiser@bitwagon.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d9d572a9c0195486e3baf0d8d6a710196a707335",
      "tree": "af6ccb502b280adf5a4cd4c7be9243593432da26",
      "parents": [
        "3cba11d32bb4b24c3ba257043595772df4b9c7b5",
        "ebc8827f75954fe315492883eee5cb3f355d547d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 15 05:12:45 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 15 05:12:45 2010 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core\n"
    },
    {
      "commit": "72441cb1fd77d092f09ddfac748955703884c9a7",
      "tree": "3b02aecebf718f1cb6e9752b809e825b237527da",
      "parents": [
        "81d3858d3131a589cade0d8b57f95cc1fc699b89"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Oct 13 17:12:30 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 14 16:52:41 2010 -0400"
      },
      "message": "ftrace/x86: Add support for C version of recordmcount\n\nThis patch adds the support for the C version of recordmcount and\ncompile times show ~ 12% improvement.\n\nAfter verifying this works, other archs can add:\n\n HAVE_C_MCOUNT_RECORD\n\nin its Kconfig and it will use the C version of recordmcount\ninstead of the perl version.\n\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: linux-kbuild@vger.kernel.org\nCc: John Reiser \u003cjreiser@bitwagon.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f13d4f979c518119bba5439dd2364d76d31dcd3f",
      "tree": "952be8d19f13a3f0942c67c1f0d400d8dab472ea",
      "parents": [
        "53eeb64e808971207350386121f4bab12fa2f45f"
      ],
      "author": {
        "name": "Salman Qazi",
        "email": "sqazi@google.com",
        "time": "Tue Oct 12 07:25:19 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Oct 14 13:29:59 2010 +0200"
      },
      "message": "hrtimer: Preserve timer state in remove_hrtimer()\n\nThe race is described as follows:\n\nCPU X                                 CPU Y\nremove_hrtimer\n// state \u0026 QUEUED \u003d\u003d 0\ntimer-\u003estate \u003d CALLBACK\nunlock timer base\ntimer-\u003ef(n) //very long\n                                  hrtimer_start\n                                    lock timer base\n                                    remove_hrtimer // no effect\n                                    hrtimer_enqueue\n                                    timer-\u003estate \u003d CALLBACK |\n                                                   QUEUED\n                                    unlock timer base\n                                  hrtimer_start\n                                    lock timer base\n                                    remove_hrtimer\n                                        mode \u003d INACTIVE\n                                        // CALLBACK bit lost!\n                                    switch_hrtimer_base\n                                            CALLBACK bit not set:\n                                                    timer-\u003ebase\n                                                    changes to a\n                                                    different CPU.\nlock this CPU\u0027s timer base\n\nThe bug was introduced with commit ca109491f (hrtimer: removing all ur\ncallback modes) in 2.6.29\n\n[ tglx: Feed new state via local variable and add a comment. ]\n\nSigned-off-by: Salman Qazi \u003csqazi@google.com\u003e\nCc: akpm@linux-foundation.org\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20101012142351.8485.21823.stgit@dungbeetle.mtv.corp.google.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "864616ee6785d9fac7a2cd80c01a2da89579f2e4",
      "tree": "7d7918238041b60868e4b2eff9c37f0bc1557dcf",
      "parents": [
        "ed859ed3b0f9893c6bce3708e8928341c15699b9"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Thu Oct 14 16:09:13 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 09:13:35 2010 +0200"
      },
      "message": "sched: Comment updates: fix default latency and granularity numbers\n\nTargeted preemption latency and minimal preemption granularity\nfor CPU-bound tasks have been changed.\n\nThis patch updates the comments about these values.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20101014160913.eb24fef4.yoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ed859ed3b0f9893c6bce3708e8928341c15699b9",
      "tree": "59c507f00bc13becb4accdd64fdc01ece08b4645",
      "parents": [
        "a8027073eb127cd207070891374b5c54c2ce3d23",
        "53eeb64e808971207350386121f4bab12fa2f45f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 09:11:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 09:11:46 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: update from -rc5 to -almost-final\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb62db2ba943b1683f1d7181bb2988fce4c60870",
      "tree": "c085971506cf74f0580686e6ae8130f557a7cbfe",
      "parents": [
        "15e408cd6ccc3f4f453d87ccd5bc7a84d59feb96"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Oct 13 11:02:34 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 08:57:35 2010 +0200"
      },
      "message": "futex: Fix kernel-doc notation \u0026 typos\n\nConvert futex_requeue() function parameters to use @name\nkernel-doc notation and add @fshared \u0026 @cmpval to prevent\nkernel-doc warnings.\n\nAdd @list to struct futex_q.\n\nFix a few typos.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c20101013110234.89b06043.randy.dunlap@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd02e6f7ae085840d43d780149fcf95a614eca5e",
      "tree": "447aad5f52452d17145c75dfe9e900ba7b457466",
      "parents": [
        "0f55a2f3d496133dd22f1e4e49fb7301da87c7bb"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu Oct 14 12:10:24 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 08:55:27 2010 +0200"
      },
      "message": "kprobes: Fix selftest to clear flags field for reusing probes\n\nFix selftest to clear flags field for reusing probes\nbecause the flags field can be modified by Kprobes.\nThis also set NULL to kprobe.addr instead of 0.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: 2nddept-manager@sdl.hitachi.co.jp\nLKML-Reference: \u003c20101014031024.4100.50107.stgit@ltc236.sdl.hitachi.co.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14cae9bd2faf6d0d75702c2e107e75207bcdfec1",
      "tree": "78b3d25ee41713ae5324c6f19e149817605780ac",
      "parents": [
        "7cd2541cf2395962daf98ec32a141aba3398a9b2"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "bp@alien8.de",
        "time": "Wed Sep 29 10:08:23 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 13 17:47:53 2010 +0200"
      },
      "message": "tracing: Fix function-graph build warning on 32-bit\n\nFix\n\nkernel/trace/trace_functions_graph.c: In function ‘trace_print_graph_duration’:\nkernel/trace/trace_functions_graph.c:652: warning: comparison of distinct pointer types lacks a cast\n\nwhen building 36-rc6 on a 32-bit due to the strict type check failing\nin the min() macro.\n\nSigned-off-by: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c20100929080823.GA13595@liondog.tnic\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "4783f393de3077211c14675a0e57c8a02e9190b0",
      "tree": "6c37d8664eb072fd026db3706481d771da4495ca",
      "parents": [
        "9f5f9ffe50e90ed73040d2100db8bfc341cee352",
        "5b8544c38e6fde6968645afd46ff681492192b86"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Oct 13 16:18:36 2010 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Oct 13 16:18:36 2010 +1100"
      },
      "message": "Merge remote branch \u0027kumar/merge\u0027 into next\n"
    },
    {
      "commit": "c0a19ebc018222ffd1dd93af5b53d9efd779c19b",
      "tree": "f648fb93efb064b22000aca24e48dfda2cbfab0a",
      "parents": [
        "2ee39065988d632b403f8470942b0b5edee3632b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 21:58:27 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 12 21:59:55 2010 +0200"
      },
      "message": "genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED\u003dy build\n\nThis option can be set to verify the full conversion to the new chip\nfunctions. Fix the fallout of the patch rework, so the core code\ncompiles and works with it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d01343244abdedd18303d0323b518ed9cdcb1988",
      "tree": "ec3dff2c73f7fb5a728c4b2271028da3a51cdcd7",
      "parents": [
        "c1e028ef40b8d6943b767028ba17d4f2ba020edb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 12 12:06:43 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 12 12:06:43 2010 -0400"
      },
      "message": "ring-buffer: Fix typo of time extends per page\n\nTime stamps for the ring buffer are created by the difference between\ntwo events. Each page of the ring buffer holds a full 64 bit timestamp.\nEach event has a 27 bit delta stamp from the last event. The unit of time\nis nanoseconds, so 27 bits can hold ~134 milliseconds. If two events\nhappen more than 134 milliseconds apart, a time extend is inserted\nto add more bits for the delta. The time extend has 59 bits, which\nis good for ~18 years.\n\nCurrently the time extend is committed separately from the event.\nIf an event is discarded before it is committed, due to filtering,\nthe time extend still exists. If all events are being filtered, then\nafter ~134 milliseconds a new time extend will be added to the buffer.\n\nThis can only happen till the end of the page. Since each page holds\na full timestamp, there is no reason to add a time extend to the\nbeginning of a page. Time extends can only fill a page that has actual\ndata at the beginning, so there is no fear that time extends will fill\nmore than a page without any data.\n\nWhen reading an event, a loop is made to skip over time extends\nsince they are only used to maintain the time stamp and are never\ngiven to the caller. As a paranoid check to prevent the loop running\nforever, with the knowledge that time extends may only fill a page,\na check is made that tests the iteration of the loop, and if the\niteration is more than the number of time extends that can fit in a page\na warning is printed and the ring buffer is disabled (all of ftrace\nis also disabled with it).\n\nThere is another event type that is called a TIMESTAMP which can\nhold 64 bits of data in the theoretical case that two events happen\n18 years apart. This code has not been implemented, but the name\nof this event exists, as well as the structure for it. The\nsize of a TIMESTAMP is 16 bytes, where as a time extend is only\n8 bytes. The macro used to calculate how many time extends can fit on\na page used the TIMESTAMP size instead of the time extend size\ncutting the amount in half.\n\nThe following test case can easily trigger the warning since we only\nneed to have half the page filled with time extends to trigger the\nwarning:\n\n # cd /sys/kernel/debug/tracing/\n # echo function \u003e current_tracer\n # echo \u0027common_pid \u003c 0\u0027 \u003e events/ftrace/function/filter\n # echo \u003e trace\n # echo 1 \u003e trace_marker\n # sleep 120\n # cat trace\n\nEnabling the function tracer and then setting the filter to only trace\nfunctions where the process id is negative (no events), then clearing\nthe trace buffer to ensure that we have nothing in the buffer,\nthen write to trace_marker to add an event to the beginning of a page,\nsleep for 2 minutes (only 35 seconds is probably needed, but this\nguarantees the bug), and then finally reading the trace which will\ntrigger the bug.\n\nThis patch fixes the typo and prevents the false positive of that warning.\n\nReported-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nTested-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Stable Kernel \u003cstable@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "5b8c4f23c54edda640a4850bc9b81dee70acb525"
}
