)]}'
{
  "log": [
    {
      "commit": "34441427aab4bdb3069a4ffcda69a99357abcb2e",
      "tree": "3beebde910f25b0945e9105017fd743c9e5241a5",
      "parents": [
        "3c904afd7358e9ef515eb5df36b6f25c2b7fc2da"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Tue May 11 14:06:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 11 17:33:41 2010 -0700"
      },
      "message": "revert \"procfs: provide stack information for threads\" and its fixup commits\n\nOriginally, commit d899bf7b (\"procfs: provide stack information for\nthreads\") attempted to introduce a new feature for showing where the\nthreadstack was located and how many pages are being utilized by the\nstack.\n\nCommit c44972f1 (\"procfs: disable per-task stack usage on NOMMU\") was\napplied to fix the NO_MMU case.\n\nCommit 89240ba0 (\"x86, fs: Fix x86 procfs stack information for threads on\n64-bit\") was applied to fix a bug in ia32 executables being loaded.\n\nCommit 9ebd4eba7 (\"procfs: fix /proc/\u003cpid\u003e/stat stack pointer for kernel\nthreads\") was applied to fix a bug which had kernel threads printing a\nuserland stack address.\n\nCommit 1306d603f (\u0027proc: partially revert \"procfs: provide stack\ninformation for threads\"\u0027) was then applied to revert the stack pages\nbeing used to solve a significant performance regression.\n\nThis patch nearly undoes the effect of all these patches.\n\nThe reason for reverting these is it provides an unusable value in\nfield 28.  For x86_64, a fork will result in the task-\u003estack_start\nvalue being updated to the current user top of stack and not the stack\nstart address.  This unpredictability of the stack_start value makes\nit worthless.  That includes the intended use of showing how much stack\nspace a thread has.\n\nOther architectures will get different values.  As an example, ia64\ngets 0.  The do_fork() and copy_process() functions appear to treat the\nstack_start and stack_size parameters as architecture specific.\n\nI only partially reverted c44972f1 (\"procfs: disable per-task stack usage\non NOMMU\") .  If I had completely reverted it, I would have had to change\nmm/Makefile only build pagewalk.o when CONFIG_PROC_PAGE_MONITOR is\nconfigured.  Since I could not test the builds without significant effort,\nI decided to not change mm/Makefile.\n\nI only partially reverted 89240ba0 (\"x86, fs: Fix x86 procfs stack\ninformation for threads on 64-bit\") .  I left the KSTK_ESP() change in\nplace as that seemed worthwhile.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e3eaddd142e2142c048c5052a0a9d2604fccfc6",
      "tree": "5bc45a286502e54e790c54948f22364c5afd9d89",
      "parents": [
        "8655e7e3ddec60603c4f6c14cdf642e2ba198df8",
        "b97c4bc16734a2e597dac7f91ee9eb78f4aeef9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:43:01 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:43:01 2010 -0800"
      },
      "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  locking: Make sparse work with inline spinlocks and rwlocks\n  x86/mce: Fix RCU lockdep splats\n  rcu: Increase RCU CPU stall timeouts if PROVE_RCU\n  ftrace: Replace read_barrier_depends() with rcu_dereference_raw()\n  rcu: Suppress RCU lockdep warnings during early boot\n  rcu, ftrace: Fix RCU lockdep splat in ftrace_perf_buf_prepare()\n  rcu: Suppress __mpol_dup() false positive from RCU lockdep\n  rcu: Make rcu_read_lock_sched_held() handle !PREEMPT\n  rcu: Add control variables to lockdep_rcu_dereference() diagnostics\n  rcu, cgroup: Relax the check in task_subsys_state() as early boot is now handled by lockdep-RCU\n  rcu: Use wrapper function instead of exporting tasklist_lock\n  sched, rcu: Fix rcu_dereference() for RCU-lockdep\n  rcu: Make task_subsys_state() RCU-lockdep checks handle boot-time use\n  rcu: Fix holdoff for accelerated GPs for last non-dynticked CPU\n  x86/gart: Unexport gart_iommu_aperture\n\nFix trivial conflicts in kernel/trace/ftrace.c\n"
    },
    {
      "commit": "c32da02342b7521df25fefc2ef20aee0e61cf887",
      "tree": "7e38f664fa3e13602c357d37f77d8adcf82fccc2",
      "parents": [
        "dca1d9f6d7ae428c193f32bd3e9a4ca13176648b",
        "318ae2edc3b29216abd8a2510f3f80b764f06858"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits)\n  doc: fix typo in comment explaining rb_tree usage\n  Remove fs/ntfs/ChangeLog\n  doc: fix console doc typo\n  doc: cpuset: Update the cpuset flag file\n  Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed\n  Remove drivers/parport/ChangeLog\n  Remove drivers/char/ChangeLog\n  doc: typo - Table 1-2 should refer to \"status\", not \"statm\"\n  tree-wide: fix typos \"ass?o[sc]iac?te\" -\u003e \"associate\" in comments\n  No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h\n  devres/irq: Fix devm_irq_match comment\n  Remove reference to kthread_create_on_cpu\n  tree-wide: Assorted spelling fixes\n  tree-wide: fix \u0027lenght\u0027 typo in comments and code\n  drm/kms: fix spelling in error message\n  doc: capitalization and other minor fixes in pnp doc\n  devres: typo fix s/dev/devm/\n  Remove redundant trailing semicolons from macros\n  fix typo \"definetly\" -\u003e \"definitely\" in comment\n  tree-wide: s/widht/width/g typo in comments\n  ...\n\nFix trivial conflict in Documentation/laptops/00-INDEX\n"
    },
    {
      "commit": "93c59907c6f247d09239135caecf294a106a2ae0",
      "tree": "f115d3763f7479ebbb9516c96bce68237edef860",
      "parents": [
        "4dd66e69d472f0ba5355a2529364d0db9a18a02b"
      ],
      "author": {
        "name": "Veaceslav Falico",
        "email": "vfalico@redhat.com",
        "time": "Wed Mar 10 15:23:03 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:39 2010 -0800"
      },
      "message": "copy_signal() cleanup: clean thread_group_cputime_init()\n\nRemove unneeded initializations in thread_group_cputime_init() and in\nposix_cpu_timers_init_group().  They are useless after kmem_cache_zalloc()\nwas used in copy_signal().\n\nSigned-off-by: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "34e55232e59f7b19050267a05ff1226e5cd122a5",
      "tree": "6b94e776e87d2a2fe1ceca7c5606901575323900",
      "parents": [
        "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: avoid false sharing of mm_counter\n\nConsidering the nature of per mm stats, it\u0027s the shared object among\nthreads and can be a cache-miss point in the page fault path.\n\nThis patch adds per-thread cache for mm_counter.  RSS value will be\ncounted into a struct in task_struct and synchronized with mm\u0027s one at\nevents.\n\nNow, in this patch, the event is the number of calls to handle_mm_fault.\nPer-thread value is added to mm at each 64 calls.\n\n rough estimation with small benchmark on parallel thread (2threads) shows\n [before]\n     4.5 cache-miss/faults\n [after]\n     4.0 cache-miss/faults\n Anyway, the most contended object is mmap_sem if the number of threads grows.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1",
      "tree": "aa968c8a4093234e4623a34c0415bf9d8683671c",
      "parents": [
        "19b629f581320999ddb9f6597051b79cdb53459c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "mm: clean up mm_counter\n\nPresently, per-mm statistics counter is defined by macro in sched.h\n\nThis patch modifies it to\n  - defined in mm.h as inlinf functions\n  - use array instead of macro\u0027s name creation.\n\nThis patch is for reducing patch size in future patch to modify\nimplementation of per-mm counter.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db1466b3e1bd1727375cdbfcbea4bcce2f860f61",
      "tree": "e56e8d7b82f8851e570d95f531ec62e4d107967a",
      "parents": [
        "0e064caf6402d1d67db4233d26beec88ca212919"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Mar 03 07:46:56 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 04 11:46:14 2010 +0100"
      },
      "message": "rcu: Use wrapper function instead of exporting tasklist_lock\n\nLockdep-RCU commit d11c563d exported tasklist_lock, which is not\na good thing.  This patch instead exports a function that uses\nlockdep to check whether tasklist_lock is held.\n\nSuggested-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nLKML-Reference: \u003c1267631219-8713-1-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b1bf9368407ae7e89d8a005bb40beb70a41df539",
      "tree": "3815c8aab19c6c186736673c624fef5f3faab716",
      "parents": [
        "524df55725217b13d5a232fb5badb5846418ea0e",
        "4671a1322052425afa38fcb7980d2fd2bb0fc99b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:00:29 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:00:29 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.34\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.34\u0027 of git://git.kernel.dk/linux-2.6-block: (38 commits)\n  block: don\u0027t access jiffies when initialising io_context\n  cfq: remove 8 bytes of padding from cfq_rb_root on 64 bit builds\n  block: fix for \"Consolidate phys_segment and hw_segment limits\"\n  cfq-iosched: quantum check tweak\n  blktrace: perform cleanup after setup error\n  blkdev: fix merge_bvec_fn return value checks\n  cfq-iosched: requests \"in flight\" vs \"in driver\" clarification\n  cciss: Fix problem with scatter gather elements in the scsi half of the driver\n  cciss: eliminate unnecessary pointer use in cciss scsi code\n  cciss: do not use void pointer for scsi hba data\n  cciss: factor out scatter gather chain block mapping code\n  cciss: fix scatter gather chain block dma direction kludge\n  cciss: simplify scatter gather code\n  cciss: factor out scatter gather chain block allocation and freeing\n  cciss: detect bad alignment of scsi commands at build time\n  cciss: clarify command list padding calculation\n  cfq-iosched: rethink seeky detection for SSDs\n  cfq-iosched: rework seeky detection\n  block: remove padding from io_context on 64bit builds\n  block: Consolidate phys_segment and hw_segment limits\n  ...\n"
    },
    {
      "commit": "bddd87c7e622ea681c665049027ed84cdcafcb09",
      "tree": "152e6cd922e629c38398d3acefa929c2e33a7dda",
      "parents": [
        "d02f0cff1da4a1bd609e8d3eae3a2e85459cd8a1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Feb 23 08:55:42 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Feb 23 08:55:42 2010 +0100"
      },
      "message": "blk-core: use BIO list management functions\n\nNow that the bio list management stuff is generic, convert\ngeneric_make_request to use bio lists instead of its own private bio\nlist implementation.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6e40f5bbbc734231bc5809d3eb785e3c21f275d7",
      "tree": "8520fc84d9643502ebe86233cefcd774e2babf72",
      "parents": [
        "301ba0457f1ed853fc08e57785f8c87fe7e49c68",
        "0970d2992dfd7d5ec2c787417cf464f01eeaf42a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 16 16:48:56 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 16 16:48:56 2010 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nConflicts: kernel/sched.c\n\nNecessary due to the urgent fixes which conflict with the code move\nfrom sched.c to sched_fair.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "28f5318167adf23b16c844b9c2253f355cb21796",
      "tree": "54ee6c5cb9ec383caba0cd00e8413682634b886f",
      "parents": [
        "50200df462023b187d80a99a52f5f2cfe3c86c26"
      ],
      "author": {
        "name": "Vaidyanathan Srinivasan",
        "email": "svaidy@linux.vnet.ibm.com",
        "time": "Mon Feb 08 15:35:55 2010 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 16 15:13:59 2010 +0100"
      },
      "message": "sched: Fix sched_mv_power_savings for !SMT\n\nFix for sched_mc_powersavigs for pre-Nehalem platforms.\nChild sched domain should clear SD_PREFER_SIBLING if parent will have\nSD_POWERSAVINGS_BALANCE because they are contradicting.\n\nSets the flags correctly based on sched_mc_power_savings.\n\nSigned-off-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100208100555.GD2931@dirshya.in.ibm.com\u003e\nCc: stable@kernel.org [2.6.32.x]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3ad2f3fbb961429d2aa627465ae4829758bc7e07",
      "tree": "f365c513e8f5b477a61336a600ff54f32b7ad6e1",
      "parents": [
        "1537a3638cbf741d3826c1002026cce487a6bee0"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Wed Feb 03 08:01:28 2010 +0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 09 11:13:56 2010 +0100"
      },
      "message": "tree-wide: Assorted spelling fixes\n\nIn particular, several occurances of funny versions of \u0027success\u0027,\n\u0027unknown\u0027, \u0027therefore\u0027, \u0027acknowledge\u0027, \u0027argument\u0027, \u0027achieve\u0027, \u0027address\u0027,\n\u0027beginning\u0027, \u0027desirable\u0027, \u0027separate\u0027 and \u0027necessary\u0027 are fixed.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "6d3e0907b8b239d16720d144e2675ecf10d3bc3b",
      "tree": "e0b0743b5f6f82b057cafc4f3687396a6e01a0b4",
      "parents": [
        "23577256953c870de9b724c3a2611ce7be6a1e4e",
        "50200df462023b187d80a99a52f5f2cfe3c86c26"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 08 08:55:43 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 08 08:55:46 2010 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge reason: Merge dependent fix, update to latest -rc.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa16cd8d12352ccb5b921995ab3901110779f24a",
      "tree": "bc93b1e96dda7e1dc6f1aff498767c627f2de638",
      "parents": [
        "a3a71ca9a715776cf3eda605dafdb4a383782c4f",
        "59647b6ac3050dd964bc556fe6ef22f4db5b935c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 04 16:07:41 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 04 16:07:41 2010 -0800"
      },
      "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: Handle futex value corruption gracefully\n  futex: Handle user space corruption gracefully\n  futex_lock_pi() key refcnt fix\n  softlockup: Add sched_clock_tick() to avoid kernel warning on kgdb resume\n"
    },
    {
      "commit": "d6ad3e286d2c075a60b9f11075a2c55aeeeca2ad",
      "tree": "24f374a6cb1ef36c2aec41b9de6b8f3b1b09780d",
      "parents": [
        "48d50674179981e41f432167b2441cec782d5484"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jan 27 16:25:22 2010 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 01 08:22:32 2010 +0100"
      },
      "message": "softlockup: Add sched_clock_tick() to avoid kernel warning on kgdb resume\n\nWhen CONFIG_HAVE_UNSTABLE_SCHED_CLOCK is set, sched_clock() gets\nthe time from hardware such as the TSC on x86. In this\nconfiguration kgdb will report a softlock warning message on\nresuming or detaching from a debug session.\n\nSequence of events in the problem case:\n\n 1) \"cpu sched clock\" and \"hardware time\" are at 100 sec prior\n    to a call to kgdb_handle_exception()\n\n 2) Debugger waits in kgdb_handle_exception() for 80 sec and on\n    exit the following is called ...  touch_softlockup_watchdog() --\u003e\n    __raw_get_cpu_var(touch_timestamp) \u003d 0;\n\n 3) \"cpu sched clock\" \u003d 100s (it was not updated, because the\n    interrupt was disabled in kgdb) but the \"hardware time\" \u003d 180 sec\n\n 4) The first timer interrupt after resuming from\n    kgdb_handle_exception updates the watchdog from the \"cpu sched clock\"\n\nupdate_process_times() { ...  run_local_timers() --\u003e\nsoftlockup_tick() --\u003e check (touch_timestamp \u003d\u003d 0) (it is \"YES\"\nhere, we have set \"touch_timestamp \u003d 0\" at kgdb) --\u003e\n__touch_softlockup_watchdog() ***(A)--\u003e reset \"touch_timestamp\"\nto \"get_timestamp()\" (Here, the \"touch_timestamp\" will still be\nset to 100s.)  ...\n\n    scheduler_tick() ***(B)--\u003e sched_clock_tick() (update \"cpu sched\n    clock\" to \"hardware time\" \u003d 180s) ...  }\n\n 5) The Second timer interrupt handler appears to have a large\n    jump and trips the softlockup warning.\n\nupdate_process_times() { ...  run_local_timers() --\u003e\nsoftlockup_tick() --\u003e \"cpu sched clock\" - \"touch_timestamp\" \u003d\n180s-100s \u003e 60s --\u003e printk \"soft lockup error messages\" ...  }\n\nnote: ***(A) reset \"touch_timestamp\" to\n\"get_timestamp(this_cpu)\"\n\nWhy is \"touch_timestamp\" 100 sec, instead of 180 sec?\n\nWhen CONFIG_HAVE_UNSTABLE_SCHED_CLOCK is set, the call trace of\nget_timestamp() is:\n\nget_timestamp(this_cpu)\n --\u003ecpu_clock(this_cpu)\n --\u003esched_clock_cpu(this_cpu)\n --\u003e__update_sched_clock(sched_clock_data, now)\n\nThe __update_sched_clock() function uses the GTOD tick value to\ncreate a window to normalize the \"now\" values.  So if \"now\"\nvalue is too big for sched_clock_data, it will be ignored.\n\nThe fix is to invoke sched_clock_tick() to update \"cpu sched\nclock\" in order to recover from this state.  This is done by\nintroducing the function touch_softlockup_watchdog_sync(). This\nallows kgdb to request that the sched clock is updated when the\nwatchdog thread runs the first time after a resume from kgdb.\n\n[yong.zhang0@gmail.com: Use per cpu instead of an array]\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Dongdong Deng \u003cDongdong.Deng@windriver.com\u003e\nCc: kgdb-bugreport@lists.sourceforge.net\nCc: peterz@infradead.org\nLKML-Reference: \u003c1264631124-4837-2-git-send-email-jason.wessel@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "221af7f87b97431e3ee21ce4b0e77d5411cf1549",
      "tree": "480126aada06d87c09cb62e7c8fa292572438c18",
      "parents": [
        "64a028a6de08545a2c94f302bc7694bf48aee5b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 28 22:14:42 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 29 08:22:01 2010 -0800"
      },
      "message": "Split \u0027flush_old_exec\u0027 into two functions\n\n\u0027flush_old_exec()\u0027 is the point of no return when doing an execve(), and\nit is pretty badly misnamed.  It doesn\u0027t just flush the old executable\nenvironment, it also starts up the new one.\n\nWhich is very inconvenient for things like setting up the new\npersonality, because we want the new personality to affect the starting\nof the new environment, but at the same time we do _not_ want the new\npersonality to take effect if flushing the old one fails.\n\nAs a result, the x86-64 \u002732-bit\u0027 personality is actually done using this\ninsane \"I\u0027m going to change the ABI, but I haven\u0027t done it yet\" bit\n(TIF_ABI_PENDING), with SET_PERSONALITY() not actually setting the\npersonality, but just the \"pending\" bit, so that \"flush_thread()\" can do\nthe actual personality magic.\n\nThis patch in no way changes any of that insanity, but it does split the\n\u0027flush_old_exec()\u0027 function up into a preparatory part that can fail\n(still called flush_old_exec()), and a new part that will actually set\nup the new exec environment (setup_new_exec()).  All callers are changed\nto trivially comply with the new world order.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea87bb7853168434f4a82426dd1ea8421f9e604d",
      "tree": "fcadec9b0fd1c57e4d1b625e2492c13c852972f1",
      "parents": [
        "7c9414385ebfdd87cc542d4e7e3bb0dbb2d3ce25"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 20 20:58:57 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jan 22 18:09:59 2010 +0100"
      },
      "message": "sched: Extend enqueue_task to allow head queueing\n\nThe ability of enqueueing a task to the head of a SCHED_FIFO priority\nlist is required to fix some violations of POSIX scheduling policy.\n\nExtend the related functions with a \"head\" argument.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nTested-by: Carsten Emde \u003ccbe@osadl.org\u003e\nTested-by: Mathias Weber \u003cmathias.weber.mw1@roche.com\u003e\nLKML-Reference: \u003c20100120171629.734886007@linutronix.de\u003e\n\n"
    },
    {
      "commit": "7c9414385ebfdd87cc542d4e7e3bb0dbb2d3ce25",
      "tree": "beb51d7d0d543d72e2754cff807df5c399f2d376",
      "parents": [
        "871e35bc9733f273eaf5ceb69bbd0423b58e5285"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval.giani@gmail.com",
        "time": "Wed Jan 20 13:26:18 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:18 2010 +0100"
      },
      "message": "sched: Remove USER_SCHED\n\nRemove the USER_SCHED feature. It has been scheduled to be removed in\n2.6.34 as per http://marc.info/?l\u003dlinux-kernel\u0026m\u003d125728479022976\u0026w\u003d2\n\nSigned-off-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1263990378.24844.3.camel@localhost\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3d45fd804a95055ecab5b3eed81f5ab2dbb047a2",
      "tree": "3ac7d2dbe75c4e406864b7d8c895f9318f308575",
      "parents": [
        "1e3c88bdeb1260edc341e45c9fb8efd182a5c511"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 17:12:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:09 2010 +0100"
      },
      "message": "sched: Remove the sched_class load_balance methods\n\nTake out the sched_class methods for load-balancing.\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": "efc1a3b16930c41d64ffefde16b87d82f603a8a0",
      "tree": "1f651e22f534f1b3eacd2fab97e9351aa75abd0b",
      "parents": [
        "779c10232ceb11c1b259232c4845cfb2850287b7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:35 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: don\u0027t need get_unmapped_area() for NOMMU\n\nget_unmapped_area() is unnecessary for NOMMU as no-one calls it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e10e716abf3c71bdb5d86b8f507f9e72236c9cd",
      "tree": "c0dee002666c9aaf9862f3ec1140c5946461ec54",
      "parents": [
        "96d07d211739fd2450ac54e81d00fa40fcd4b1bd"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Thu Nov 19 17:16:37 2009 +0100"
      },
      "committer": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Mon Jan 04 11:35:18 2010 +0100"
      },
      "message": "resource: add helpers for fetching rlimits\n\nWe want to be sure that compiler fetches the limit variable only\nonce, so add helpers for fetching current and maximal resource\nlimits which do that.\n\nAdd them to sched.h (instead of resource.h) due to circular dependency\n sched.h-\u003eresource.h-\u003etask_struct\nAlternative would be to create a separate res_access.h or similar.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aac3d39693529ca538e37ebdb6ed5d6432a697c7",
      "tree": "bb1b0c9fe0538008aa2c97c6f5d9dfc2a4c34190",
      "parents": [
        "10e5453ffa0d04a2eda3cda3f55b88cb9c04595f",
        "077614ee1e93245a3b9a4e1213659405dbeb0ba6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 19 09:47:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 19 09:47:49 2009 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (25 commits)\n  sched: Fix broken assertion\n  sched: Assert task state bits at build time\n  sched: Update task_state_arraypwith new states\n  sched: Add missing state chars to TASK_STATE_TO_CHAR_STR\n  sched: Move TASK_STATE_TO_CHAR_STR near the TASK_state bits\n  sched: Teach might_sleep() about preemptible RCU\n  sched: Make warning less noisy\n  sched: Simplify set_task_cpu()\n  sched: Remove the cfs_rq dependency from set_task_cpu()\n  sched: Add pre and post wakeup hooks\n  sched: Move kthread_bind() back to kthread.c\n  sched: Fix select_task_rq() vs hotplug issues\n  sched: Fix sched_exec() balancing\n  sched: Ensure set_task_cpu() is never called on blocked tasks\n  sched: Use TASK_WAKING for fork wakups\n  sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE\n  sched: Fix task_hot() test order\n  sched: Fix set_cpu_active() in cpu_down()\n  sched: Mark boot-cpu active before smp_init()\n  sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n  ...\n"
    },
    {
      "commit": "55db493b65c7b6bb5d7bd3dd3c8a2fe13f5dc09c",
      "tree": "7f9203f43e7c81687c9aaa0213266bc7b2e89e35",
      "parents": [
        "efc8e7f4c83dc85acbf5f54a8b1b24ae75b20aaa",
        "a4636818f8e0991f32d9528f39cf4f3d6a7d30a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 17:00:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 17:00:20 2009 -0800"
      },
      "message": "Merge branch \u0027cpumask-cleanups\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027cpumask-cleanups\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  cpumask: rename tsk_cpumask to tsk_cpus_allowed\n  cpumask: don\u0027t recommend set_cpus_allowed hack in Documentation/cpu-hotplug.txt\n  cpumask: avoid dereferencing struct cpumask\n  cpumask: convert drivers/idle/i7300_idle.c to cpumask_var_t\n  cpumask: use modern cpumask style in drivers/scsi/fcoe/fcoe.c\n  cpumask: avoid deprecated function in mm/slab.c\n  cpumask: use cpu_online in kernel/perf_event.c\n"
    },
    {
      "commit": "b6e3224fb20954f155e41ec5709b2ab70b50ae2d",
      "tree": "96302d1b564c879779b9cc5d7aae7c3c4471ed14",
      "parents": [
        "a2770d86b33024f71df269fde2de096df89d6a48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "message": "Revert \"task_struct: make journal_info conditional\"\n\nThis reverts commit e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319, as\nrequested by Alexey:\n\n \"I think I gave a good enough arguments to not merge it.\n  To iterate:\n   * patch makes impossible to start using ext3 on EXT3_FS\u003dn kernels\n     without reboot.\n   * this is done only for one pointer on task_struct\"\n\n  None of config options which define task_struct are tristate directly\n  or effectively.\"\n\nRequested-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1781538cf5c870ab696e9b8f0a5c498d3900f2f",
      "tree": "42027696b4bc241194299b29cef2ae814b087acd",
      "parents": [
        "464763cf1c6df632dccc8f2f4c7e50163154a2c0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 13:16:30 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 17 13:22:45 2009 +0100"
      },
      "message": "sched: Assert task state bits at build time\n\nSince everybody is lazy and prone to forgetting things, make the\ncompiler help us a bit.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20091217121830.060186433@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "44d90df6b757c59651ddd55f1a84f28132b50d29",
      "tree": "5f60cbcb6e9d0199c5d879a20123f5295bf719a0",
      "parents": [
        "733421516b42c44b9e21f1793c430cc801ef8324"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 13:16:28 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 17 13:22:44 2009 +0100"
      },
      "message": "sched: Add missing state chars to TASK_STATE_TO_CHAR_STR\n\nWe grew 3 new task states since the last time someone touched\nit.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20091217121829.892737686@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "733421516b42c44b9e21f1793c430cc801ef8324",
      "tree": "cc78e2b77d482ee020eed74bfa457b034f85c4ea",
      "parents": [
        "234da7bcdc7aaa935846534c3b726dbc79a9cdd5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 13:16:27 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 17 13:22:43 2009 +0100"
      },
      "message": "sched: Move TASK_STATE_TO_CHAR_STR near the TASK_state bits\n\nSo that we don\u0027t keep forgetting about it.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20091217121829.815779372@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a4636818f8e0991f32d9528f39cf4f3d6a7d30a3",
      "tree": "1140c3566962a2d317dfba545912354be4a0c064",
      "parents": [
        "4251417484a1775ba5cbfe38c67e6d5af9615de4"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Dec 17 11:43:29 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Dec 17 11:43:30 2009 +1030"
      },
      "message": "cpumask: rename tsk_cpumask to tsk_cpus_allowed\n\nNoone uses this wrapper yet, and Ingo asked that it be kept consistent\nwith current task_struct usage.\n\n(One user crept in via linux-next: fixed)\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au.\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "88ec22d3edb72b261f8628226cd543589a6d5e1b",
      "tree": "ca547c82ab6adce0b9e29afb6ceddf50cd417d44",
      "parents": [
        "efbbd05a595343a413964ad85a2ad359b7b7efbd"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 16 18:04:41 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 19:01:58 2009 +0100"
      },
      "message": "sched: Remove the cfs_rq dependency from set_task_cpu()\n\nIn order to remove the cfs_rq dependency from set_task_cpu() we\nneed to ensure the task is cfs_rq invariant for all callsites.\n\nThe simple approach is to substract cfs_rq-\u003emin_vruntime from\nse-\u003evruntime on dequeue, and add cfs_rq-\u003emin_vruntime on\nenqueue.\n\nHowever, this has the downside of breaking FAIR_SLEEPERS since\nwe loose the old vruntime as we only maintain the relative\nposition.\n\nTo solve this, we observe that we only migrate runnable tasks,\nwe do this using deactivate_task(.sleep\u003d0) and\nactivate_task(.wakeup\u003d0), therefore we can restrain the\nmin_vruntime invariance to that state.\n\nThe only other case is wakeup balancing, since we want to\nmaintain the old vruntime we cannot make it relative on dequeue,\nbut since we don\u0027t migrate inactive tasks, we can do so right\nbefore we activate it again.\n\nThis is where we need the new pre-wakeup hook, we need to call\nthis while still holding the old rq-\u003elock. We could fold it into\n-\u003eselect_task_rq(), but since that has multiple callsites and\nwould obfuscate the locking requirements, that seems like a\nfudge.\n\nThis leaves the fork() case, simply make sure that -\u003etask_fork()\nleaves the -\u003evruntime in a relative state.\n\nThis covers all cases where set_task_cpu() gets called, and\nensures it sees a relative vruntime.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091216170518.191697025@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "efbbd05a595343a413964ad85a2ad359b7b7efbd",
      "tree": "c1bf0d86134187e127a00067b50b0684c2988860",
      "parents": [
        "881232b70b195768a71cd74ff4b4e8ab9502997b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 16 18:04:40 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 19:01:58 2009 +0100"
      },
      "message": "sched: Add pre and post wakeup hooks\n\nAs will be apparent in the next patch, we need a pre wakeup hook\nfor sched_fair task migration, hence rename the post wakeup hook\nand one pre wakeup.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091216170518.114746117@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad09750b51150ca87531b8790a379214a974c167",
      "tree": "785520da252e18a058642c7bc95dda35100e4565",
      "parents": [
        "7486e5d9fc773cb67c29381567bed5236fc9573c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Dec 15 16:47:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:09 2009 -0800"
      },
      "message": "signals: kill force_sig_specific()\n\nKill force_sig_specific(), this trivial wrapper has no callers.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "614c517d7c00af1b26ded20646b329397d6f51a1",
      "tree": "ddd7a82b3479c9fabe141b4c82a1794650a82b4f",
      "parents": [
        "d51965037325e51f6cd68583413243c3573e47b0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Dec 15 16:47:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:08 2009 -0800"
      },
      "message": "signals: SEND_SIG_NOINFO should be considered as SI_FROMUSER()\n\nNo changes in compiled code. The patch adds the new helper, si_fromuser()\nand changes check_kill_permission() to use this helper.\n\nThe real effect of this patch is that from now we \"officially\" consider\nSEND_SIG_NOINFO signal as \"from user-space\" signals. This is already true\nif we look at the code which uses SEND_SIG_NOINFO, except __send_signal()\nhas another opinion - see the next patch.\n\nThe naming of these special SEND_SIG_XXX siginfo\u0027s is really bad\nimho.  From __send_signal()\u0027s pov they mean\n\n\tSEND_SIG_NOINFO\t\tfrom user\n\tSEND_SIG_PRIV\t\tfrom kernel\n\tSEND_SIG_FORCED\t\tno info\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nReviewed-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "569b846df54ffb2827b83ce3244c5f032394cba4",
      "tree": "77c5d373a5edf97710fab8777912971b99e84828",
      "parents": [
        "cd9b45b78a61e8df250e69385c74e729e5b66abf"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Dec 15 16:47:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:07 2009 -0800"
      },
      "message": "memcg: coalesce uncharge during unmap/truncate\n\nIn massive parallel enviroment, res_counter can be a performance\nbottleneck.  One strong techinque to reduce lock contention is reducing\ncalls by coalescing some amount of calls into one.\n\nConsidering charge/uncharge chatacteristic,\n\t- charge is done one by one via demand-paging.\n\t- uncharge is done by\n\t\t- in chunk at munmap, truncate, exit, execve...\n\t\t- one by one via vmscan/paging.\n\nIt seems we have a chance to coalesce uncharges for improving scalability\nat unmap/truncation.\n\nThis patch is a for coalescing uncharge.  For avoiding scattering memcg\u0027s\nstructure to functions under /mm, this patch adds memcg batch uncharge\ninformation to the task.  A reason for per-task batching is for making use\nof caller\u0027s context information.  We do batched uncharge (deleyed\nuncharge) when truncation/unmap occurs but do direct uncharge when\nuncharge is called by memory reclaim (vmscan.c).\n\nThe degree of coalescing depends on callers\n  - at invalidate/trucate... pagevec size\n  - at unmap ....ZAP_BLOCK_SIZE\n(memory itself will be freed in this degree.)\nThen, we\u0027ll not coalescing too much.\n\nOn x86-64 8cpu server, I tested overheads of memcg at page fault by\nrunning a program which does map/fault/unmap in a loop. Running\na task per a cpu by taskset and see sum of the number of page faults\nin 60secs.\n\n[without memcg config]\n  40156968  page-faults              #      0.085 M/sec   ( +-   0.046% )\n  27.67 cache-miss/faults\n[root cgroup]\n  36659599  page-faults              #      0.077 M/sec   ( +-   0.247% )\n  31.58 miss/faults\n[in a child cgroup]\n  18444157  page-faults              #      0.039 M/sec   ( +-   0.133% )\n  69.96 miss/faults\n[child with this patch]\n  27133719  page-faults              #      0.057 M/sec   ( +-   0.155% )\n  47.16 miss/faults\n\nWe can see some amounts of improvement.\n(root cgroup doesn\u0027t affected by this patch)\nAnother patch for \"charge\" will follow this and above will be improved more.\n\nChangelog(since 2009/10/02):\n - renamed filed of memcg_batch (as pages to bytes, memsw to memsw_bytes)\n - some clean up and commentary/description updates.\n - added initialize code to copy_process(). (possible bug fix)\n\nChangelog(old):\n - fixed !CONFIG_MEM_CGROUP case.\n - rebased onto the latest mmotm + softlimit fix patches.\n - unified patch for callers\n - added commetns.\n - make -\u003edo_batch as bool.\n - removed css_get() at el. We don\u0027t need it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f0ddf91f2aeb09602373e400cf8b403e9017210",
      "tree": "b907c35c79caadafff6ad46a91614e30afd2f967",
      "parents": [
        "050cbb09dac0402672edeaeac06094ef8ff1749a",
        "b5f91da0a6973bb6f9ff3b91b0e92c0773a458f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 09:02:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 09:02:01 2009 -0800"
      },
      "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: (26 commits)\n  clockevents: Convert to raw_spinlock\n  clockevents: Make tick_device_lock static\n  debugobjects: Convert to raw_spinlocks\n  perf_event: Convert to raw_spinlock\n  hrtimers: Convert to raw_spinlocks\n  genirq: Convert irq_desc.lock to raw_spinlock\n  smp: Convert smplocks to raw_spinlocks\n  rtmutes: Convert rtmutex.lock to raw_spinlock\n  sched: Convert pi_lock to raw_spinlock\n  sched: Convert cpupri lock to raw_spinlock\n  sched: Convert rt_runtime_lock to raw_spinlock\n  sched: Convert rq-\u003elock to raw_spinlock\n  plist: Make plist debugging raw_spinlock aware\n  bkl: Fixup core_lock fallout\n  locking: Cleanup the name space completely\n  locking: Further name space cleanups\n  alpha: Fix fallout from locking changes\n  locking: Implement new raw_spinlock\n  locking: Convert raw_rwlock functions to arch_rwlock\n  locking: Convert raw_rwlock to arch_rwlock\n  ...\n"
    },
    {
      "commit": "e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319",
      "tree": "ce2be0a79fa2e8d8271426f0fc27b25e83c050b4",
      "parents": [
        "8420e7efa1cf155765c6d77c91d3e3547c7aa557"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Mon Dec 14 18:00:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:27 2009 -0800"
      },
      "message": "task_struct: make journal_info conditional\n\njournal_info in task_struct is used in journaling file system only.  So\nintroduce CONFIG_FS_JOURNAL_INFO and make it conditional.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d615482547584b9a8bb6316a58fed6ce90dd9ff",
      "tree": "21dae4b70acb3ce0bdaeeaee1dbd970be41d26e2",
      "parents": [
        "fe841226bd954fba4fd79f037a876053fe9c3217"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 14:54:03 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "sched: Convert pi_lock to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "702a7c7609bec3a940b6a46b0d6ab9ce45274580",
      "tree": "6c169691449259410b9b51a146acb0e837dae96a",
      "parents": [
        "053fe57ac249a9531c396175778160d9e9509399",
        "b9889ed1ddeca5a3f3569c8de7354e9e97d803ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 12 11:34:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 12 11:34:10 2009 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (21 commits)\n  sched: Remove forced2_migrations stats\n  sched: Fix memory leak in two error corner cases\n  sched: Fix build warning in get_update_sysctl_factor()\n  sched: Update normalized values on user updates via proc\n  sched: Make tunable scaling style configurable\n  sched: Fix missing sched tunable recalculation on cpu add/remove\n  sched: Fix task priority bug\n  sched: cgroup: Implement different treatment for idle shares\n  sched: Remove unnecessary RCU exclusion\n  sched: Discard some old bits\n  sched: Clean up check_preempt_wakeup()\n  sched: Move update_curr() in check_preempt_wakeup() to avoid redundant call\n  sched: Sanitize fork() handling\n  sched: Clean up ttwu() rq locking\n  sched: Remove rq-\u003eclock coupling from set_task_cpu()\n  sched: Consolidate select_task_rq() callers\n  sched: Remove sysctl.sched_features\n  sched: Protect sched_rr_get_param() access to task-\u003esched_class\n  sched: Protect task-\u003ecpus_allowed access in sched_getaffinity()\n  sched: Fix balance vs hotplug race\n  ...\n\nFixed up conflicts in kernel/sysctl.c (due to sysctl cleanup)\n"
    },
    {
      "commit": "6f696eb17be741668810fe1f798135c7cf6733e2",
      "tree": "f9bcfe5831dfcaaad50ca68d7f04d80d8236fa56",
      "parents": [
        "c4e194e3b71ff4fed01d727c32ee1071921d28a3",
        "125580380f418000b1a06d9a54700f1191b6e561"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 20:47:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 20:47:30 2009 -0800"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (57 commits)\n  x86, perf events: Check if we have APIC enabled\n  perf_event: Fix variable initialization in other codepaths\n  perf kmem: Fix unused argument build warning\n  perf symbols: perf_header__read_build_ids() offset\u0027n\u0027size should be u64\n  perf symbols: dsos__read_build_ids() should read both user and kernel buildids\n  perf tools: Align long options which have no short forms\n  perf kmem: Show usage if no option is specified\n  sched: Mark sched_clock() as notrace\n  perf sched: Add max delay time snapshot\n  perf tools: Correct size given to memset\n  perf_event: Fix perf_swevent_hrtimer() variable initialization\n  perf sched: Fix for getting task\u0027s execution time\n  tracing/kprobes: Fix field creation\u0027s bad error handling\n  perf_event: Cleanup for cpu_clock_perf_event_update()\n  perf_event: Allocate children\u0027s perf_event_ctxp at the right time\n  perf_event: Clean up __perf_event_init_context()\n  hw-breakpoints: Modify breakpoints without unregistering them\n  perf probe: Update perf-probe document\n  perf probe: Support --del option\n  trace-kprobe: Support delete probe syntax\n  ...\n"
    },
    {
      "commit": "b9889ed1ddeca5a3f3569c8de7354e9e97d803ae",
      "tree": "7309bed51e68f3414a7dd4159a7941d672028dbc",
      "parents": [
        "dfc12eb26a285df316be68a808af86964f3bff86"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 10 20:32:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 10 20:32:39 2009 +0100"
      },
      "message": "sched: Remove forced2_migrations stats\n\nThis build warning:\n\n kernel/sched.c: In function \u0027set_task_cpu\u0027:\n kernel/sched.c:2070: warning: unused variable \u0027old_rq\u0027\n\nMade me realize that the forced2_migrations stat looks pretty\npointless (and a misnomer) - remove it.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1bbfa6f25673019dc0acc9308b667c96f6cda8bf",
      "tree": "d6a49eaf657c7981e2734758fbb50e2265997c37",
      "parents": [
        "3786310afe738070be31c439b8deeaeb69b9735d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed Dec 09 20:07:03 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 10 08:30:27 2009 +0100"
      },
      "message": "sched: Mark sched_clock() as notrace\n\nThe core ftrace code (trace_clock_local) calls sched_clock()\ndirectly, so we don\u0027t want to recurisvely trigger the ftrace\ncode.  Rather than update every sched_clock() definition, tag\nthe prototype for everyone as notrace.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c1260407223-10900-1-git-send-email-vapier@gentoo.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1983a922a1bc843806b9a36cf3a370b242783140",
      "tree": "3071f23d39e05587823a40033c4c11a0867dd46e",
      "parents": [
        "0bcdcf28c979869f44e05121b96ff2cfb05bd8e6"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Nov 30 12:16:47 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:04:01 2009 +0100"
      },
      "message": "sched: Make tunable scaling style configurable\n\nAs scaling now takes place on all kind of cpu add/remove events a user\nthat configures values via proc should be able to configure if his set\nvalues are still rescaled or kept whatever happens.\n\nAs the comments state that log2 was just a second guess that worked the\ninterface is not just designed for on/off, but to choose a scaling type.\nCurrently this allows none, log and linear, but more important it allwos\nus to keep the interface even if someone has an even better idea how to\nscale the values.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1259579808-11357-3-git-send-email-ehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6cecd084d0fd27bb1e498e2829fd45846d806856",
      "tree": "90cc079c942ad35669d1a33957a121c1cb3a88a6",
      "parents": [
        "3a7e73a2e26fffdbc46ba95fc0425418984f5140"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 30 13:00:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:07 2009 +0100"
      },
      "message": "sched: Discard some old bits\n\nWAKEUP_RUNNING was an experiment, not sure why that ever ended up being\nmerged...\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": "cd29fe6f2637cc2ccbda5ac65f5332d6bf5fa3c6",
      "tree": "b4206012d424a8c0bce1f260d042c678db0602a2",
      "parents": [
        "ab19cb23313733c55e0517607844b86720b35f5f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 27 17:32:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:05 2009 +0100"
      },
      "message": "sched: Sanitize fork() handling\n\nCurrently we try to do task placement in wake_up_new_task() after we do\nthe load-balance pass in sched_fork(). This yields complicated semantics\nin that we have to deal with tasks on different RQs and the\nset_task_cpu() calls in copy_process() and sched_fork()\n\nRename -\u003etask_new() to -\u003etask_fork() and call it from sched_fork()\nbefore the balancing, this gives the policy a clear point to place the\ntask.\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": "6b314d0e11924c803bf8cd944e87fd58cdb5088c",
      "tree": "27fda1b12e7552d2fd384378a67639ec8643bc38",
      "parents": [
        "dba091b9e3522b9d32fc9975e48d3b69633b45f0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 02 18:58:05 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:01 2009 +0100"
      },
      "message": "sched: Remove sysctl.sched_features\n\nSince we\u0027ve had a much saner debugfs interface to this, remove the\nsysctl one.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\n[ v2: build fix ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dba091b9e3522b9d32fc9975e48d3b69633b45f0",
      "tree": "91549e3921971b6d0074fd34c29223b593381c8a",
      "parents": [
        "3160568371da441b7f2fb57f2f1225404207e8f2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 09 09:32:03 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:01:07 2009 +0100"
      },
      "message": "sched: Protect sched_rr_get_param() access to task-\u003esched_class\n\nsched_rr_get_param calls\ntask-\u003esched_class-\u003eget_rr_interval(task) without protection\nagainst a concurrent sched_setscheduler() call which modifies\ntask-\u003esched_class.\n\nSerialize the access with task_rq_lock(task) and hand the rq\npointer into get_rr_interval() as it\u0027s needed at least in the\nsched_fair implementation.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.0912090930120.3089@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "897e81bea1fcfcd2c5cdb720c9efdb25da9ff374",
      "tree": "92cf33ed2c35c1ece633f09365702f1c8e24d415",
      "parents": [
        "c3fa27d1367fac63ac8533d6f20ea851d0d70a10",
        "0cf55e1ec08bb5a22e068309e2d8ba1180ab4239"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:49 2009 -0800"
      },
      "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: (35 commits)\n  sched, cputime: Introduce thread_group_times()\n  sched, cputime: Cleanups related to task_times()\n  Revert \"sched, x86: Optimize branch hint in __switch_to()\"\n  sched: Fix isolcpus boot option\n  sched: Revert 498657a478c60be092208422fefa9c7b248729c2\n  sched, time: Define nsecs_to_jiffies()\n  sched: Remove task_{u,s,g}time()\n  sched: Introduce task_times() to replace task_{u,s}time() pair\n  sched: Limit the number of scheduler debug messages\n  sched.c: Call debug_show_all_locks() when dumping all tasks\n  sched, x86: Optimize branch hint in __switch_to()\n  sched: Optimize branch hint in context_switch()\n  sched: Optimize branch hint in pick_next_task_fair()\n  sched_feat_write(): Update ppos instead of file-\u003ef_pos\n  sched: Sched_rt_periodic_timer vs cpu hotplug\n  sched, kvm: Fix race condition involving sched_in_preempt_notifers\n  sched: More generic WAKE_AFFINE vs select_idle_sibling()\n  sched: Cleanup select_task_rq_fair()\n  sched: Fix granularity of task_u/stime()\n  sched: Fix/add missing update_rq_clock() calls\n  ...\n"
    },
    {
      "commit": "69f061e0c2ed47304b3eeac7fb7bd5268652dc50",
      "tree": "69bca9d5c7e7eb5e79dae030cbce713686e4d209",
      "parents": [
        "607781762e7aae9c976f0a9a8829d4ba3e2da4ab",
        "f84d49b218b7d4c6cba2e0b41f24bd4045403962"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:52:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:52:33 2009 -0800"
      },
      "message": "Merge branch \u0027core-signal-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-signal-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  signal: Print warning message when dropping signals\n  signal: Fix alternate signal stack check\n"
    },
    {
      "commit": "0cf55e1ec08bb5a22e068309e2d8ba1180ab4239",
      "tree": "6102662a9594d51155bee11666fe8517fcbe6039",
      "parents": [
        "d99ca3b977fc5a93141304f571475c2af9e6c1c5"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Dec 02 17:28:07 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 17:32:40 2009 +0100"
      },
      "message": "sched, cputime: Introduce thread_group_times()\n\nThis is a real fix for problem of utime/stime values decreasing\ndescribed in the thread:\n\n   http://lkml.org/lkml/2009/11/3/522\n\nNow cputime is accounted in the following way:\n\n - {u,s}time in task_struct are increased every time when the thread\n   is interrupted by a tick (timer interrupt).\n\n - When a thread exits, its {u,s}time are added to signal-\u003e{u,s}time,\n   after adjusted by task_times().\n\n - When all threads in a thread_group exits, accumulated {u,s}time\n   (and also c{u,s}time) in signal struct are added to c{u,s}time\n   in signal struct of the group\u0027s parent.\n\nSo {u,s}time in task struct are \"raw\" tick count, while\n{u,s}time and c{u,s}time in signal struct are \"adjusted\" values.\n\nAnd accounted values are used by:\n\n - task_times(), to get cputime of a thread:\n   This function returns adjusted values that originates from raw\n   {u,s}time and scaled by sum_exec_runtime that accounted by CFS.\n\n - thread_group_cputime(), to get cputime of a thread group:\n   This function returns sum of all {u,s}time of living threads in\n   the group, plus {u,s}time in the signal struct that is sum of\n   adjusted cputimes of all exited threads belonged to the group.\n\nThe problem is the return value of thread_group_cputime(),\nbecause it is mixed sum of \"raw\" value and \"adjusted\" value:\n\n  group\u0027s {u,s}time \u003d foreach(thread){{u,s}time} + exited({u,s}time)\n\nThis misbehavior can break {u,s}time monotonicity.\nAssume that if there is a thread that have raw values greater\nthan adjusted values (e.g. interrupted by 1000Hz ticks 50 times\nbut only runs 45ms) and if it exits, cputime will decrease (e.g.\n-5ms).\n\nTo fix this, we could do:\n\n  group\u0027s {u,s}time \u003d foreach(t){task_times(t)} + exited({u,s}time)\n\nBut task_times() contains hard divisions, so applying it for\nevery thread should be avoided.\n\nThis patch fixes the above problem in the following way:\n\n - Modify thread\u0027s exit (\u003d __exit_signal()) not to use task_times().\n   It means {u,s}time in signal struct accumulates raw values instead\n   of adjusted values.  As the result it makes thread_group_cputime()\n   to return pure sum of \"raw\" values.\n\n - Introduce a new function thread_group_times(*task, *utime, *stime)\n   that converts \"raw\" values of thread_group_cputime() to \"adjusted\"\n   values, in same calculation procedure as task_times().\n\n - Modify group\u0027s exit (\u003d wait_task_zombie()) to use this introduced\n   thread_group_times().  It make c{u,s}time in signal struct to\n   have adjusted values like before this patch.\n\n - Replace some thread_group_cputime() by thread_group_times().\n   This replacements are only applied where conveys the \"adjusted\"\n   cputime to users, and where already uses task_times() near by it.\n   (i.e. sys_times(), getrusage(), and /proc/\u003cPID\u003e/stat.)\n\nThis patch have a positive side effect:\n\n - Before this patch, if a group contains many short-life threads\n   (e.g. runs 0.9ms and not interrupted by ticks), the group\u0027s\n   cputime could be invisible since thread\u0027s cputime was accumulated\n   after adjusted: imagine adjustment function as adj(ticks, runtime),\n     {adj(0, 0.9) + adj(0, 0.9) + ....} \u003d {0 + 0 + ....} \u003d 0.\n   After this patch it will not happen because the adjustment is\n   applied after accumulated.\n\nv2:\n - remove if()s, put new variables into signal_struct.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nLKML-Reference: \u003c4B162517.8040909@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d99ca3b977fc5a93141304f571475c2af9e6c1c5",
      "tree": "7665ebdafcef46c310055021562e6629f59eafd5",
      "parents": [
        "be8147e68625a1adb111acfd6b98a492be4b74d0"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Dec 02 17:26:47 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 17:32:39 2009 +0100"
      },
      "message": "sched, cputime: Cleanups related to task_times()\n\n- Remove if({u,s}t)s because no one call it with NULL now.\n- Use cputime_{add,sub}().\n- Add ifndef-endif for prev_{u,s}time since they are used\n  only when !VIRT_CPU_ACCOUNTING.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nLKML-Reference: \u003c4B1624C7.7040302@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa1452e808732ae10e8b1267fd75fc2d028d634b",
      "tree": "c6c3031fa072b168fceef530f38e5166f21ed17d",
      "parents": [
        "a49ed0bf427a8328a3296eebedc7697fe5098dbf"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Mon Nov 30 14:59:44 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 10:24:37 2009 +0100"
      },
      "message": "locking, task_struct: Reduce size on TRACE_IRQFLAGS and 64bit\n\nReorder task_struct field for TRACE_IRQFLAGS to remove padding\non 64-bit.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4B135F50.8070302@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d5b7c78e975302a1bab28263266c39ecb71acad4",
      "tree": "47d9a18b2e81b3f93faf89b548b50beff29dd4fe",
      "parents": [
        "d180c5bccec02612256fd8076ff3c1fac3429553"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:49:05 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:20 2009 +0100"
      },
      "message": "sched: Remove task_{u,s,g}time()\n\nNow all task_{u,s}time() pairs are replaced by task_times().\nAnd task_gtime() is too simple to be an inline function.\n\nCleanup them all.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nLKML-Reference: \u003c4B0E16D1.70902@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d180c5bccec02612256fd8076ff3c1fac3429553",
      "tree": "1ef4a45c81531645640380965916c68bbe7f6abb",
      "parents": [
        "16bc67edeb49b531940b2ba6c183780a1b5c472d"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:48:30 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:19 2009 +0100"
      },
      "message": "sched: Introduce task_times() to replace task_{u,s}time() pair\n\nFunctions task_{u,s}time() are called in pair in almost all\ncases.  However task_stime() is implemented to call task_utime()\nfrom its inside, so such paired calls run task_utime() twice.\n\nIt means we do heavy divisions (div_u64 + do_div) twice to get\nutime and stime which can be obtained at same time by one set\nof divisions.\n\nThis patch introduces a function task_times(*tsk, *utime,\n*stime) to retrieve utime and stime at once in better, optimized\nway.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nLKML-Reference: \u003c4B0E16AE.906@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a855dd01bc1539111adb7233f587c5c468732ac",
      "tree": "4ceb2f997ab5ef2830eb91ee8414110bf70cb20b",
      "parents": [
        "51bb296b09a83ee1aae025778db38f9d2cc7bb1a"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Sun Oct 25 15:37:58 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 04 18:19:12 2009 +0100"
      },
      "message": "signal: Fix alternate signal stack check\n\nAll architectures in the kernel increment/decrement the stack pointer\nbefore storing values on the stack.\n\nOn architectures which have the stack grow down sas_ss_sp \u003d\u003d sp is not\non the alternate signal stack while sas_ss_sp + sas_ss_size \u003d\u003d sp is\non the alternate signal stack.\n\nOn architectures which have the stack grow up sas_ss_sp \u003d\u003d sp is on\nthe alternate signal stack while sas_ss_sp + sas_ss_size \u003d\u003d sp is not\non the alternate signal stack.\n\nThe current implementation fails for architectures which have the\nstack grow down on the corner case where sas_ss_sp \u003d\u003d sp.This was\nreported as Debian bug #544905 on AMD64.\nSimplified test case: http://download.breakpoint.cc/tc-sig-stack.c\n\nThe test case creates the following stack scenario:\n   0xn0300\tstack top\n   0xn0200\talt stack pointer top (when switching to alt stack)\n   0xn01ff\talt stack end\n   0xn0100\talt stack start \u003d\u003d stack pointer\n\nIf the signal is sent the stack pointer is pointing to the base\naddress of the alt stack and the kernel erroneously decides that it\nhas already switched to the alternate stack because of the current\ncheck for \"sp - sas_ss_sp \u003c sas_ss_size\"\n\nOn parisc (stack grows up) the scenario would be:\n   0xn0200\tstack pointer\n   0xn01ff\talt stack end\n   0xn0100\talt stack start \u003d alt stack pointer base\n   \t\t    \t  \t  (when switching to alt stack)\n   0xn0000\tstack base\n\nThis is handled correctly by the current implementation.\n\n[ tglx: Modified for archs which have the stack grow up (parisc) which\n  \twould fail with the correct implementation for stack grows\n  \tdown. Added a check for sp \u003e\u003d current-\u003esas_ss_sp which is\n  \tstrictly not necessary but makes the code symetric for both\n  \tvariants ]\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c20091025143758.GA6653@Chamillionaire.breakpoint.cc\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "acc3f5d7cabbfd6cec71f0c1f9900621fa2d6ae7",
      "tree": "672ed45f6df2f52e8f3cced2ee11ad29a1533890",
      "parents": [
        "e2c880630438f80b474378d5487b511b07665051"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 03 14:53:40 2009 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 13:16:40 2009 +0100"
      },
      "message": "cpumask: Partition_sched_domains takes array of cpumask_var_t\n\nCurrently partition_sched_domains() takes a \u0027struct cpumask\n*doms_new\u0027 which is a kmalloc\u0027ed array of cpumask_t.  You can\u0027t\nhave such an array if \u0027struct cpumask\u0027 is undefined, as we plan\nfor CONFIG_CPUMASK_OFFSTACK\u003dy.\n\nSo, we make this an array of cpumask_var_t instead: this is the\nsame for the CONFIG_CPUMASK_OFFSTACK\u003dn case, but requires\nmultiple allocations for the CONFIG_CPUMASK_OFFSTACK\u003dy case.\nHence we add alloc_sched_domains() and free_sched_domains()\nfunctions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c200911031453.40668.rusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9824a2b728b63e7ff586b9fd9293c819be79f0f3",
      "tree": "cb73b6d37e5854206bf669bc63c72342191039c8",
      "parents": [
        "2a2bb3142d326bb28b03875cabfc49baaac9a14a"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Nov 04 16:16:54 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 11:43:43 2009 +0100"
      },
      "message": "sched: Remove unused cpu_nr_migrations()\n\ncpu_nr_migrations() is not used, remove it.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4AF12A66.6020609@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a2bb3142d326bb28b03875cabfc49baaac9a14a",
      "tree": "28dcff456d5065015443f97b6fc7d1099832083a",
      "parents": [
        "1477b6a7edd9ffa7bba4f9779ce9a76ce92761ed"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Nov 04 16:16:10 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 11:43:42 2009 +0100"
      },
      "message": "sched: Remove unused time_sync_thresh declaration\n\ntime_sync_thresh had been removed.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4AF12A3A.5050200@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1477b6a7edd9ffa7bba4f9779ce9a76ce92761ed",
      "tree": "550163b002a661377ffbd21b8c16fc691a906752",
      "parents": [
        "ce0e7b28fb75cb003cfc8d0238613aaf1c55e797"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Nov 04 16:14:16 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 11:43:42 2009 +0100"
      },
      "message": "sched: Remove unused __schedule() declaration\n\n__schedule() had been removed.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4AF129C8.3030008@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "db16826367fefcb0ddb93d76b66adc52eb4e6339",
      "tree": "626224c1eb1eb79c522714591f208b4fdbdcd9d4",
      "parents": [
        "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
        "465fdd97cbe16ef8727221857e96ef62dd352017"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits)\n  HWPOISON: Enable error_remove_page on btrfs\n  HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs\n  HWPOISON: Add madvise() based injector for hardware poisoned pages v4\n  HWPOISON: Enable error_remove_page for NFS\n  HWPOISON: Enable .remove_error_page for migration aware file systems\n  HWPOISON: The high level memory error handler in the VM v7\n  HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n  HWPOISON: shmem: call set_page_dirty() with locked page\n  HWPOISON: Define a new error_remove_page address space op for async truncation\n  HWPOISON: Add invalidate_inode_page\n  HWPOISON: Refactor truncate to allow direct truncating of page v2\n  HWPOISON: check and isolate corrupted free pages v2\n  HWPOISON: Handle hardware poisoned pages in try_to_unmap\n  HWPOISON: Use bitmask/action code for try_to_unmap behaviour\n  HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2\n  HWPOISON: Add poison check to page fault handling\n  HWPOISON: Add basic support for poisoned pages in fault handler v3\n  HWPOISON: Add new SIGBUS error codes for hardware poison signals\n  HWPOISON: Add support for poison swap entries v2\n  HWPOISON: Export some rmap vma locking to outside world\n  ...\n"
    },
    {
      "commit": "801460d0cf5c5288153b722565773059b0f44348",
      "tree": "ff2542903572a546ac59e92f295e9a18e718afa0",
      "parents": [
        "2fa4341074cd02fb39aa23410740764948755635"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Sep 23 15:57:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "task_struct cleanup: move binfmt field to mm_struct\n\nBecause the binfmt is not different between threads in the same process,\nit can be moved from task_struct to mm_struct.  And binfmt moudle is\nhandled per mm_struct instead of task_struct.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9588725e52650e82989707f8fd2feb67ad2dc8e",
      "tree": "39a9f9f5e8ba6a6e008b9ada310347e24ede400e",
      "parents": [
        "ba0a6c9f6fceed11c6a99e8326f0477fe383e6b5"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Sep 23 15:57:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "signals: inline __fatal_signal_pending\n\n__fatal_signal_pending inlines to one instruction on x86, probably two\ninstructions on other machines.  It takes two longer x86 instructions just\nto call it and test its return value, not to mention the function itself.\n\nOn my random x86_64 config, this saved 70 bytes of text (59 of those being\n__fatal_signal_pending itself).\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a7f0765edfd53aed09cb7b0e15863688b39447de",
      "tree": "c89adfe418f9988ad4044e0f22827458bdf6b155",
      "parents": [
        "1dd3a27326d307952f8ad2499478c84dc7311517"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "ptrace: __ptrace_detach: do __wake_up_parent() if we reap the tracee\n\nThe bug is old, it wasn\u0027t cause by recent changes.\n\nTest case:\n\n\tstatic void *tfunc(void *arg)\n\t{\n\t\tint pid \u003d (long)arg;\n\n\t\tassert(ptrace(PTRACE_ATTACH, pid, NULL, NULL) \u003d\u003d 0);\n\t\tkill(pid, SIGKILL);\n\n\t\tsleep(1);\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t th;\n\t\tlong pid \u003d fork();\n\n\t\tif (!pid)\n\t\t\tpause();\n\n\t\tsignal(SIGCHLD, SIG_IGN);\n\t\tassert(pthread_create(\u0026th, NULL, tfunc, (void*)pid) \u003d\u003d 0);\n\n\t\tint r \u003d waitpid(-1, NULL, __WNOTHREAD);\n\t\tprintf(\"waitpid: %d %m\\n\", r);\n\n\t\treturn 0;\n\t}\n\nBefore the patch this program hangs, after this patch waitpid() correctly\nfails with errno \u003d\u003d -ECHILD.\n\nThe problem is, __ptrace_detach() reaps the EXIT_ZOMBIE tracee if its\n-\u003ereal_parent is our sub-thread and we ignore SIGCHLD.  But in this case\nwe should wake up other threads which can sleep in do_wait().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0ad955680878998ff7dc51ce06ddad12260423a",
      "tree": "dc475d81413dacd8ecbe3e6d0e4949be7ec97b44",
      "parents": [
        "e68110fb54c3c784fb66be67d8d18a86286eefdd"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:38 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:39 2009 +0930"
      },
      "message": "cpumask: don\u0027t define set_cpus_allowed() if CONFIG_CPUMASK_OFFSTACK\u003dy\n\nYou\u0027re not supposed to pass cpumasks on the stack in that case.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "31bbb9b58d1e8ebcf2b28c95c2250a9f8e31e397",
      "tree": "6bb0c0490d66d32eca43e73abb28d8b3ab0e7b91",
      "parents": [
        "ff830b8e5f999d1ccbd0282a666520f0b557daa4",
        "3f0a525ebf4b8ef041a332bbe4a73aee94bb064b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:46:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:46:15 2009 -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  itimers: Add tracepoints for itimer\n  hrtimer: Add tracepoint for hrtimers\n  timers: Add tracepoints for timer_list timers\n  cputime: Optimize jiffies_to_cputime(1)\n  itimers: Simplify arm_timer() code a bit\n  itimers: Fix periodic tics precision\n  itimers: Merge ITIMER_VIRT and ITIMER_PROF\n\nTrivial header file include conflicts in kernel/fork.c\n"
    },
    {
      "commit": "d899bf7b55f503ba7d3d07ed27c3a37e270fa7db",
      "tree": "32a5ee7816b2f0cb3261dcca8102b9cafe9251bd",
      "parents": [
        "cba8aafe1e07dfc8bae5ba78be8e02883bd34d31"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Sep 22 16:45:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "procfs: provide stack information for threads\n\nA patch to give a better overview of the userland application stack usage,\nespecially for embedded linux.\n\nCurrently you are only able to dump the main process/thread stack usage\nwhich is showed in /proc/pid/status by the \"VmStk\" Value.  But you get no\ninformation about the consumed stack memory of the the threads.\n\nThere is an enhancement in the /proc/\u003cpid\u003e/{task/*,}/*maps and which marks\nthe vm mapping where the thread stack pointer reside with \"[thread stack\nxxxxxxxx]\".  xxxxxxxx is the maximum size of stack.  This is a value\ninformation, because libpthread doesn\u0027t set the start of the stack to the\ntop of the mapped area, depending of the pthread usage.\n\nA sample output of /proc/\u003cpid\u003e/task/\u003ctid\u003e/maps looks like:\n\n08048000-08049000 r-xp 00000000 03:00 8312       /opt/z\n08049000-0804a000 rw-p 00001000 03:00 8312       /opt/z\n0804a000-0806b000 rw-p 00000000 00:00 0          [heap]\na7d12000-a7d13000 ---p 00000000 00:00 0\na7d13000-a7f13000 rw-p 00000000 00:00 0          [thread stack: 001ff4b4]\na7f13000-a7f14000 ---p 00000000 00:00 0\na7f14000-a7f36000 rw-p 00000000 00:00 0\na7f36000-a8069000 r-xp 00000000 03:00 4222       /lib/libc.so.6\na8069000-a806b000 r--p 00133000 03:00 4222       /lib/libc.so.6\na806b000-a806c000 rw-p 00135000 03:00 4222       /lib/libc.so.6\na806c000-a806f000 rw-p 00000000 00:00 0\na806f000-a8083000 r-xp 00000000 03:00 14462      /lib/libpthread.so.0\na8083000-a8084000 r--p 00013000 03:00 14462      /lib/libpthread.so.0\na8084000-a8085000 rw-p 00014000 03:00 14462      /lib/libpthread.so.0\na8085000-a8088000 rw-p 00000000 00:00 0\na8088000-a80a4000 r-xp 00000000 03:00 8317       /lib/ld-linux.so.2\na80a4000-a80a5000 r--p 0001b000 03:00 8317       /lib/ld-linux.so.2\na80a5000-a80a6000 rw-p 0001c000 03:00 8317       /lib/ld-linux.so.2\nafaf5000-afb0a000 rw-p 00000000 00:00 0          [stack]\nffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]\n\nAlso there is a new entry \"stack usage\" in /proc/\u003cpid\u003e/{task/*,}/status\nwhich will you give the current stack usage in kb.\n\nA sample output of /proc/self/status looks like:\n\nName:\tcat\nState:\tR (running)\nTgid:\t507\nPid:\t507\n.\n.\n.\nCapBnd:\tfffffffffffffeff\nvoluntary_ctxt_switches:\t0\nnonvoluntary_ctxt_switches:\t0\nStack usage:\t12 kB\n\nI also fixed stack base address in /proc/\u003cpid\u003e/{task/*,}/stat to the base\naddress of the associated thread stack and not the one of the main\nprocess.  This makes more sense.\n\n[akpm@linux-foundation.org: fs/proc/array.c now needs walk_page_range()]\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f10206cf8e945220f7220a809d8bfc15c21f9a5",
      "tree": "4f2c48ccf9cc52dad9610df54e301e631a351288",
      "parents": [
        "b28cfd2c0616e1b42acc6ee3c77ef6cc3873c510"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Sep 22 16:44:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:30 2009 -0700"
      },
      "message": "getrusage: fill ru_maxrss value\n\nMake -\u003eru_maxrss value in struct rusage filled accordingly to rss hiwater\nmark.  This struct is filled as a parameter to getrusage syscall.\n-\u003eru_maxrss value is set to KBs which is the way it is done in BSD\nsystems.  /usr/bin/time (gnu time) application converts -\u003eru_maxrss to KBs\nwhich seems to be incorrect behavior.  Maintainer of this util was\nnotified by me with the patch which corrects it and cc\u0027ed.\n\nTo make this happen we extend struct signal_struct by two fields.  The\nfirst one is -\u003emaxrss which we use to store rss hiwater of the task.  The\nsecond one is -\u003ecmaxrss which we use to store highest rss hiwater of all\ntask childs.  These values are used in k_getrusage() to actually fill\n-\u003eru_maxrss.  k_getrusage() uses current rss hiwater value directly if mm\nstruct exists.\n\nNote:\nexec() clear mm-\u003ehiwater_rss, but doesn\u0027t clear sig-\u003emaxrss.\nit is intetionally behavior. *BSD getrusage have exec() inheriting.\n\ntest programs\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\ngetrusage.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csignal.h\u003e\n #include \u003csys/mman.h\u003e\n\n #include \"common.h\"\n\n #define err(str) perror(str), exit(1)\n\nint main(int argc, char** argv)\n{\n\tint status;\n\n\tprintf(\"allocate 100MB\\n\");\n\tconsume(100);\n\n\tprintf(\"testcase1: fork inherit? \\n\");\n\tprintf(\"  expect: initial.self ~\u003d child.self\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tshow_rusage(\"fork child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase2: fork inherit? (cont.) \\n\");\n\tprintf(\"  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tshow_rusage(\"child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase3: fork + malloc \\n\");\n\tprintf(\"  expect: child.self ~\u003d initial.self + 50MB\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tprintf(\"allocate +50MB\\n\");\n\t\tconsume(50);\n\t\tshow_rusage(\"fork child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase4: grandchild maxrss\\n\");\n\tprintf(\"  expect: post_wait.children ~\u003d 300MB\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t\tshow_rusage(\"post_wait\");\n\t} else {\n\t\tsystem(\"./child -n 0 -g 300\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase5: zombie\\n\");\n\tprintf(\"  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\\n\");\n\tprintf(\"          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss. \\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\tsleep(1); /* children become zombie */\n\t\tshow_rusage(\"pre_wait\");\n\t\twait(\u0026status);\n\t\tshow_rusage(\"post_wait\");\n\t} else {\n\t\tsystem(\"./child -n 400\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase6: SIG_IGN\\n\");\n\tprintf(\"  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\\n\");\n\tshow_rusage(\"initial\");\n\tsignal(SIGCHLD, SIG_IGN);\n\tif (__fork()) {\n\t\tsleep(1); /* children become zombie */\n\t\tshow_rusage(\"after_zombie\");\n\t} else {\n\t\tsystem(\"./child -n 500\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\tsignal(SIGCHLD, SIG_DFL);\n\n\tprintf(\"testcase7: exec (without fork) \\n\");\n\tprintf(\"  expect: initial ~\u003d exec \\n\");\n\tshow_rusage(\"initial\");\n\texecl(\"./child\", \"child\", \"-v\", NULL);\n\n\treturn 0;\n}\n\nchild.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003csys/types.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n\n #include \"common.h\"\n\nint main(int argc, char** argv)\n{\n\tint status;\n\tint c;\n\tlong consume_size \u003d 0;\n\tlong grandchild_consume_size \u003d 0;\n\tint show \u003d 0;\n\n\twhile ((c \u003d getopt(argc, argv, \"n:g:v\")) !\u003d -1) {\n\t\tswitch (c) {\n\t\tcase \u0027n\u0027:\n\t\t\tconsume_size \u003d atol(optarg);\n\t\t\tbreak;\n\t\tcase \u0027v\u0027:\n\t\t\tshow \u003d 1;\n\t\t\tbreak;\n\t\tcase \u0027g\u0027:\n\n\t\t\tgrandchild_consume_size \u003d atol(optarg);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (show)\n\t\tshow_rusage(\"exec\");\n\n\tif (consume_size) {\n\t\tprintf(\"child alloc %ldMB\\n\", consume_size);\n\t\tconsume(consume_size);\n\t}\n\n\tif (grandchild_consume_size) {\n\t\tif (fork()) {\n\t\t\twait(\u0026status);\n\t\t} else {\n\t\t\tprintf(\"grandchild alloc %ldMB\\n\", grandchild_consume_size);\n\t\t\tconsume(grandchild_consume_size);\n\n\t\t\texit(0);\n\t\t}\n\t}\n\n\treturn 0;\n}\n\ncommon.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csignal.h\u003e\n #include \u003csys/mman.h\u003e\n\n #include \"common.h\"\n #define err(str) perror(str), exit(1)\n\nvoid show_rusage(char *prefix)\n{\n    \tint err, err2;\n    \tstruct rusage rusage_self;\n    \tstruct rusage rusage_children;\n\n    \tprintf(\"%s: \", prefix);\n    \terr \u003d getrusage(RUSAGE_SELF, \u0026rusage_self);\n    \tif (!err)\n    \t\tprintf(\"self %ld \", rusage_self.ru_maxrss);\n    \terr2 \u003d getrusage(RUSAGE_CHILDREN, \u0026rusage_children);\n    \tif (!err2)\n    \t\tprintf(\"children %ld \", rusage_children.ru_maxrss);\n\n    \tprintf(\"\\n\");\n}\n\n/* Some buggy OS need this worthless CPU waste. */\nvoid make_pagefault(void)\n{\n\tvoid *addr;\n\tint size \u003d getpagesize();\n\tint i;\n\n\tfor (i\u003d0; i\u003c1000; i++) {\n\t\taddr \u003d mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);\n\t\tif (addr \u003d\u003d MAP_FAILED)\n\t\t\terr(\"make_pagefault\");\n\t\tmemset(addr, 0, size);\n\t\tmunmap(addr, size);\n\t}\n}\n\nvoid consume(int mega)\n{\n    \tsize_t sz \u003d mega * 1024 * 1024;\n    \tvoid *ptr;\n\n    \tptr \u003d malloc(sz);\n    \tmemset(ptr, 0, sz);\n\tmake_pagefault();\n}\n\npid_t __fork(void)\n{\n\tpid_t pid;\n\n\tpid \u003d fork();\n\tmake_pagefault();\n\n\treturn pid;\n}\n\ncommon.h\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nvoid show_rusage(char *prefix);\nvoid make_pagefault(void);\nvoid consume(int mega);\npid_t __fork(void);\n\nFreeBSD result (expected result)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nallocate 100MB\ntestcase1: fork inherit?\n  expect: initial.self ~\u003d child.self\ninitial: self 103492 children 0\nfork child: self 103540 children 0\n\ntestcase2: fork inherit? (cont.)\n  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\ninitial: self 103540 children 103540\nchild: self 103564 children 0\n\ntestcase3: fork + malloc\n  expect: child.self ~\u003d initial.self + 50MB\ninitial: self 103564 children 103564\nallocate +50MB\nfork child: self 154860 children 0\n\ntestcase4: grandchild maxrss\n  expect: post_wait.children ~\u003d 300MB\ninitial: self 103564 children 154860\ngrandchild alloc 300MB\npost_wait: self 103564 children 308720\n\ntestcase5: zombie\n  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\n          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss.\ninitial: self 103564 children 308720\nchild alloc 400MB\npre_wait: self 103564 children 308720\npost_wait: self 103564 children 411312\n\ntestcase6: SIG_IGN\n  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\ninitial: self 103564 children 411312\nchild alloc 500MB\nafter_zombie: self 103624 children 411312\n\ntestcase7: exec (without fork)\n  expect: initial ~\u003d exec\ninitial: self 103624 children 411312\nexec: self 103624 children 411312\n\nLinux result (actual test result)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nallocate 100MB\ntestcase1: fork inherit?\n  expect: initial.self ~\u003d child.self\ninitial: self 102848 children 0\nfork child: self 102572 children 0\n\ntestcase2: fork inherit? (cont.)\n  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\ninitial: self 102876 children 102644\nchild: self 102572 children 0\n\ntestcase3: fork + malloc\n  expect: child.self ~\u003d initial.self + 50MB\ninitial: self 102876 children 102644\nallocate +50MB\nfork child: self 153804 children 0\n\ntestcase4: grandchild maxrss\n  expect: post_wait.children ~\u003d 300MB\ninitial: self 102876 children 153864\ngrandchild alloc 300MB\npost_wait: self 102876 children 307536\n\ntestcase5: zombie\n  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\n          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss.\ninitial: self 102876 children 307536\nchild alloc 400MB\npre_wait: self 102876 children 307536\npost_wait: self 102876 children 410076\n\ntestcase6: SIG_IGN\n  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\ninitial: self 102876 children 410076\nchild alloc 500MB\nafter_zombie: self 102880 children 410076\n\ntestcase7: exec (without fork)\n  expect: initial ~\u003d exec\ninitial: self 102880 children 410076\nexec: self 102880 children 410076\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69d25870f20c4b2563304f2b79c5300dd60a067e",
      "tree": "cda2b2d65c1be95420c6ba92ae2d40fade4232c4",
      "parents": [
        "45d80eea87c9f8292d2d33173d6866c0ec57238a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Mon Sep 21 17:04:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:45 2009 -0700"
      },
      "message": "cpuidle: fix the menu governor to boost IO performance\n\nFix the menu idle governor which balances power savings, energy efficiency\nand performance impact.\n\nThe reason for a reworked governor is that there have been serious\nperformance issues reported with the existing code on Nehalem server\nsystems.\n\nTo show this I\u0027m sure Andrew wants to see benchmark results:\n(benchmark is \"fio\", \"no cstates\" is using \"idle\u003dpoll\")\n\n\t\tno cstates\tcurrent linux\tnew algorithm\n1 disk\t\t107 Mb/s\t85 Mb/s\t\t105 Mb/s\n2 disks\t\t215 Mb/s\t123 Mb/s\t209 Mb/s\n12 disks\t590 Mb/s\t320 Mb/s\t585 Mb/s\n\nIn various power benchmark measurements, no degredation was found by our\nmeasurement\u0026diagnostics team.  Obviously a small percentage more power was\nused in the \"fio\" benchmark, due to the much higher performance.\n\nWhile it would be a novel idea to describe the new algorithm in this\ncommit message, I cheaped out and described it in comments in the code\ninstead.\n\n[changes since first post: spelling fixes from akpm, review feedback,\nfolded menu-tng into menu.c]\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28b83c5193e7ab951e402252278f2cc79dc4d298",
      "tree": "10080e8d3957c2a03f8419ab44c9ecb0ffcdaee0",
      "parents": [
        "f168e1b6390e2d79cf57e48e6ae6d9b0a9e2851a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Sep 21 17:03:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:39 2009 -0700"
      },
      "message": "oom: move oom_adj value from task_struct to signal_struct\n\nCurrently, OOM logic callflow is here.\n\n    __out_of_memory()\n        select_bad_process()            for each task\n            badness()                   calculate badness of one task\n                oom_kill_process()      search child\n                    oom_kill_task()     kill target task and mm shared tasks with it\n\nexample, process-A have two thread, thread-A and thread-B and it have very\nfat memory and each thread have following oom_adj and oom_score.\n\n     thread-A: oom_adj \u003d OOM_DISABLE, oom_score \u003d 0\n     thread-B: oom_adj \u003d 0,           oom_score \u003d very-high\n\nThen, select_bad_process() select thread-B, but oom_kill_task() refuse\nkill the task because thread-A have OOM_DISABLE.  Thus __out_of_memory()\ncall select_bad_process() again.  but select_bad_process() select the same\ntask.  It mean kernel fall in livelock.\n\nThe fact is, select_bad_process() must select killable task.  otherwise\nOOM logic go into livelock.\n\nAnd root cause is, oom_adj shouldn\u0027t be per-thread value.  it should be\nper-process value because OOM-killer kill a process, not thread.  Thus\nThis patch moves oomkilladj (now more appropriately named oom_adj) from\nstruct task_struct to struct signal_struct.  it naturally prevent\nselect_bad_process() choose wrong task.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35451beecbd7c86ce3249d543594517a5fe9a0cd",
      "tree": "e72759e6e6fcd142ab85c607a9b3dd3e1c016eed",
      "parents": [
        "a913e182ab9484308e870af37a14d372742d53b0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:02:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:33 2009 -0700"
      },
      "message": "ksm: unmerge is an origin of OOMs\n\nJust as the swapoff system call allocates many pages of RAM to various\nprocesses, perhaps triggering OOM, so \"echo 2 \u003e/sys/kernel/mm/ksm/run\"\n(unmerge) is liable to allocate many pages of RAM to various processes,\nperhaps triggering OOM; and each is normally run from a modest admin\nprocess (swapoff or shell), easily repeated until it succeeds.\n\nSo treat unmerge_and_remove_all_rmap_items() in the same way that we treat\ntry_to_unuse(): generalize PF_SWAPOFF to PF_OOM_ORIGIN, and bracket both\nwith that, to ask the OOM killer to kill them first, to prevent them from\nspawning more and more OOM kills.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8af4da3b4c14e7267c4ffb952079af3912c51c5",
      "tree": "17b0cfbd2d3d9abf9008f69e7fee5369cec7afa5",
      "parents": [
        "d19f352484467a5e518639ddff0554669c10ffab"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:01:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:31 2009 -0700"
      },
      "message": "ksm: the mm interface to ksm\n\nThis patch presents the mm interface to a dummy version of ksm.c, for\nbetter scrutiny of that interface: the real ksm.c follows later.\n\nWhen CONFIG_KSM is not set, madvise(2) reject MADV_MERGEABLE and\nMADV_UNMERGEABLE with EINVAL, since that seems more helpful than\npretending that they can be serviced.  But when CONFIG_KSM\u003dy, accept them\neven if KSM is not currently running, and even on areas which KSM will not\ntouch (e.g.  hugetlb or shared file or special driver mappings).\n\nLike other madvices, report ENOMEM despite success if any area in the\nrange is unmapped, and use EAGAIN to report out of memory.\n\nDefine vma flag VM_MERGEABLE to identify an area on which KSM may try\nmerging pages: leave it to ksm_madvise() to decide whether to set it.\nDefine mm flag MMF_VM_MERGEABLE to identify an mm which might contain\nVM_MERGEABLE areas, to minimize callouts when forking or exiting.\n\nBased upon earlier patches by Chris Wright and Izik Eidus.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Chris Wright \u003cchrisw@redhat.com\u003e\nSigned-off-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43c1266ce4dc06bfd236cec31e11e9ecd69c0bef",
      "tree": "40a86739ca4c36200f447f655b01c57cfe646e26",
      "parents": [
        "b8c7f1dc5ca4e0d10709182233cdab932cef593d",
        "57c0c15b5244320065374ad2c54f4fbec77a6428"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:15:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:15:07 2009 -0700"
      },
      "message": "Merge branch \u0027perfcounters-rename-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perfcounters-rename-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Tidy up after the big rename\n  perf: Do the big rename: Performance Counters -\u003e Performance Events\n  perf_counter: Rename \u0027event\u0027 to event_id/hw_event\n  perf_counter: Rename list_entry -\u003e group_entry, counter_list -\u003e group_list\n\nManually resolved some fairly trivial conflicts with the tracing tree in\ninclude/trace/ftrace.h and kernel/trace/trace_syscalls.c.\n"
    },
    {
      "commit": "b8c7f1dc5ca4e0d10709182233cdab932cef593d",
      "tree": "28c5f79d61ce7167511f18eaed5c9fca87c68ab4",
      "parents": [
        "f4eccb6d979e0cc5a719a50af5f9a56e79092a2d",
        "a71fca58b7f4abca551ae2256ac08dd9123a03f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:06:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:06:52 2009 -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  rcu: Fix whitespace inconsistencies\n  rcu: Fix thinko, actually initialize full tree\n  rcu: Apply results of code inspection of kernel/rcutree_plugin.h\n  rcu: Add WARN_ON_ONCE() consistency checks covering state transitions\n  rcu: Fix synchronize_rcu() for TREE_PREEMPT_RCU\n  rcu: Simplify rcu_read_unlock_special() quiescent-state accounting\n  rcu: Add debug checks to TREE_PREEMPT_RCU for premature grace periods\n  rcu: Kconfig help needs to say that TREE_PREEMPT_RCU scales down\n  rcutorture: Occasionally delay readers enough to make RCU force_quiescent_state\n  rcu: Initialize multi-level RCU grace periods holding locks\n  rcu: Need to update rnp-\u003egpnum if preemptable RCU is to be reliable\n"
    },
    {
      "commit": "cdd6c482c9ff9c55475ee7392ec8f672eddb7be6",
      "tree": "81f98a3ab46c589792057fe2392c1e10f8ad7893",
      "parents": [
        "dfc65094d0313cc48969fa60bcf33d693aeb05a7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 12:02:48 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 14:28:04 2009 +0200"
      },
      "message": "perf: Do the big rename: Performance Counters -\u003e Performance Events\n\nBye-bye Performance Counters, welcome Performance Events!\n\nIn the past few months the perfcounters subsystem has grown out its\ninitial role of counting hardware events, and has become (and is\nbecoming) a much broader generic event enumeration, reporting, logging,\nmonitoring, analysis facility.\n\nNaming its core object \u0027perf_counter\u0027 and naming the subsystem\n\u0027perfcounters\u0027 has become more and more of a misnomer. With pending\ncode like hw-breakpoints support the \u0027counter\u0027 name is less and\nless appropriate.\n\nAll in one, we\u0027ve decided to rename the subsystem to \u0027performance\nevents\u0027 and to propagate this rename through all fields, variables\nand API names. (in an ABI compatible fashion)\n\nThe word \u0027event\u0027 is also a bit shorter than \u0027counter\u0027 - which makes\nit slightly more convenient to write/handle as well.\n\nThanks goes to Stephane Eranian who first observed this misnomer and\nsuggested a rename.\n\nUser-space tooling and ABI compatibility is not affected - this patch\nshould be function-invariant. (Also, defconfigs were not touched to\nkeep the size down.)\n\nThis patch has been generated via the following script:\n\n  FILES\u003d$(find * -type f | grep -vE \u0027oprofile|[^K]config\u0027)\n\n  sed -i \\\n    -e \u0027s/PERF_EVENT_/PERF_RECORD_/g\u0027 \\\n    -e \u0027s/PERF_COUNTER/PERF_EVENT/g\u0027 \\\n    -e \u0027s/perf_counter/perf_event/g\u0027 \\\n    -e \u0027s/nb_counters/nb_events/g\u0027 \\\n    -e \u0027s/swcounter/swevent/g\u0027 \\\n    -e \u0027s/tpcounter_event/tp_event/g\u0027 \\\n    $FILES\n\n  for N in $(find . -name perf_counter.[ch]); do\n    M\u003d$(echo $N | sed \u0027s/perf_counter/perf_event/g\u0027)\n    mv $N $M\n  done\n\n  FILES\u003d$(find . -name perf_event.*)\n\n  sed -i \\\n    -e \u0027s/COUNTER_MASK/REG_MASK/g\u0027 \\\n    -e \u0027s/COUNTER/EVENT/g\u0027 \\\n    -e \u0027s/\\\u003cevent\\\u003e/event_id/g\u0027 \\\n    -e \u0027s/counter/event/g\u0027 \\\n    -e \u0027s/Counter/Event/g\u0027 \\\n    $FILES\n\n... to keep it as correct as possible. This script can also be\nused by anyone who has pending perfcounters patches - it converts\na Linux kernel tree over to the new naming. We tried to time this\nchange to the point in time where the amount of pending patches\nis the smallest: the end of the merge window.\n\nNamespace clashes were fixed up in a preparatory patch - and some\nstylistic fallout will be fixed up in a subsequent patch.\n\n( NOTE: \u0027counters\u0027 are still the proper terminology when we deal\n  with hardware registers - and these sed scripts are a bit\n  over-eager in renaming them. I\u0027ve undone some of that, but\n  in case there\u0027s something left where \u0027counter\u0027 would be\n  better than \u0027event\u0027 we can undo that on an individual basis\n  instead of touching an otherwise nicely automated patch. )\n\nSuggested-by: Stephane Eranian \u003ceranian@google.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nReviewed-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1",
      "tree": "54c0c8dc201122483bdd7e8975103b07f6afd34b",
      "parents": [
        "cb5fd13f1178dee4302646b2890d884c380160e1"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Mon Sep 21 01:31:53 2009 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 09:53:55 2009 +0200"
      },
      "message": "sched: Simplify sys_sched_rr_get_interval() system call\n\nBy removing the need for it to know details of scheduling classes.\n\nThis allows PlugSched to define orthogonal scheduling classes.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c06d1b89ee15a0eef82d7.1253496713@mudlark.pw.nest\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "89f19f04dc72363d912fd007a399cb10310eff6e",
      "tree": "daa64e5de98a668eed4a2ceeb6ca95c478be4053",
      "parents": [
        "3f04e8cd5b24727a2500f8ab8f3de730ba47b02c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sat Sep 19 11:55:44 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 20 20:00:32 2009 +0200"
      },
      "message": "sched: Fix raciness in runqueue_is_locked()\n\nrunqueue_is_locked() is unavoidably racy due to a poor interface design.\nIt does\n\n\tcpu \u003d get_cpu()\n\tret \u003d some_perpcu_thing(cpu);\n\tput_cpu(cpu);\n\treturn ret;\n\nIts return value is unreliable.\n\nFix.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c200909191855.n8JItiko022148@imap1.linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c3422bea5f09b0e85704f51f2b01271630b8940b",
      "tree": "fc4a18241b0f7f5d71211f6787428197769cb9f5",
      "parents": [
        "b0e165c035b13e1074fa0b555318bd9cb7102558"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 13 09:15:10 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 00:06:33 2009 +0200"
      },
      "message": "rcu: Simplify rcu_read_unlock_special() quiescent-state accounting\n\nThe earlier approach required two scheduling-clock ticks to note an\npreemptable-RCU quiescent state in the situation in which the\nscheduling-clock interrupt is unlucky enough to always interrupt an\nRCU read-side critical section.\n\nWith this change, the quiescent state is instead noted by the\noutermost rcu_read_unlock() immediately following the first\nscheduling-clock tick, or, alternatively, by the first subsequent\ncontext switch.  Therefore, this change also speeds up grace\nperiods.\n\nSuggested-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nLKML-Reference: \u003c12528585111945-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad4b78bbcbab66998b05d422ac6106b645796e54",
      "tree": "45f3561f4bd6b886948a3b0eea64edab9bab9eda",
      "parents": [
        "eb24073bc1fe3e569a855cf38d529fb650c35524"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Sep 16 12:31:31 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 17 10:17:25 2009 +0200"
      },
      "message": "sched: Add new wakeup preemption mode: WAKEUP_RUNNING\n\nCreate a new wakeup preemption mode, preempt towards tasks that run\nshorter on avg. It sets next buddy to be sure we actually run the task\nwe preempted for.\n\nTest results:\n\n root@twins:~# while :; do :; done \u0026\n [1] 6537\n root@twins:~# while :; do :; done \u0026\n [2] 6538\n root@twins:~# while :; do :; done \u0026\n [3] 6539\n root@twins:~# while :; do :; done \u0026\n [4] 6540\n\n root@twins:/home/peter# ./latt -c4 sleep 4\n Entries: 48 (clients\u003d4)\n\n Averages:\n ------------------------------\n        Max          4750 usec\n        Avg           497 usec\n        Stdev         737 usec\n\n root@twins:/home/peter# echo WAKEUP_RUNNING \u003e /debug/sched_features\n\n root@twins:/home/peter# ./latt -c4 sleep 4\n Entries: 48 (clients\u003d4)\n\n Averages:\n ------------------------------\n        Max            14 usec\n        Avg             5 usec\n        Stdev           3 usec\n\nDisabled by default - needs more testing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003cnew-submission\u003e\n"
    },
    {
      "commit": "4db96cf077aa938b11fe7ac79ecc9b29ec00fbab",
      "tree": "ec196e85769159f29952e34305795b47513639a0",
      "parents": [
        "6746aff74da293b5fd24e5c68b870b721e86cd5f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:14 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:14 2009 +0200"
      },
      "message": "HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n\nThis allows processes to override their early/late kill\nbehaviour on hardware memory errors.\n\nTypically applications which are memory error aware is\nbetter of with early kill (see the error as soon\nas possible), all others with late kill (only\nsee the error when the error is really impacting execution)\n\nThere\u0027s a global sysctl, but this way an application\ncan set its specific policy.\n\nWe\u0027re using two bits, one to signify that the process\nstated its intention and that\n\nI also made the prctl future proof by enforcing\nthe unused arguments are 0.\n\nThe state is inherited to children.\n\nNote this makes us officially run out of process flags\non 32bit, but the next patch can easily add another field.\n\nManpage patch will be supplied separately.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "59abf02644c45f1591e1374ee7bb45dc757fcb88",
      "tree": "ce9cb0a4a57873b9d7d75cce4d28308019367192",
      "parents": [
        "e69b0f1b41c0e57bb1e29100b5810a5914efcb45"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 08:28:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 08:42:40 2009 +0200"
      },
      "message": "sched: Add SD_PREFER_LOCAL\n\nAnd turn it on for NUMA and MC domains. This improves\nlocality in balancing decisions by keeping up to\ncapacity amount of tasks local before looking for idle\nCPUs. (and twice the capacity if SD_POWERSAVINGS_BALANCE\nis set.)\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": "a7558e01056f5191ff2ecff53b075dcb9e484188",
      "tree": "1364bbf9273ce353f4f3146aebe567f79b7c8cad",
      "parents": [
        "7d47872146398dbede13223299fe1cb368ebc781"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 20:02:34 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:31 2009 +0200"
      },
      "message": "sched: Add WF_FORK\n\nAvoid the cache buddies from biasing the time distribution away\nfrom fork()ers. Normally the next buddy will be the preferred\nscheduling target, but this makes fork()s prefer to run the new\nchild, whereas we prefer to run the parent, since that will\ngenerate more work.\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": "7d47872146398dbede13223299fe1cb368ebc781",
      "tree": "c472424ecbabdb8136e2b93f49f75af9414f03f3",
      "parents": [
        "0763a660a84220cc3900fd32abdd7ad109e2278d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:55:44 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:30 2009 +0200"
      },
      "message": "sched: Rename sync arguments\n\nIn order to extend the functions to have more than 1 flag (sync),\nrename the argument to flags, and explicitly define a WF_ space for\nindividual flags.\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": "0763a660a84220cc3900fd32abdd7ad109e2278d",
      "tree": "1b745884fb79627e05c026ee5bfb115b1f722db8",
      "parents": [
        "8e6598af3f35629c37249a610cf13e73f70db279"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:37:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:29 2009 +0200"
      },
      "message": "sched: Rename select_task_rq() argument\n\nIn order to be able to rename the sync argument, we need to rename\nthe current flag argument.\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": "47fe38fcff0517e67d395c039d2e26d2de688a60",
      "tree": "ada38f4e1aa644354b9de4c2cb128719e9e64a9e",
      "parents": [
        "5cbc19a983141729d716be17197028434127b376"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 02 13:49:18 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:27 2009 +0200"
      },
      "message": "x86: sched: Provide arch implementations using aperf/mperf\n\nAPERF/MPERF support for cpu_power.\n\nAPERF/MPERF is arch defined to be a relative scale of work capacity\nper logical cpu, this is assumed to include SMT and Turbo mode.\n\nAPERF/MPERF are specified to both reset to 0 when either counter\nwraps, which is highly inconvenient, since that\u0027ll give a blimp\nwhen that happens. The manual specifies writing 0 to the counters\nafter each read, but that\u0027s 1) too expensive, and 2) destroys the\npossibility of sharing these counters with other users, so we live\nwith the blimp - the other existing user does too.\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": "c88d5910890ad35af283344417891344604f0438",
      "tree": "4e2025d569c3e03a7ec5163f0a9bc159114ee14e",
      "parents": [
        "e9c8431185d6c406887190519f6dbdd112641686"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:50:02 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:05 2009 +0200"
      },
      "message": "sched: Merge select_task_rq_fair() and sched_balance_self()\n\nThe problem with wake_idle() is that is doesn\u0027t respect things like\ncpu_power, which means it doesn\u0027t deal well with SMT nor the recent\nRT interaction.\n\nTo cure this, it needs to do what sched_balance_self() does, which\nleads to the possibility of merging select_task_rq_fair() and\nsched_balance_self().\n\nModify sched_balance_self() to:\n\n  - update_shares() when walking up the domain tree,\n    (it only called it for the top domain, but it should\n     have done this anyway), which allows us to remove\n    this ugly bit from try_to_wake_up().\n\n  - do wake_affine() on the smallest domain that contains\n    both this (the waking) and the prev (the wakee) cpu for\n    WAKE invocations.\n\nThen use the top-down balance steps it had to replace wake_idle().\n\nThis leads to the dissapearance of SD_WAKE_BALANCE and\nSD_WAKE_IDLE_FAR, with SD_WAKE_IDLE replaced with SD_BALANCE_WAKE.\n\nSD_WAKE_AFFINE needs SD_BALANCE_WAKE to be effective.\n\nTouch all topology bits to replace the old with new SD flags --\nplatforms might need re-tuning, enabling SD_BALANCE_WAKE\nconditionally on a NUMA distance seems like a good additional\nfeature, magny-core and small nehalem systems would want this\nenabled, systems with slow interconnects would not.\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": "e9c8431185d6c406887190519f6dbdd112641686",
      "tree": "3c502201451df7bbfcd653fee940fcb40bdaaeb6",
      "parents": [
        "5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 15 14:43:03 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:05 2009 +0200"
      },
      "message": "sched: Add TASK_WAKING\n\nWe\u0027re going to want to drop rq-\u003elock in try_to_wake_up() for a\nlonger period of time, however we also want to deal with concurrent\nwaking of the same task, which is currently handled by holding\nrq-\u003elock.\n\nSo introduce a new TASK state, namely TASK_WAKING, which indicates\nsomeone is already waking the task (other wakers will fail p-\u003estate\n\u0026 state).\n\nWe also keep preemption disabled over the whole ttwu().\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": "5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f",
      "tree": "46f987010ca017be945831b76d8ea846f1ba8fc9",
      "parents": [
        "aaee1203ca52b9db799433c33c9bffc33cdf8909"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:42:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:04 2009 +0200"
      },
      "message": "sched: Hook sched_balance_self() into sched_class::select_task_rq()\n\nRather ugly patch to fully place the sched_balance_self() code\ninside the fair class.\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": "774a694f8cd08115d130a290d73c6d8563f26b1b",
      "tree": "2b5f834ac7a149278d2a7e44d7afe69f40ef1431",
      "parents": [
        "4f0ac854167846bd55cd81dbc9a36e03708aa01c",
        "e1f8450854d69f0291882804406ea1bab3ca44b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:23:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:23:18 2009 -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: (64 commits)\n  sched: Fix sched::sched_stat_wait tracepoint field\n  sched: Disable NEW_FAIR_SLEEPERS for now\n  sched: Keep kthreads at default priority\n  sched: Re-tune the scheduler latency defaults to decrease worst-case latencies\n  sched: Turn off child_runs_first\n  sched: Ensure that a child can\u0027t gain time over it\u0027s parent after fork()\n  sched: enable SD_WAKE_IDLE\n  sched: Deal with low-load in wake_affine()\n  sched: Remove short cut from select_task_rq_fair()\n  sched: Turn on SD_BALANCE_NEWIDLE\n  sched: Clean up topology.h\n  sched: Fix dynamic power-balancing crash\n  sched: Remove reciprocal for cpu_power\n  sched: Try to deal with low capacity, fix update_sd_power_savings_stats()\n  sched: Try to deal with low capacity\n  sched: Scale down cpu_power due to RT tasks\n  sched: Implement dynamic cpu_power\n  sched: Add smt_gain\n  sched: Update the cpu_power sum during load-balance\n  sched: Add SD_PREFER_SIBLING\n  ...\n"
    },
    {
      "commit": "eee2775d9924b22643bd89b2e568cc5eed7e8a04",
      "tree": "095ad7851895c5d39596f3ff7ee1e078235a2501",
      "parents": [
        "53e16fbd30005905168d9b75555fdc7e0a2eac58",
        "7db905e636f08ea5bc9825c1f73d77802e8ccad5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:20:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:20:18 2009 -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: (28 commits)\n  rcu: Move end of special early-boot RCU operation earlier\n  rcu: Changes from reviews: avoid casts, fix/add warnings, improve comments\n  rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees\n  rcu: Remove lockdep annotations from RCU\u0027s _notrace() API members\n  rcu: Add #ifdef to suppress __rcu_offline_cpu() warning in !HOTPLUG_CPU builds\n  rcu: Add CPU-offline processing for single-node configurations\n  rcu: Add \"notrace\" to RCU function headers used by ftrace\n  rcu: Remove CONFIG_PREEMPT_RCU\n  rcu: Merge preemptable-RCU functionality into hierarchical RCU\n  rcu: Simplify rcu_pending()/rcu_check_callbacks() API\n  rcu: Use debugfs_remove_recursive() simplify code.\n  rcu: Merge per-RCU-flavor initialization into pre-existing macro\n  rcu: Fix online/offline indication for rcudata.csv trace file\n  rcu: Consolidate sparse and lockdep declarations in include/linux/rcupdate.h\n  rcu: Renamings to increase RCU clarity\n  rcu: Move private definitions from include/linux/rcutree.h to kernel/rcutree.h\n  rcu: Expunge lingering references to CONFIG_CLASSIC_RCU, optimize on !SMP\n  rcu: Delay rcu_barrier() wait until beginning of next CPU-hotunplug operation.\n  rcu: Fix typo in rcu_irq_exit() comment header\n  rcu: Make rcupreempt_trace.c look at offline CPUs\n  ...\n"
    },
    {
      "commit": "2bba22c50b06abe9fd0d23933b1e64d35b419262",
      "tree": "5ac0373fa1d18f043cb27183f9f185ceda598915",
      "parents": [
        "b5d9d734a53e0204aab0089079cbde2a1285a38f"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Sep 09 15:41:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 09 17:30:05 2009 +0200"
      },
      "message": "sched: Turn off child_runs_first\n\nSet child_runs_first default to off.\n\nIt hurts \u0027optimal\u0027 make -j\u003cNR_CPUS\u003e workloads as make jobs\nget preempted by child tasks, reducing parallelism.\n\nNote, this patch might make existing races in user\napplications more prominent than before - so breakages\nmight be bisected to this commit.\n\nChild-runs-first is broken on SMP to begin with, and we\nalready had it off briefly in v2.6.23 so most of the\noffenders ought to be fixed. Would be nice not to revert\nthis commit but fix those apps finally ...\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1252486344.28645.18.camel@marge.simson.net\u003e\n[ made the sysctl independent of CONFIG_SCHED_DEBUG, in case\n  people want to work around broken apps. ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "18a3885fc1ffa92c2212ff0afdf033403d5b0fa0",
      "tree": "e83c640c68d957b793b56e90274aa2f3d0e97655",
      "parents": [
        "d899a789c28ded9c72b57ddb61868d6b8fc23e80"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:56 2009 +0200"
      },
      "message": "sched: Remove reciprocal for cpu_power\n\nIts a source of fail, also, now that cpu_power is dynamical,\nits a waste of time.\n\nbefore:\n\u003cidle\u003e-0   [000]   132.877936: find_busiest_group: avg_load: 0 group_load: 8241 power: 1\n\nafter:\nbash-1689  [001]   137.862151: find_busiest_group: avg_load: 10636288 group_load: 10387 power: 1\n\n[ v2: build fix from From: Andreas Herrmann ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083826.425896304@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e9e9250bc78e7f6342517214c0178a529807964b",
      "tree": "9466a437ccfa93b200f4ee434fe807dd6b5fc050",
      "parents": [
        "ab29230e673c646292c90c8b9d378b9562145af0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:55 2009 +0200"
      },
      "message": "sched: Scale down cpu_power due to RT tasks\n\nKeep an average on the amount of time spend on RT tasks and use\nthat fraction to scale down the cpu_power for regular tasks.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083826.287778431@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a52bfd73589eaf88d9c95ad2c1de0b38a6b27972",
      "tree": "33cee609a46624525abf1643d71d0fbc79e25f87",
      "parents": [
        "cc9fba7d7672fa3ed58d9d9ecb6c45b1351c29a6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:54 2009 +0200"
      },
      "message": "sched: Add smt_gain\n\nThe idea is that multi-threading a core yields more work\ncapacity than a single thread, provide a way to express a\nstatic gain for threads.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083826.073345955@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5d978e0c7e79a7ff842e895c85a86b38c71f1cd",
      "tree": "83502797f31953c66a76ab9cd43d6df999084210",
      "parents": [
        "f93e65c186ab3c05ce2068733ca10e34fd00125e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:53 2009 +0200"
      },
      "message": "sched: Add SD_PREFER_SIBLING\n\nDo the placement thing using SD flags.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083825.897028974@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29e2035bddecce3eb584a8304528b50da8370a24",
      "tree": "13155df7d90a8e287b83a1cd6c0d02c3018212ab",
      "parents": [
        "868489660dabc0c28087cca3dbc1adbbc398c6fe",
        "37d0892c5a94e208cf863e3b7bac014edee4346d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 09:28:52 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 09:29:05 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/rcu\n\nMerge reason: Avoid fuzz in init/main.c and update from rc6 to rc8.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee18d64c1f632043a02e6f5ba5e045bb26a5465f",
      "tree": "80b5a4d530ec7d5fd69799920f0db7b78aba6b9d",
      "parents": [
        "d0420c83f39f79afb82010c2d2cafd150eef651b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 02 09:14:21 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 02 21:29:22 2009 +1000"
      },
      "message": "KEYS: Add a keyctl to install a process\u0027s session keyring on its parent [try #6]\n\nAdd a keyctl to install a process\u0027s session keyring onto its parent.  This\nreplaces the parent\u0027s session keyring.  Because the COW credential code does\nnot permit one process to change another process\u0027s credentials directly, the\nchange is deferred until userspace next starts executing again.  Normally this\nwill be after a wait*() syscall.\n\nTo support this, three new security hooks have been provided:\ncred_alloc_blank() to allocate unset security creds, cred_transfer() to fill in\nthe blank security creds and key_session_to_parent() - which asks the LSM if\nthe process may replace its parent\u0027s session keyring.\n\nThe replacement may only happen if the process has the same ownership details\nas its parent, and the process has LINK permission on the session keyring, and\nthe session keyring is owned by the process, and the LSM permits it.\n\nNote that this requires alteration to each architecture\u0027s notify_resume path.\nThis has been done for all arches barring blackfin, m68k* and xtensa, all of\nwhich need assembly alteration to support TIF_NOTIFY_RESUME.  This allows the\nreplacement to be performed at the point the parent process resumes userspace\nexecution.\n\nThis allows the userspace AFS pioctl emulation to fully emulate newpag() and\nthe VIOCSETTOK and VIOCSETTOK2 pioctls, all of which require the ability to\nalter the parent process\u0027s PAG membership.  However, since kAFS doesn\u0027t use\nPAGs per se, but rather dumps the keys into the session keyring, the session\nkeyring of the parent must be replaced if, for example, VIOCSETTOK is passed\nthe newpag flag.\n\nThis can be tested with the following program:\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cstdlib.h\u003e\n\t#include \u003ckeyutils.h\u003e\n\n\t#define KEYCTL_SESSION_TO_PARENT\t18\n\n\t#define OSERROR(X, S) do { if ((long)(X) \u003d\u003d -1) { perror(S); exit(1); } } while(0)\n\n\tint main(int argc, char **argv)\n\t{\n\t\tkey_serial_t keyring, key;\n\t\tlong ret;\n\n\t\tkeyring \u003d keyctl_join_session_keyring(argv[1]);\n\t\tOSERROR(keyring, \"keyctl_join_session_keyring\");\n\n\t\tkey \u003d add_key(\"user\", \"a\", \"b\", 1, keyring);\n\t\tOSERROR(key, \"add_key\");\n\n\t\tret \u003d keyctl(KEYCTL_SESSION_TO_PARENT);\n\t\tOSERROR(ret, \"KEYCTL_SESSION_TO_PARENT\");\n\n\t\treturn 0;\n\t}\n\nCompiled and linked with -lkeyutils, you should see something like:\n\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: _ses\n\t355907932 --alswrv   4043    -1   \\_ keyring: _uid.4043\n\t[dhowells@andromeda ~]$ /tmp/newpag\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: _ses\n\t1055658746 --alswrv   4043  4043   \\_ user: a\n\t[dhowells@andromeda ~]$ /tmp/newpag hello\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: hello\n\t340417692 --alswrv   4043  4043   \\_ user: a\n\nWhere the test program creates a new session keyring, sticks a user key named\n\u0027a\u0027 into it and then installs it on its parent.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8f0dfc34e9b323a028c2ec41abb7e9de477b7a94",
      "tree": "fa7e44d9ad3eb22517f0724e71f9812f71a16ae2",
      "parents": [
        "f14eff1cc2f418a7c5e23aedc6a1bdca3343b871"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Jul 20 11:26:58 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:44:08 2009 +0200"
      },
      "message": "sched: Provide iowait counters\n\nFor counting how long an application has been waiting for\n(disk) IO, there currently is only the HZ sample driven\ninformation available, while for all other counters in this\nclass, a high resolution version is available via\nCONFIG_SCHEDSTATS.\n\nIn order to make an improved bootchart tool possible, we also\nneed a higher resolution version of the iowait time.\n\nThis patch below adds this scheduler statistic to the kernel.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4A64B813.1080506@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f14eff1cc2f418a7c5e23aedc6a1bdca3343b871",
      "tree": "fd8d5f7ed2b2e94eff4007e8da0e9ed205d8d5c9",
      "parents": [
        "84e9dabf6e6a78928c6a1a8ba235c9fb0908d0f8",
        "326ba5010a5429a5a528b268b36a5900d4ab0eba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:20:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:20:35 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.31-rc8\u0027 into sched/core\n\nMerge reason: bump from rc5 to rc8, but also pick up TP_perf_assign()\n              API, a patch will be queued that depends on it.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "868489660dabc0c28087cca3dbc1adbbc398c6fe",
      "tree": "cf991ec94ce29bccfef27213107748810c51a1ca",
      "parents": [
        "dd5d19bafd90d33043a4a14b2e2d98612caa293c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 27 15:00:12 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 29 15:34:40 2009 +0200"
      },
      "message": "rcu: Changes from reviews: avoid casts, fix/add warnings, improve comments\n\nChanges suggested by review comments from Josh Triplett and\nMathieu Desnoyers.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c20090827220012.GA30525@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd5d19bafd90d33043a4a14b2e2d98612caa293c",
      "tree": "c21d547124d277f00332bdb01c75f2f4f321de8c",
      "parents": [
        "06e799764eb7c2e4640888d438c3524d756613e1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 27 14:58:16 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 29 15:34:39 2009 +0200"
      },
      "message": "rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees\n\nWhen offlining CPUs from a multi-level tree, there is the\npossibility of offlining the last CPU from a given node when\nthere are preempted RCU read-side critical sections that\nstarted life on one of the CPUs on that node.\n\nIn this case, the corresponding tasks will be enqueued via the\ntask_struct\u0027s rcu_node_entry list_head onto one of the\nrcu_node\u0027s blocked_tasks[] lists.  These tasks need to be moved\nsomewhere else so that they will prevent the current grace\nperiod from ending. That somewhere is the root rcu_node.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c20090827215816.GA30472@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "6b3ef48adf847f7adf11c870e3ffacac150f1564"
}
