)]}'
{
  "commit": "abf917cd91cbb73952758f9741e2fa65002a48ee",
  "tree": "5f975b87615dcaed9c98bc74b4548d568b92dcbc",
  "parents": [
    "ae8dda5c473bf1a85913942adcaac449e5754bf3"
  ],
  "author": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Wed Jul 25 07:56:04 2012 +0200"
  },
  "committer": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Sun Jan 27 19:23:27 2013 +0100"
  },
  "message": "cputime: Generic on-demand virtual cputime accounting\n\nIf we want to stop the tick further idle, we need to be\nable to account the cputime without using the tick.\n\nVirtual based cputime accounting solves that problem by\nhooking into kernel/user boundaries.\n\nHowever implementing CONFIG_VIRT_CPU_ACCOUNTING require\nlow level hooks and involves more overhead. But we already\nhave a generic context tracking subsystem that is required\nfor RCU needs by archs which plan to shut down the tick\noutside idle.\n\nThis patch implements a generic virtual based cputime\naccounting that relies on these generic kernel/user hooks.\n\nThere are some upsides of doing this:\n\n- This requires no arch code to implement CONFIG_VIRT_CPU_ACCOUNTING\nif context tracking is already built (already necessary for RCU in full\ntickless mode).\n\n- We can rely on the generic context tracking subsystem to dynamically\n(de)activate the hooks, so that we can switch anytime between virtual\nand tick based accounting. This way we don\u0027t have the overhead\nof the virtual accounting when the tick is running periodically.\n\nAnd one downside:\n\n- There is probably more overhead than a native virtual based cputime\naccounting. But this relies on hooks that are already set anyway.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "040b3163800123763abd1e0c1bb529518bbb83cb",
      "old_mode": 33188,
      "old_path": "arch/ia64/include/asm/cputime.h",
      "new_id": "e2d3f5baf265408b49a201e8fa07e3b3b24fe939",
      "new_mode": 33188,
      "new_path": "arch/ia64/include/asm/cputime.h"
    },
    {
      "type": "modify",
      "old_id": "ff2ae41365840a616b4a7b6211aed1b2678c6e0a",
      "old_mode": 33188,
      "old_path": "arch/ia64/include/asm/thread_info.h",
      "new_id": "020d655ed082bf9aabbf31a9091468e9045acb0d",
      "new_mode": 33188,
      "new_path": "arch/ia64/include/asm/thread_info.h"
    },
    {
      "type": "modify",
      "old_id": "c57fa910f2c937e7473a9ea63e5ac9a7be74c86c",
      "old_mode": 33188,
      "old_path": "arch/ia64/include/asm/xen/minstate.h",
      "new_id": "00cf03e0cb8295c8f489107cc025bf6fd377b108",
      "new_mode": 33188,
      "new_path": "arch/ia64/include/asm/xen/minstate.h"
    },
    {
      "type": "modify",
      "old_id": "a48bd9a9927bb3b42c7b2076bb0c4b359d83a2e5",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/asm-offsets.c",
      "new_id": "46c9e3007315dedc0ca9c7aa38f8a1e522b3ca58",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/asm-offsets.c"
    },
    {
      "type": "modify",
      "old_id": "6bfd8429ee0f4a6aedd72aa051030928f72085fa",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/entry.S",
      "new_id": "7a53530f22c219eb877d81d2392a85722e9503dc",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/entry.S"
    },
    {
      "type": "modify",
      "old_id": "e662f178b990ab660526154dfa505c5452d57bf6",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/fsys.S",
      "new_id": "c4cd45d97749bf610f55b8be24a04ba5b7cec107",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/fsys.S"
    },
    {
      "type": "modify",
      "old_id": "4738ff7bd66a28e35b260ea3706058fbf56adbda",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/head.S",
      "new_id": "9be4e497f3d3c253aa36c87459cdb4830a9e4fa7",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/head.S"
    },
    {
      "type": "modify",
      "old_id": "fa25689fc453b36e1cb455782af442bdbf8017ee",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/ivt.S",
      "new_id": "689ffcaa284e4ddbdbe1503b12d0713c7cb5c017",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/ivt.S"
    },
    {
      "type": "modify",
      "old_id": "d56753a11636b723b402a32df60fc762af3c5e38",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/minstate.h",
      "new_id": "cc82a7d744c985ce18b0a70512cd54234d71aefa",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/minstate.h"
    },
    {
      "type": "modify",
      "old_id": "88a794536bc01b9e55ec0b41aa00b37c55653eea",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/time.c",
      "new_id": "a3a3f5a1cb3a0c6f796b08838d305084d31b4f34",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/time.c"
    },
    {
      "type": "modify",
      "old_id": "29bb11ec6c640677a73c3e16058897789f1fba2f",
      "old_mode": 33188,
      "old_path": "arch/powerpc/configs/chroma_defconfig",
      "new_id": "4f35fc4623856888f441489e3a43abc6750ccd50",
      "new_mode": 33188,
      "new_path": "arch/powerpc/configs/chroma_defconfig"
    },
    {
      "type": "modify",
      "old_id": "88fa5c46f66f5481e2d62dfc0e4990fff4f782f3",
      "old_mode": 33188,
      "old_path": "arch/powerpc/configs/corenet64_smp_defconfig",
      "new_id": "f7df8362911fc80644b03badd8c639538ff59afd",
      "new_mode": 33188,
      "new_path": "arch/powerpc/configs/corenet64_smp_defconfig"
    },
    {
      "type": "modify",
      "old_id": "840a2c2d043085434b715dfffa3d4399e70f383b",
      "old_mode": 33188,
      "old_path": "arch/powerpc/configs/pasemi_defconfig",
      "new_id": "bcedeea0df8934424b94fc30d7c567f0a0b611ca",
      "new_mode": 33188,
      "new_path": "arch/powerpc/configs/pasemi_defconfig"
    },
    {
      "type": "modify",
      "old_id": "483733bd06d4e9bda0689c4fba66849e2471b7c2",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/asm/cputime.h",
      "new_id": "607559ab271ff98b45de1f11964416bebaf32841",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/asm/cputime.h"
    },
    {
      "type": "modify",
      "old_id": "531fe0c3108f8e157b8a255cb6a2ae8fce142059",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/asm/lppaca.h",
      "new_id": "b1e7f2af1016c82e6584731a0d0112b80a5eb277",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/asm/lppaca.h"
    },
    {
      "type": "modify",
      "old_id": "ea2a86e8ff95bf731a399850cf2c8934b3fa8a19",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/asm/ppc_asm.h",
      "new_id": "2d0e1f5d83394a60544cc3a3fa003973c868596b",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/asm/ppc_asm.h"
    },
    {
      "type": "modify",
      "old_id": "b310a0573625dec8a672c267ab6158f8e90b37a6",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/entry_64.S",
      "new_id": "a0ca42fb1541f49c61965a2cfdaf3f73b9849eb1",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/entry_64.S"
    },
    {
      "type": "modify",
      "old_id": "6f6b1cccc91662037115e69dc072ac1f7a376be5",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/time.c",
      "new_id": "22c9b67f9983d4ef103bd6fb29ef83498ee4403a",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/time.c"
    },
    {
      "type": "modify",
      "old_id": "a7648543c59e05435eac37c5099eeda84db9584d",
      "old_mode": 33188,
      "old_path": "arch/powerpc/platforms/pseries/dtl.c",
      "new_id": "0cc0ac07a55dc661e0e0ad3acceaa55d33818800",
      "new_mode": 33188,
      "new_path": "arch/powerpc/platforms/pseries/dtl.c"
    },
    {
      "type": "modify",
      "old_id": "ca55882465d6b0d027ef785f941c64a342985f99",
      "old_mode": 33188,
      "old_path": "arch/powerpc/platforms/pseries/setup.c",
      "new_id": "527e12c9573be178757b8eb7920b94654224e589",
      "new_mode": 33188,
      "new_path": "arch/powerpc/platforms/pseries/setup.c"
    },
    {
      "type": "modify",
      "old_id": "c6eddf50eaf9f8948857b49a61c2c0d9d2372a1c",
      "old_mode": 33188,
      "old_path": "include/asm-generic/cputime.h",
      "new_id": "51969436b8b83b21730d25a5cef434ac6db3ef06",
      "new_mode": 33188,
      "new_path": "include/asm-generic/cputime.h"
    },
    {
      "type": "modify",
      "old_id": "c73d182f4751c585396b2844d2273a2ef4e0afce",
      "old_mode": 33188,
      "old_path": "include/asm-generic/cputime_nsecs.h",
      "new_id": "b6485cafb7bdccef586116e800216c75dd7b529b",
      "new_mode": 33188,
      "new_path": "include/asm-generic/cputime_nsecs.h"
    },
    {
      "type": "modify",
      "old_id": "66b70780e910dfb846241bc3b70ce1a97aeeee47",
      "old_mode": 33188,
      "old_path": "include/linux/kernel_stat.h",
      "new_id": "ed5f6ed6eb772797ea1c7eb0e98e46f55dbcf027",
      "new_mode": 33188,
      "new_path": "include/linux/kernel_stat.h"
    },
    {
      "type": "modify",
      "old_id": "ae30ab58431ab7fd30971fbee3f655a3c8aeb2b1",
      "old_mode": 33188,
      "old_path": "include/linux/vtime.h",
      "new_id": "21ef703d1b25c1856712c4d02996741a117b2185",
      "new_mode": 33188,
      "new_path": "include/linux/vtime.h"
    },
    {
      "type": "modify",
      "old_id": "be8b7f55312d1f0ea3cbb64c342eb5b456ea34a1",
      "old_mode": 33188,
      "old_path": "init/Kconfig",
      "new_id": "a05f843e7e5261eb957d0cc3caefad69c2b5258f",
      "new_mode": 33188,
      "new_path": "init/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "54f471e536dca2ed3e682c900cba3fdca555cab8",
      "old_mode": 33188,
      "old_path": "kernel/context_tracking.c",
      "new_id": "9002e92e6372c830fdbc9f801318bba0f873990d",
      "new_mode": 33188,
      "new_path": "kernel/context_tracking.c"
    },
    {
      "type": "modify",
      "old_id": "5849448b981e743a28cdc8c5c69c8dab432be585",
      "old_mode": 33188,
      "old_path": "kernel/sched/cputime.c",
      "new_id": "1c964eced92cbd29085bf1f1a00a3b016e45de90",
      "new_mode": 33188,
      "new_path": "kernel/sched/cputime.c"
    }
  ]
}
