)]}'
{
  "log": [
    {
      "commit": "64ca9004b819ab87648dbfc78f3ef49ee491343e",
      "tree": "9b5daef5280800a0006343a17f63072658d91a1d",
      "parents": [
        "708e9a794cf8822b760edaccd9053edb07c34d19"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:05:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:11 2006 -0800"
      },
      "message": "[PATCH] Make vm86 support optional\n\nThis adds an option to remove vm86 support under CONFIG_EMBEDDED.  Saves\nabout 5k.\n\nThis version eliminates most of the #ifdefs of the previous version and\ninstead uses function stubs in vm86.h.  Also, release_vm86_irqs is moved\nfrom asm-i386/irq.h to a more appropriate home in vm86.h so that the stubs\ncan live together.\n\n$ size vmlinux-baseline vmlinux-novm86\n   text    data     bss     dec     hex filename\n2920821  523232  190652 3634705  377611 vmlinux-baseline\n2916268  523100  190492 3629860  376324 vmlinux-novm86\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e585e47031751f4e393e10ffd922885508b958dd",
      "tree": "08a641dab000aacb25c6b7331c32271e4109535f",
      "parents": [
        "22c4e3084eb8b88288a622a57d8b35c450a439f2"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:05:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:11 2006 -0800"
      },
      "message": "[PATCH] tiny: Make *[ug]id16 support optional\n\nConfigurable 16-bit UID and friends support\n\nThis allows turning off the legacy 16 bit UID interfaces on embedded platforms.\n\n   text    data     bss     dec     hex filename\n3330172  529036  190556 4049764  3dcb64 vmlinux-baseline\n3328268  529040  190556 4047864  3dc3f8 vmlinux\n\nFrom: Adrian Bunk \u003cbunk@stusta.de\u003e\n\n    UID16 was accidentially disabled for !EMBEDDED.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f59cc4a35dbbc45c972daad0f1b063380cd9ea4",
      "tree": "03cb2e69303e2ea3cca0f7eca6c7eb6c5a352e40",
      "parents": [
        "86f91d36c2aac910b7cf7e5d047019b10a9a627e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:05:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:09 2006 -0800"
      },
      "message": "[PATCH] simplify k_getrusage()\n\nFactor out common code for different RUSAGE_xxx cases.\n\nDon\u0027t take -\u003esighand-\u003esiglock in RUSAGE_SELF case, suggested by Ravikiran G\nThirumalai \u003ckiran@scalex86.org\u003e.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f756d5e256059018d753f0ba79980ebeb87a1bc0",
      "tree": "e96ae0117aaf6dea19dad88079c3229f679c1948",
      "parents": [
        "945f390f02ce44a13aefc6d9449c99f33c9286a5"
      ],
      "author": {
        "name": "Nathan Lynch",
        "email": "ntl@pobox.com",
        "time": "Sun Jan 08 01:05:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:08 2006 -0800"
      },
      "message": "[PATCH] fix workqueue oops during cpu offline\n\nUse first_cpu(cpu_possible_map) for the single-thread workqueue case.  We\nused to hardcode 0, but that broke on systems where !cpu_possible(0) when\nworkqueue_struct-\u003ecpu_workqueue_struct was changed from a static array to\nalloc_percpu.\n\nCommit id bce61dd49d6ba7799be2de17c772e4c701558f14 (\"Fix hardcoded cpu\u003d0 in\nworkqueue for per_cpu_ptr() calls\") fixed that for Ben\u0027s funky sparc64\nsystem, but it regressed my Power5.  Offlining cpu 0 oopses upon the next\ncall to queue_work for a single-thread workqueue, because now we try to\nmanipulate per_cpu_ptr(wq-\u003ecpu_wq, 1), which is uninitialized.\n\nSo we need to establish an unchanging \"slot\" for single-thread workqueues\nwhich will have a valid percpu allocation.  Since alloc_percpu keys off of\ncpu_possible_map, which must not change after initialization, make this\nslot \u003d\u003d first_cpu(cpu_possible_map).\n\nSigned-off-by: Nathan Lynch \u003cntl@pobox.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eb46996f90a0826921f1a0d81535537a9c7f91b0",
      "tree": "9c9abe4c1e3ea2bf07b97d3ec6603eec94da69fa",
      "parents": [
        "349aef0bc4c7f07d685c977e12d0e2d0b5d0e6db"
      ],
      "author": {
        "name": "Ashutosh Naik",
        "email": "ashutosh.naik@gmail.com",
        "time": "Sun Jan 08 01:04:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:04 2006 -0800"
      },
      "message": "[PATCH] kernel/module.c: remove redundant spinlock in resolve_symbol()\n\nRemove the redundant spinlock in the function resolve_symbol() as we are\nnot altering the module list, and we already hold the semaphore.\n\nSigned-off-by: Ashutosh Naik \u003cashutosh.naik@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb1697933a03ec47d794b38e2a4e3ccc2463fd22",
      "tree": "51612c8b20a338856aef323ea23ab7746cf0283c",
      "parents": [
        "eea8b54dc0dceb740da697a89c54d20dde340306"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Sun Jan 08 01:04:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:03 2006 -0800"
      },
      "message": "[PATCH] modules: mark TAINT_FORCED_RMMOD correctly\n\nCurrently TAINT_FORCED_RMMOD is totally unused.  Because it is marked as\nTAINT_FORCED_MODULE instead when user forced a module unload.  This patch\nmarks it correctly\n\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eea8b54dc0dceb740da697a89c54d20dde340306",
      "tree": "c5f42385a174aa38aeb251eec361557a2b31d047",
      "parents": [
        "b368fae6abaa1736b8f26128c32947d47237b8e5"
      ],
      "author": {
        "name": "Ashutosh Naik",
        "email": "ashutosh.naik@gmail.com",
        "time": "Sun Jan 08 01:04:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:03 2006 -0800"
      },
      "message": "[PATCH] modules: prevent overriding of symbols\n\nEnsure that an exported symbol does not already exist in the kernel or in\nsome other module\u0027s exported symbol table.  This is done by checking the\nsymbol tables for the exported symbol at the time of loading the module.\nCurrently this is done after the relocation of the symbol.\n\nSigned-off-by: Ashutosh Naik \u003cashutosh.naik@gmail.com\u003e\nSigned-off-by: Anand Krishnan \u003canandhkrishnan@yahoo.co.in\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fe7d37d1fbf8ffe78abd72728b24fb0c64f7af55",
      "tree": "274d82b06d2a711e84381b1357c6332077181d27",
      "parents": [
        "ddc0f846aa7621940b74cee0c91cd26405058a4d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:04:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:01 2006 -0800"
      },
      "message": "[PATCH] copy_process: error path cleanup\n\nThis patch moves \u0027fork_out:\u0027 under \u0027bad_fork_free:\u0027, and removes now\nunneeded \u0027if (retval)\u0027 check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7dd795e913656c390b6bde27790c518973feea1",
      "tree": "d3e61e8e19018b94e80d2a332fa0b9e304007365",
      "parents": [
        "e19f247a3dbd85485ec13174817ae9c2478fe541"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:03:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:01 2006 -0800"
      },
      "message": "[PATCH] setpgid: should not accept ptraced childs\n\nsys_setpgid() allows to change -\u003epgrp of ptraced childs.\n\n\u0027man setpgid\u0027 does not tell anything about that, so I consider\nthis behaviour is a bug.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Oren Laadan \u003corenl@cs.columbia.edu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e19f247a3dbd85485ec13174817ae9c2478fe541",
      "tree": "1d6f6fa28d70d51d1ce71264b07ec1afd768e9a6",
      "parents": [
        "ee0acf90d320c29916ba8c5c1b2e908d81f5057d"
      ],
      "author": {
        "name": "Oren Laadan",
        "email": "orenl@cs.columbia.edu",
        "time": "Sun Jan 08 01:03:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:01 2006 -0800"
      },
      "message": "[PATCH] setpgid: should work for sub-threads\n\nsetsid() does not work unless the calling process is a\nthread_group_leader().\n\n\u0027man setpgid\u0027 does not tell anything about that, so I consider this\nbehaviour is a bug.\n\nSigned-off-by: Oren Laadan \u003corenl@cs.columbia.edu\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ee0acf90d320c29916ba8c5c1b2e908d81f5057d",
      "tree": "def952e2e3ebf2b5ba10585055f12ef0cbed17f2",
      "parents": [
        "9a5d3023e626a0baf86ac6b892c983b3db13f22b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:03:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:01 2006 -0800"
      },
      "message": "[PATCH] setpgid: should work for sub-threads\n\nsetpgid(0, pgid) or setpgid(forked_child_pid, pgid) does not work unless\nthe calling process is a thread_group_leader().\n\n\u0027man setpgid\u0027 does not tell anything about that, so I consider this\nbehaviour is a bug.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Oren Laadan \u003corenl@cs.columbia.edu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a5d3023e626a0baf86ac6b892c983b3db13f22b",
      "tree": "41d1be6513fc3a5367414654eeaf11bbb12d4814",
      "parents": [
        "fb86a35b9ded8a7e53a432cbf28df603cdd4849c"
      ],
      "author": {
        "name": "Oren Laadan",
        "email": "orenl@cs.columbia.edu",
        "time": "Sun Jan 08 01:03:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:00 2006 -0800"
      },
      "message": "[PATCH] fork: fix race in setting child\u0027s pgrp and tty\n\nIn fork, child should recopy parent\u0027s pgrp/tty after it has tasklist_lock.\nOtherwise following a setpgid() on the parent, *after* copy_signal(), the\nchild will own a stale pgrp (which may be reused); (eg.  if copy_mm()\nsleeps a long while due to memory pressure).  Similar issue for the tty.\n\nSigned-off-by: Oren Laadan \u003corenl@cs.columbia.edu\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5e38291d80086f6972f471c7caffa03184de0bf0",
      "tree": "563a6aaac4f8c15f448080a3cec738821fa14a0b",
      "parents": [
        "87ba81dba431232548ce29d5d224115d0c2355ac"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Jan 08 01:03:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:00 2006 -0800"
      },
      "message": "[PATCH] Don\u0027t attempt to power off if power off is not implemented\n\nThe problem.  It is expected that /sbin/halt -p works exactly like\n/sbin/halt, when the kernel does not implement power off functionality.\n\nThe kernel can do a lot of work in the reboot notifiers and in\ndevice_shutdown before we even get to machine_power_off.  Some of that\nshutdown is not safe if you are leaving the power on, and it definitely\ngets in the way of using sysrq or pressing ctrl-alt-del.  Since the\nshutdown happens in generic code there is no way to fix this in\narchitecture specific code :(\n\nSome machines are kernel oopsing today because of this.\n\nThe simple solution is to turn LINUX_REBOOT_CMD_POWER_OFF into\nLINUX_REBOOT_CMD_HALT if power_off functionality is not implemented.\n\nThis has the unfortunate side effect of disabling the power off\nfunctionality on architectures that leave pm_power_off to null and still\nimplement something in machine_power_off.  And it will break the build on\nsome architectures that don\u0027t have a pm_power_off variable at all.\n\nOn both counts I say tough.\n\nFor architectures like alpha that don\u0027t implement the pm_power_off variable\npm_power_off is declared in linux/pm.h and it is a generic part of our\npower management code, and all architectures should implement it.\n\nFor architectures like parisc that have a default power off method in\nmachine_power_off if pm_power_off is not implemented or fails.  It is easy\nenough to set the pm_power_off variable.  And nothing bad happens there,\nthe machines just stop powering off.\n\nThe current semantics are impossible without a flag at the top level so we\ncan avoid the problem code if a power off is not implemented.  pm_power_off\nis as good a flag as any with the bonus that it works without modification\non at least x86, x86_64, powerpc, and ppc today.\n\nAndrew can you pick this up and put this in the mm tree.  Kernels that\ndon\u0027t compile or don\u0027t power off seem saner than kernels that oops or\npanic.  Until we get the arch specific patches for the problem\narchitectures this probably isn\u0027t smart to push into the stable kernel.\nUnfortunately I don\u0027t have the time at the moment to walk through every\narchitecture and make them work.  And even if I did I couldn\u0027t test it :(\n\nFrom: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\n\n    Add pm_power_off() for build fix of arch/m32r/kernel/process.c.\n\nFrom: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\n\n    UML build fix\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Hayato Fujiwara \u003cfujiwara@linux-m32r.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d84f520348d77e61f936227a048403dbc349fff1",
      "tree": "765dd3cc733b4149222d4ac9cf746f54cf557fdd",
      "parents": [
        "9841d61d75da5e46ed7a978bed4f50c78b1d87fd"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Sun Jan 08 01:03:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:59 2006 -0800"
      },
      "message": "[PATCH] Extend RCU torture module to test tickless idle CPU\n\nThis patch forces RCU torture threads off various CPUs in the system\nallowing them to become idle and go tickless.  Meant to test support for\nsuch tickless idle CPU in RCU.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9841d61d75da5e46ed7a978bed4f50c78b1d87fd",
      "tree": "fae0f4af69456d6c70ac1ea9c91e0cfc6544d5e2",
      "parents": [
        "f867bac65419a98c9682f4409e087582d29ec5f6"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jan 08 01:03:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:59 2006 -0800"
      },
      "message": "[PATCH] Add tainting for proprietary helper modules\n\nKernels that have had Windows drivers loaded into them are undebuggable.\nI\u0027ve wasted a number of hours chasing bugs filed in Fedora bugzilla only to\nfind out much later that the user had used such \u0027helpers\u0027, and their\nproblems were unreproducable without them loaded.\n\nAcked-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5160ee6fc891a9ca114be0e90fa6655647bb64b2",
      "tree": "35d3740a777935582af1b78238f20d2c2971ed55",
      "parents": [
        "21b6bf143d05d77c350d9c6764ae090a877b66ea"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Jan 08 01:03:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:58 2006 -0800"
      },
      "message": "[PATCH] shrink dentry struct\n\nSome long time ago, dentry struct was carefully tuned so that on 32 bits\nUP, sizeof(struct dentry) was exactly 128, ie a power of 2, and a multiple\nof memory cache lines.\n\nThen RCU was added and dentry struct enlarged by two pointers, with nice\nresults for SMP, but not so good on UP, because breaking the above tuning\n(128 + 8 \u003d 136 bytes)\n\nThis patch reverts this unwanted side effect, by using an union (d_u),\nwhere d_rcu and d_child are placed so that these two fields can share their\nmemory needs.\n\nAt the time d_free() is called (and d_rcu is really used), d_child is known\nto be empty and not touched by the dentry freeing.\n\nLockless lookups only access d_name, d_parent, d_lock, d_op, d_flags (so\nthe previous content of d_child is not needed if said dentry was unhashed\nbut still accessed by a CPU because of RCU constraints)\n\nAs dentry cache easily contains millions of entries, a size reduction is\nworth the extra complexity of the ugly C union.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@epoch.ncsc.mil\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "86174cdcb44c095ffd2e3ca69caa56244cf701d5",
      "tree": "37d6cd5e6145fb659f436399268be1e7be950e61",
      "parents": [
        "08efd10edff199f0c992f04052e897a3f2048508"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:03:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:57 2006 -0800"
      },
      "message": "[PATCH] remove unneeded sig-\u003ecurr_target recalculation\n\nThis patch removes unneeded sig-\u003ecurr_target recalculation under \u0027if\n(atomic_dec_and_test(\u0026sig-\u003ecount))\u0027 in __exit_signal().\n\nWhen sig-\u003ecount \u003d\u003d 0 the signal can\u0027t be sent to this task and\nnext_thread(tsk) \u003d\u003d tsk anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "485a6435abc3897934ce0dc530e31db93e9296a6",
      "tree": "9f934146083a4b34eedc9edec37a2ca4783419f0",
      "parents": [
        "bb6f6dbaa48c53525a7a4f9d4df719c3b0b582af"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:03:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:55 2006 -0800"
      },
      "message": "[PATCH] little do_group_exit() cleanup\n\nzap_other_threads() sets SIGNAL_GROUP_EXIT at the very start,\ndo_group_exit() doesn\u0027t need to do it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0811af28ce49fab963e3e6b8abcf8c460f971cd4",
      "tree": "a7a619307a471d713cddb67ef94e3768152fc4bb",
      "parents": [
        "54b21a7992a31d30c9a91f7e0a00ffdb4bd0caee"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:03:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:55 2006 -0800"
      },
      "message": "[PATCH] kill_proc_info_as_uid: don\u0027t use hardcoded constants\n\nUse symbolic names instead of hardcoded constants.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Harald Welte \u003claforge@gnumonks.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "676121fcb66c861804e38d94214fd5670a1ef595",
      "tree": "7b0f9d34efd5e1cb9b6b595aedcd9419942b5055",
      "parents": [
        "9fa37fd1627ec804e57ae0388555719b03b39f20"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@debian.org",
        "time": "Sun Jan 08 01:03:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:54 2006 -0800"
      },
      "message": "[PATCH] Unchecked alloc_percpu() return in __create_workqueue()\n\n__create_workqueue() not checking return of alloc_percpu()\n\nNULL dereference was possible.\n\nSigned-off-by: Ben Collins \u003cbcollins@ubuntu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "71fabd5e4835309b4feca6209122ce56c595c461",
      "tree": "7d9467a4f9678d2271f82d48ec075a316cb1523f",
      "parents": [
        "b5f545c880a2a47947ba2118b2509644ab7a2969"
      ],
      "author": {
        "name": "George Anzinger",
        "email": "george@mvista.com",
        "time": "Sun Jan 08 01:02:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:53 2006 -0800"
      },
      "message": "[PATCH] sigaction should clear all signals on SIG_IGN, not just \u003c 32\n\nWhile rooting aroung in the signal code trying to understand how to fix the\nSIG_IGN ploy (set sig handler to SIG_IGN and flood system with high speed\nrepeating timers) I came across what, I think, is a problem in sigaction()\nin that when processing a SIG_IGN request it flushes signals from 1 to\nSIGRTMIN and leaves the rest.  Attempt to fix this.\n\nSigned-off-by: George Anzinger \u003cgeorge@mvista.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "025510cd20f4c35c3958bea133d96c9bd7c6ef9e",
      "tree": "a1d7946374dc6db660ffbf76a1ae862c629566d1",
      "parents": [
        "2520f14ca85e38f575eed6acc6e586df246abea6"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Sun Jan 08 01:02:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:52 2006 -0800"
      },
      "message": "[PATCH] printk return value: fix it\n\nWhat\u0027s the true meaning of the printk return value?  Should it include the\npriority prefix length of 3?  and what about the timing information?  In\nboth cases it was broken:\n\nstrace -e write echo 1 \u003e /dev/kmsg\n\u003d\u003e write(1, \"1\\n\", 2)                      \u003d 5\nstrace -e write echo \"\u003c1\u003e1\" \u003e /dev/kmsg\n\u003d\u003e write(1, \"\u003c1\u003e1\\n\", 5)                   \u003d 8\n\nThe returned length was \"length of input string + 3\", I made it \"length\nof string output to the log buffer\".\n\nNote that I couldn\u0027t find any printk caller in the kernel interested by its\nreturn value besides kmsg_write.\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nAcked-By: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b9c7ed84837753a436415097063232422e29a35",
      "tree": "6ad59a7bebcec359e08b3a211701781db819450d",
      "parents": [
        "6b34350f490b2c8508717541ec1fd2bbaadded94"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Jan 08 01:02:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:51 2006 -0800"
      },
      "message": "[PATCH] use ptrace_get_task_struct in various places\n\nThe ptrace_get_task_struct() helper that I added as part of the ptrace\nconsolidation is useful in variety of places that currently opencode it.\nSwitch them to the common helpers.\n\nAdd a ptrace_traceme() helper that needs to be explicitly called, and simplify\nthe ptrace_get_task_struct() interface.  We don\u0027t need the request argument\nnow, and we return the task_struct directly, using ERR_PTR() for error\nreturns.  It\u0027s a bit more code in the callers, but we have two sane routines\nthat do one thing well now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "095975da26dba21698582e91e96be10f7417333f",
      "tree": "ce1ffac556d394ef56a18faa97d38f79b07f31e2",
      "parents": [
        "a57004e1afb6ee03c509f1b1ec74a000682ab93b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:02:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:48 2006 -0800"
      },
      "message": "[PATCH] rcu file: use atomic primitives\n\nUse atomic_inc_not_zero for rcu files instead of special case rcuref.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97a41e26124330e41aa10ef88cd1711bc3d17460",
      "tree": "1546db361efaf926c7a970e3ec6044ea8d4b6f4c",
      "parents": [
        "b7b4d7a4666454b40b45a853bd1d296af37a85f0"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Jan 08 01:02:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:48 2006 -0800"
      },
      "message": "[PATCH] kernel/: small cleanups\n\nThis patch contains the following cleanups:\n- make needlessly global functions static\n- every file should include the headers containing the prototypes for\n  it\u0027s global functions\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "03a285f58064b8e0af08383e082e383753d9c33e",
      "tree": "af458f3357d4e2d01dc04d2d41a7dd7d502c4755",
      "parents": [
        "7edc59628b2f5d6516b4677b3b56f5f056e45cd9"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:02:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:45 2006 -0800"
      },
      "message": "[PATCH] cpuset: skip rcu check if task is in root cpuset\n\nFor systems that aren\u0027t using cpusets, but have them CONFIG_CPUSET enabled in\ntheir kernel (eventually this may be most distribution kernels), this patch\nremoves even the minimal rcu_read_lock() from the memory page allocation path.\n\nActually, it removes that rcu call for any task that is in the root cpuset\n(top_cpuset), which on systems not actively using cpusets, is all tasks.\n\nWe don\u0027t need the rcu check for tasks in the top_cpuset, because the\ntop_cpuset is statically allocated, so at no risk of being freed out from\nunderneath us.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7edc59628b2f5d6516b4677b3b56f5f056e45cd9",
      "tree": "cc0f07bc07156c6f805a72c39ae2d5655a97fede",
      "parents": [
        "6b9c2603ce07f70de9c7a8d335ecd028e8ff11f3"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:02:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:45 2006 -0800"
      },
      "message": "[PATCH] cpuset: mark number_of_cpusets read_mostly\n\nMark cpuset global \u0027number_of_cpusets\u0027 as __read_mostly.\n\nThis global is accessed everytime a zone is considered in the zonelist loops\nbeneath __alloc_pages, looking for a free memory page.  If number_of_cpusets\nis just one, then we can short circuit the mems_allowed check.\n\nSince this global is read alot on a hot path, and written rarely, it is an\nexcellent candidate for __read_mostly.\n\nThanks to Christoph Lameter for the suggestion.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b9c2603ce07f70de9c7a8d335ecd028e8ff11f3",
      "tree": "38b009da71a1f93bbda8621c7d2721c18913260d",
      "parents": [
        "c417f0242ebe578924a30d4e53d35b5059fed4e7"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:02:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:45 2006 -0800"
      },
      "message": "[PATCH] cpuset: use rcu directly optimization\n\nOptimize the cpuset impact on page allocation, the most performance critical\ncpuset hook in the kernel.\n\nOn each page allocation, the cpuset hook needs to check for a possible change\nin the current tasks cpuset.  It can now handle the common case, of no change,\nwithout taking any spinlock or semaphore, thanks to RCU.\n\nConvert a spinlock on the current task to an rcu_read_lock(), saving\napproximately a memory barrier and an atomic op, depending on architecture.\n\nThis is done by adding rcu_assign_pointer() and synchronize_rcu() calls to the\nwrite side of the task-\u003ecpuset pointer, in cpuset.c:attach_task(), to delay\nfreeing up a detached cpuset until after any critical sections referencing\nthat pointer.\n\nThanks to Andi Kleen, Nick Piggin and Eric Dumazet for ideas.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c417f0242ebe578924a30d4e53d35b5059fed4e7",
      "tree": "3058c7c79aedb11e7013f5faca34eb07e9a761bd",
      "parents": [
        "04c19fa6f16047abff2288ddbc1f0798ede5a849"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:02:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: remove test for null cpuset from alloc code path\n\nRemove a couple of more lines of code from the cpuset hooks in the page\nallocation code path.\n\nThere was a check for a NULL cpuset pointer in the routine\ncpuset_update_task_memory_state() that was only needed during system boot,\nafter the memory subsystem was initialized, before the cpuset subsystem was\ninitialized, to catch a NULL task-\u003ecpuset pointer.\n\nAdd a cpuset_init_early() routine, just before the mem_init() call in\ninit/main.c, that sets up just enough of the init tasks cpuset structure to\nrender cpuset_update_task_memory_state() calls harmless.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "04c19fa6f16047abff2288ddbc1f0798ede5a849",
      "tree": "4c4f109d919042b300ac907a8fde64b822faa7aa",
      "parents": [
        "4225399a66b315d4d1fb1cb61b75dda201c832e3"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:02:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: migrate all tasks in cpuset at once\n\nGiven the mechanism in the previous patch to handle rebinding the per-vma\nmempolicies of all tasks in a cpuset that changes its memory placement, it is\nnow easier to handle the page migration requirements of such tasks at the same\ntime.\n\nThe previous code didn\u0027t actually attempt to migrate the pages of the tasks in\na cpuset whose memory placement changed until the next time each such task\ntried to allocate memory.  This was undesirable, as users invoking memory page\nmigration exected to happen when the placement changed, not some unspecified\ntime later when the task needed more memory.\n\nIt is now trivial to handle the page migration at the same time as the per-vma\nrebinding is done.\n\nThe routine cpuset.c:update_nodemask(), which handles changing a cpusets\nmemory placement (\u0027mems\u0027) now checks for the special case of being asked to\nwrite a placement that is the same as before.  It was harmless enough before\nto just recompute everything again, even though nothing had changed.  But page\nmigration is a heavy weight operation - moving pages about.  So now it is\nworth avoiding that if asked to move a cpuset to its current location.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4225399a66b315d4d1fb1cb61b75dda201c832e3",
      "tree": "c8bd976bc6590c5fe859c6129abb93072d99cfa8",
      "parents": [
        "202f72d5d1b5c2c084f63ef996c736d208b447b5"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: rebind vma mempolicies fix\n\nFix more of longstanding bug in cpuset/mempolicy interaction.\n\nNUMA mempolicies (mm/mempolicy.c) are constrained by the current tasks cpuset\nto just the Memory Nodes allowed by that cpuset.  The kernel maintains\ninternal state for each mempolicy, tracking what nodes are used for the\nMPOL_INTERLEAVE, MPOL_BIND or MPOL_PREFERRED policies.\n\nWhen a tasks cpuset memory placement changes, whether because the cpuset\nchanged, or because the task was attached to a different cpuset, then the\ntasks mempolicies have to be rebound to the new cpuset placement, so as to\npreserve the cpuset-relative numbering of the nodes in that policy.\n\nAn earlier fix handled such mempolicy rebinding for mempolicies attached to a\ntask.\n\nThis fix rebinds mempolicies attached to vma\u0027s (address ranges in a tasks\naddress space.) Due to the need to hold the task-\u003emm-\u003emmap_sem semaphore while\nupdating vma\u0027s, the rebinding of vma mempolicies has to be done when the\ncpuset memory placement is changed, at which time mmap_sem can be safely\nacquired.  The tasks mempolicy is rebound later, when the task next attempts\nto allocate memory and notices that its task-\u003ecpuset_mems_generation is\nout-of-date with its cpusets mems_generation.\n\nBecause walking the tasklist to find all tasks attached to a changing cpuset\nrequires holding tasklist_lock, a spinlock, one cannot update the vma\u0027s of the\naffected tasks while doing the tasklist scan.  In general, one cannot acquire\na semaphore (which can sleep) while already holding a spinlock (such as\ntasklist_lock).  So a list of mm references has to be built up during the\ntasklist scan, then the tasklist lock dropped, then for each mm, its mmap_sem\nacquired, and the vma\u0027s in that mm rebound.\n\nOnce the tasklist lock is dropped, affected tasks may fork new tasks, before\ntheir mm\u0027s are rebound.  A kernel global \u0027cpuset_being_rebound\u0027 is set to\npoint to the cpuset being rebound (there can only be one; cpuset modifications\nare done under a global \u0027manage_sem\u0027 semaphore), and the mpol_copy code that\nis used to copy a tasks mempolicies during fork catches such forking tasks,\nand ensures their children are also rebound.\n\nWhen a task is moved to a different cpuset, it is easier, as there is only one\ntask involved.  It\u0027s mm-\u003evma\u0027s are scanned, using the same\nmpol_rebind_policy() as used above.\n\nIt may happen that both the mpol_copy hook and the update done via the\ntasklist scan update the same mm twice.  This is ok, as the mempolicies of\neach vma in an mm keep track of what mems_allowed they are relative to, and\nsafely no-op a second request to rebind to the same nodes.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "202f72d5d1b5c2c084f63ef996c736d208b447b5",
      "tree": "f50551f9588f9090fee17130614e17a2dd64c656",
      "parents": [
        "74cb21553f4bf244185b9bec4c26e4e3169ad55e"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: number_of_cpusets optimization\n\nEasy little optimization hack to avoid actually having to call\ncpuset_zone_allowed() and check mems_allowed, in the main page allocation\nroutine, __alloc_pages().  This saves several CPU cycles per page allocation\non systems not using cpusets.\n\nA counter is updated each time a cpuset is created or removed, and whenever\nthere is only one cpuset in the system, it must be the root cpuset, which\ncontains all CPUs and all Memory Nodes.  In that case, when the counter is\none, all allocations are allowed.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74cb21553f4bf244185b9bec4c26e4e3169ad55e",
      "tree": "3f8f13e8dacc8f0876b01f62765a123ce1722b17",
      "parents": [
        "909d75a3b77bdd8baa9429bad3b69a654d2954ce"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: numa_policy_rebind cleanup\n\nCleanup, reorganize and make more robust the mempolicy.c code to rebind\nmempolicies relative to the containing cpuset after a tasks memory placement\nchanges.\n\nThe real motivator for this cleanup patch is to lay more groundwork for the\nupcoming patch to correctly rebind NUMA mempolicies that are attached to vma\u0027s\nafter the containing cpuset memory placement changes.\n\nNUMA mempolicies are constrained by the cpuset their task is a member of.\nWhen either (1) a task is moved to a different cpuset, or (2) the \u0027mems\u0027\nmems_allowed of a cpuset is changed, then the NUMA mempolicies have embedded\nnode numbers (for MPOL_BIND, MPOL_INTERLEAVE and MPOL_PREFERRED) that need to\nbe recalculated, relative to their new cpuset placement.\n\nThe old code used an unreliable method of determining what was the old\nmems_allowed constraining the mempolicy.  It just looked at the tasks\nmems_allowed value.  This sort of worked with the present code, that just\nrebinds the -task- mempolicy, and leaves any -vma- mempolicies broken,\nreferring to the old nodes.  But in an upcoming patch, the vma mempolicies\nwill be rebound as well.  Then the order in which the various task and vma\nmempolicies are updated will no longer be deterministic, and one can no longer\ncount on the task-\u003emems_allowed holding the old value for as long as needed.\nIt\u0027s not even clear if the current code was guaranteed to work reliably for\ntask mempolicies.\n\nSo I added a mems_allowed field to each mempolicy, stating exactly what\nmems_allowed the policy is relative to, and updated synchronously and reliably\nanytime that the mempolicy is rebound.\n\nAlso removed a useless wrapper routine, numa_policy_rebind(), and had its\ncaller, cpuset_update_task_memory_state(), call directly to the rewritten\npolicy_rebind() routine, and made that rebind routine extern instead of\nstatic, and added a \"mpol_\" prefix to its name, making it\nmpol_rebind_policy().\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "909d75a3b77bdd8baa9429bad3b69a654d2954ce",
      "tree": "f9955ff697b7569fc75e5b8683d886315f34ac49",
      "parents": [
        "cf2a473c4089aa41c26f653200673f5a4cc25047"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: implement cpuset_mems_allowed\n\nProvide a cpuset_mems_allowed() method, which the sys_migrate_pages() code\nneeded, to obtain the mems_allowed vector of a cpuset, and replaced the\nworkaround in sys_migrate_pages() to call this new method.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf2a473c4089aa41c26f653200673f5a4cc25047",
      "tree": "0bce21f4684a382b13e93ba5b85409cf5eab1c2c",
      "parents": [
        "b4b2641843db124637fa3d2cb2101982035dcc82"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:43 2006 -0800"
      },
      "message": "[PATCH] cpuset: combine refresh_mems and update_mems\n\nThe important code paths through alloc_pages_current() and alloc_page_vma(),\nby which most kernel page allocations go, both called\ncpuset_update_current_mems_allowed(), which in turn called refresh_mems().\n-Both- of these latter two routines did a tasklock, got the tasks cpuset\npointer, and checked for out of date cpuset-\u003emems_generation.\n\nThat was a silly duplication of code and waste of CPU cycles on an important\ncode path.\n\nConsolidated those two routines into a single routine, called\ncpuset_update_task_memory_state(), since it updates more than just\nmems_allowed.\n\nChanged all callers of either routine to call the new consolidated routine.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b4b2641843db124637fa3d2cb2101982035dcc82",
      "tree": "fe8ed223f2e1828a6d14090711bad1c864aded09",
      "parents": [
        "59dac16fb95f09253b8086134443abeb439703cd"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:43 2006 -0800"
      },
      "message": "[PATCH] cpuset: fork hook fix\n\nFix obscure, never seen in real life, cpuset fork race.  The cpuset_fork()\ncall in fork.c was setting up the correct task-\u003ecpuset pointer after the\ntasklist_lock was dropped, which briefly exposed the newly forked process with\nan unsafe (copied from parent without locks or usage counter increment) cpuset\npointer.\n\nIn theory, that exposed cpuset pointer could have been pointing at a cpuset\nthat was already freed and removed, and in theory another task that had been\nsitting on the tasklist_lock waiting to scan the task list could have raced\ndown the entire tasklist, found our new child at the far end, and dereferenced\nthat bogus cpuset pointer.\n\nTo fix, setup up the correct cpuset pointer in the new child by calling\ncpuset_fork() before the new task is linked into the tasklist, and with that,\nadd a fork failure case, to dereference that cpuset, if the fork fails along\nthe way, after cpuset_fork() was called.\n\nHad to remove a BUG_ON() from cpuset_exit(), because it was no longer valid -\nthe call to cpuset_exit() from a failed fork would not have PF_EXITING set.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "59dac16fb95f09253b8086134443abeb439703cd",
      "tree": "25491bdcff6f980edfed259d7edadeb273a27ee3",
      "parents": [
        "c5b2aff89635495064592dc90da595f8a880ee87"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:43 2006 -0800"
      },
      "message": "[PATCH] cpuset: update_nodemask code reformat\n\nRestructure code layout of the kernel/cpuset.c update_nodemask() routine,\nremoving embedded returns and nested if\u0027s in favor of goto completion labels.\nThis is being done in anticipation of adding more logic to this routine, which\nwill favor the goto style structure.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c5b2aff89635495064592dc90da595f8a880ee87",
      "tree": "2a796593bd675979bbad88ddd4de1a11f120bf62",
      "parents": [
        "90c9cc4043fd8454d11886379f841f70e176698e"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:43 2006 -0800"
      },
      "message": "[PATCH] cpuset: minor spacing initializer fixes\n\nFour trivial cpuset fixes: remove extra spaces, remove useless initializers,\nmark one __read_mostly.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e0d98b9f1eb757fc98efc84e74e54a08308aa73",
      "tree": "7cf1c75994f734ede7ec89373de640c4a58b237a",
      "parents": [
        "5966514db662fb24c9bb43226a80106bcffd51f8"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:42 2006 -0800"
      },
      "message": "[PATCH] cpuset: memory pressure meter\n\nProvide a simple per-cpuset metric of memory pressure, tracking the -rate-\nthat the tasks in a cpuset call try_to_free_pages(), the synchronous\n(direct) memory reclaim code.\n\nThis enables batch managers monitoring jobs running in dedicated cpusets to\nefficiently detect what level of memory pressure that job is causing.\n\nThis is useful both on tightly managed systems running a wide mix of\nsubmitted jobs, which may choose to terminate or reprioritize jobs that are\ntrying to use more memory than allowed on the nodes assigned them, and with\ntightly coupled, long running, massively parallel scientific computing jobs\nthat will dramatically fail to meet required performance goals if they\nstart to use more memory than allowed to them.\n\nThis patch just provides a very economical way for the batch manager to\nmonitor a cpuset for signs of memory pressure.  It\u0027s up to the batch\nmanager or other user code to decide what to do about it and take action.\n\n\u003d\u003d\u003e Unless this feature is enabled by writing \"1\" to the special file\n    /dev/cpuset/memory_pressure_enabled, the hook in the rebalance\n    code of __alloc_pages() for this metric reduces to simply noticing\n    that the cpuset_memory_pressure_enabled flag is zero.  So only\n    systems that enable this feature will compute the metric.\n\nWhy a per-cpuset, running average:\n\n    Because this meter is per-cpuset, rather than per-task or mm, the\n    system load imposed by a batch scheduler monitoring this metric is\n    sharply reduced on large systems, because a scan of the tasklist can be\n    avoided on each set of queries.\n\n    Because this meter is a running average, instead of an accumulating\n    counter, a batch scheduler can detect memory pressure with a single\n    read, instead of having to read and accumulate results for a period of\n    time.\n\n    Because this meter is per-cpuset rather than per-task or mm, the\n    batch scheduler can obtain the key information, memory pressure in a\n    cpuset, with a single read, rather than having to query and accumulate\n    results over all the (dynamically changing) set of tasks in the cpuset.\n\nA per-cpuset simple digital filter (requires a spinlock and 3 words of data\nper-cpuset) is kept, and updated by any task attached to that cpuset, if it\nenters the synchronous (direct) page reclaim code.\n\nA per-cpuset file provides an integer number representing the recent\n(half-life of 10 seconds) rate of direct page reclaims caused by the tasks\nin the cpuset, in units of reclaims attempted per second, times 1000.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5966514db662fb24c9bb43226a80106bcffd51f8",
      "tree": "9c6d8f4f6fee0d6574de7e225141d37b28811dc3",
      "parents": [
        "96b7f34143c2c823a6a750fcb758fc66c44945d2"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:42 2006 -0800"
      },
      "message": "[PATCH] cpuset: mempolicy one more nodemask conversion\n\nFinish converting mm/mempolicy.c from bitmaps to nodemasks.  The previous\nconversion had left one routine using bitmaps, since it involved a\ncorresponding change to kernel/cpuset.c\n\nFix that interface by replacing with a simple macro that calls nodes_subset(),\nor if !CONFIG_CPUSET, returns (1).\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d89c929078588aa9b9c674ef03ee9aa816b59b8",
      "tree": "129971e5c75545c53236be294f521ec6e7021a2d",
      "parents": [
        "e56d090310d7625ecb43a1eeebd479f04affb48b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun Jan 08 01:01:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:40 2006 -0800"
      },
      "message": "[PATCH] Simpler signal-exit concurrency handling\n\nSome simplification in checking signal delivery against concurrent exit.\nInstead of using get_task_struct_rcu(), which increments the task_struct\nreference count, check the reference count after acquiring sighand lock.\n\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e56d090310d7625ecb43a1eeebd479f04affb48b",
      "tree": "2f479215dff4a2d8f3a9ed85200a5bc4f51534be",
      "parents": [
        "4369ef3c3e9d3bd9b879580678778f558d481e90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 08 01:01:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:40 2006 -0800"
      },
      "message": "[PATCH] RCU signal handling\n\nRCU tasklist_lock and RCU signal handling: send signals RCU-read-locked\ninstead of tasklist_lock read-locked.  This is a scalability improvement on\nSMP and a preemption-latency improvement under PREEMPT_RCU.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22fc6eccbf4ce4eb6265e6ada7b50a7b9cc57d05",
      "tree": "3887dc6f1eeb658d773be037971b98d6f5fb3dd7",
      "parents": [
        "6d524aed1f50b2b1d5b4ad5a4e2fe3f38106d0a6"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sun Jan 08 01:01:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:38 2006 -0800"
      },
      "message": "[PATCH] Change maxaligned_in_smp alignemnt macros to internodealigned_in_smp macros\n\n____cacheline_maxaligned_in_smp is currently used to align critical structures\nand avoid false sharing.  It uses per-arch L1_CACHE_SHIFT_MAX and people find\nL1_CACHE_SHIFT_MAX useless.\n\nHowever, we have been using ____cacheline_maxaligned_in_smp to align\nstructures on the internode cacheline size.  As per Andi\u0027s suggestion,\nfollowing patch kills ____cacheline_maxaligned_in_smp and introduces\nINTERNODE_CACHE_SHIFT, which defaults to L1_CACHE_SHIFT for all arches.\nArches needing L3/Internode cacheline alignment can define\nINTERNODE_CACHE_SHIFT in the arch asm/cache.h.  Patch replaces\n____cacheline_maxaligned_in_smp with ____cacheline_internodealigned_in_smp\n\nWith this patch, L1_CACHE_SHIFT_MAX can be killed\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "45b07ef31d1182d2cfde7711327e3afb268bb1ac",
      "tree": "3bf820531f920b43d4ed963643b1f565c82bcaa4",
      "parents": [
        "d0d963281ccb22e6f339bfdd75c6b2e31351929f"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:00:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:43 2006 -0800"
      },
      "message": "[PATCH] cpusets: swap migration interface\n\nAdd a boolean \"memory_migrate\" to each cpuset, represented by a file\ncontaining \"0\" or \"1\" in each directory below /dev/cpuset.\n\nIt defaults to false (file contains \"0\").  It can be set true by writing\n\"1\" to the file.\n\nIf true, then anytime that a task is attached to the cpuset so marked, the\npages of that task will be moved to that cpuset, preserving, to the extent\npractical, the cpuset-relative placement of the pages.\n\nAlso anytime that a cpuset so marked has its memory placement changed (by\nwriting to its \"mems\" file), the tasks in that cpuset will have their pages\nmoved to the cpusets new nodes, preserving, to the extent practical, the\ncpuset-relative placement of the moved pages.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39743889aaf76725152f16aa90ca3c45f6d52da3",
      "tree": "2a6f658d03dbbd9428934c5e030230a4acb6d5e0",
      "parents": [
        "dc9aa5b9d65fd11b1f5246b46ec610ee8b83c6dd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:42 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: sys_migrate_pages interface\n\nsys_migrate_pages implementation using swap based page migration\n\nThis is the original API proposed by Ray Bryant in his posts during the first\nhalf of 2005 on linux-mm@kvack.org and linux-kernel@vger.kernel.org.\n\nThe intent of sys_migrate is to migrate memory of a process.  A process may\nhave migrated to another node.  Memory was allocated optimally for the prior\ncontext.  sys_migrate_pages allows to shift the memory to the new node.\n\nsys_migrate_pages is also useful if the processes available memory nodes have\nchanged through cpuset operations to manually move the processes memory.  Paul\nJackson is working on an automated mechanism that will allow an automatic\nmigration if the cpuset of a process is changed.  However, a user may decide\nto manually control the migration.\n\nThis implementation is put into the policy layer since it uses concepts and\nfunctions that are also needed for mbind and friends.  The patch also provides\na do_migrate_pages function that may be useful for cpusets to automatically\nmove memory.  sys_migrate_pages does not modify policies in contrast to Ray\u0027s\nimplementation.\n\nThe current code here is based on the swap based page migration capability and\nthus is not able to preserve the physical layout relative to it containing\nnodeset (which may be a cpuset).  When direct page migration becomes available\nthen the implementation needs to be changed to do a isomorphic move of pages\nbetween different nodesets.  The current implementation simply evicts all\npages in source nodeset that are not in the target nodeset.\n\nPatch supports ia64, i386 and x86_64.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "15316ba81aee6775d6079fb46c66c801989e7d10",
      "tree": "c6190bdcc6e15fd8b5657a5932313e296b475577",
      "parents": [
        "48db57f8ff10eb09ab887ccb6150b0da0c7be24e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:00:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] add schedule_on_each_cpu()\n\nswap migration\u0027s isolate_lru_page() currently uses an IPI to notify other\nprocessors that the lru caches need to be drained if the page cannot be\nfound on the LRU.  The IPI interrupt may interrupt a processor that is just\nprocessing lru requests and cause a race condition.\n\nThis patch introduces a new function run_on_each_cpu() that uses the\nkeventd() to run the LRU draining on each processor.  Processors disable\npreemption when dealing the LRU caches (these are per processor) and thus\nexecuting LRU draining from another process is safe.\n\nThanks to Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e for finding this race\ncondition.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8ad4b1fb8205340dba16b63467bb23efc27264d6",
      "tree": "9f5c237ead93976e5454c5da5d3bba350a2419c5",
      "parents": [
        "9d0243bca345d5ce25d3f4b74b7facb3a6df1232"
      ],
      "author": {
        "name": "Rohit Seth",
        "email": "rohit.seth@intel.com",
        "time": "Sun Jan 08 01:00:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] Make high and batch sizes of per_cpu_pagelists configurable\n\nAs recently there has been lot of traffic on the right values for batch and\nhigh water marks for per_cpu_pagelists.  This patch makes these two\nvariables configurable through /proc interface.\n\nA new tunable /proc/sys/vm/percpu_pagelist_fraction is added.  This entry\ncontrols the fraction of pages at most in each zone that are allocated for\neach per cpu page list.  The min value for this is 8.  It means that we\ndon\u0027t allow more than 1/8th of pages in each zone to be allocated in any\nsingle per_cpu_pagelist.\n\nThe batch value of each per cpu pagelist is also updated as a result.  It\nis set to pcp-\u003ehigh/4.  The upper limit of batch is (PAGE_SHIFT * 8)\n\nSigned-off-by: Rohit Seth \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9d0243bca345d5ce25d3f4b74b7facb3a6df1232",
      "tree": "a3a0a763bf83a483282dc1c3caab587941a98fc2",
      "parents": [
        "bec6b0c89b234090681a4516e20ac5debe3e7c59"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jan 08 01:00:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] drop-pagecache\n\nAdd /proc/sys/vm/drop_caches.  When written to, this will cause the kernel to\ndiscard as much pagecache and/or reclaimable slab objects as it can.  THis\noperation requires root permissions.\n\nIt won\u0027t drop dirty data, so the user should run `sync\u0027 first.\n\nCaveats:\n\na) Holds inode_lock for exorbitant amounts of time.\n\nb) Needs to be taught about NUMA nodes: propagate these all the way through\n   so the discarding can be controlled on a per-node basis.\n\nThis is a debugging feature: useful for getting consistent results between\nfilesystem benchmarks.  We could possibly put it under a config option, but\nit\u0027s less than 300 bytes.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0aec63e67c69545ca757a73a66f5dcf05fa484bf",
      "tree": "f01b80fd415389506b2a719831dfd6a90c0b258f",
      "parents": [
        "0feb9bfcfa3f9bf67a4a1e3f2608700ad73f92ed"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 06 15:36:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 20:23:04 2006 -0800"
      },
      "message": "[PATCH] Fix posix-cpu-timers sched_time accumulation\n\nI\u0027ve spent the past 3 days digging into a glibc testsuite failure in\ncurrent CVS, specifically libc/rt/tst-cputimer1.c The thr1 and thr2\ntimers fire too early in the second pass of this test.  The second\npass is noteworthy because it makes use of intervals, whereas the\nfirst pass does not.\n\nAll throughout the posix-cpu-timers.c code, the calculation of the\nprocess sched_time sum is implemented roughly as:\n\n\tunsigned long long sum;\n\n\tsum \u003d tsk-\u003esignal-\u003esched_time;\n\tt \u003d tsk;\n\tdo {\n\t\tsum +\u003d t-\u003esched_time;\n\t\tt \u003d next_thread(t);\n\t} while (t !\u003d tsk);\n\nIn fact this is the exact scheme used by check_process_timers().\n\nIn the case of check_process_timers(), current-\u003esched_time has just\nbeen updated (via scheduler_tick(), which is invoked by\nupdate_process_times(), which subsequently invokes\nrun_posix_cpu_timers()) So there is no special processing necessary\nwrt. that.\n\nIn other contexts, we have to allot for the fact that tsk-\u003esched_time\nmight be a bit out of date if we are current.  And the\nposix-cpu-timers.c code uses current_sched_time() to deal with that.\n\nUnfortunately it does so in an erroneous and inconsistent manner in\none spot which is what results in the early timer firing.\n\nIn cpu_clock_sample_group_locked(), it does this:\n\n\t\tcpu-\u003esched \u003d p-\u003esignal-\u003esched_time;\n\t\t/* Add in each other live thread.  */\n\t\twhile ((t \u003d next_thread(t)) !\u003d p) {\n\t\t\tcpu-\u003esched +\u003d t-\u003esched_time;\n\t\t}\n\t\tif (p-\u003etgid \u003d\u003d current-\u003etgid) {\n\t\t\t/*\n\t\t\t * We\u0027re sampling ourselves, so include the\n\t\t\t * cycles not yet banked.  We still omit\n\t\t\t * other threads running on other CPUs,\n\t\t\t * so the total can always be behind as\n\t\t\t * much as max(nthreads-1,ncpus) * (NSEC_PER_SEC/HZ).\n\t\t\t */\n\t\t\tcpu-\u003esched +\u003d current_sched_time(current);\n\t\t} else {\n\t\t\tcpu-\u003esched +\u003d p-\u003esched_time;\n\t\t}\n\nThe problem is the \"p-\u003etgid \u003d\u003d current-\u003etgid\" test.  If \"p\" is\nnot current, and the tgids are the same, we will add the process\nt-\u003esched_time twice into cpu-\u003esched and omit \"p\"\u0027s sched_time\nwhich is very very very wrong.\n\nposix-cpu-timers.c has a helper function, sched_ns(p) which takes care\nof this, so my fix is to use that here instead of this special tgid\ntest.\n\nThe fact that current can be one of the sub-threads of \"p\" points out\nthat we could make things a little bit more accurate, perhaps by using\nsched_ns() on every thread we process in these loops.  It also points\nout that we don\u0027t use the most accurate value for threads in the group\nactively running other cpus (and this is mentioned in the comment).\n\nBut that is a future enhancement, and this fix here definitely makes\nsense.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6fe2e70bbed3995d930f39452fb6ce3be7dc47dc",
      "tree": "b196b26fa0046c39bf072238463329dc66ccca82",
      "parents": [
        "066bb8d03b6e52e4844d37145573d6a2bedaa339"
      ],
      "author": {
        "name": "Jayachandran C",
        "email": "c.jayachandran@gmail.com",
        "time": "Fri Jan 06 00:19:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:59 2006 -0800"
      },
      "message": "[PATCH] kernel/module.c: removed dead code\n\nThis patch fixes an issue reported by Coverity in kernel/module.c\n\nError reported: Cannot reach this line of code \"else return ptr;\"\n\nPatch description:\n  This is the error path, so \u0027err\u0027 will be negative, the else case\n  is not required, this patch removes it.\n\nSigned-off-by: Jayachandran C. \u003cc.jayachandran@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "347a8dc3b815f0c0fa62a1df075184ffe4cbdcf1",
      "tree": "a6ec76690127e87fe6efa42b6238caadd6c07e7b",
      "parents": [
        "9bbc8346fb21fad3f678220b067450e436e45dbf"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Jan 06 00:19:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:53 2006 -0800"
      },
      "message": "[PATCH] s390: cleanup Kconfig\n\nSanitize some s390 Kconfig options.  We have ARCH_S390, ARCH_S390X,\nARCH_S390_31, 64BIT, S390_SUPPORT and COMPAT.  Replace these 6 options by\nS390, 64BIT and COMPAT.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "089545f0c71bab6511395c2a060d7f81a99bad58",
      "tree": "461ec36ccfc7350db49ce97d59894a7672ae170f",
      "parents": [
        "088c4ec16aa6b865dcf690051ddac30eb2bf6bcc"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Jan 06 00:19:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:49 2006 -0800"
      },
      "message": "[PATCH] s390: cputime_t fixes\n\nThere are some more places where the use of cputime_t instead of an integer\ntype and the associated macros is necessary for the virtual cputime accounting\non s390.  Affected are the s390 specific appldata code and BSD process\naccounting.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "277c6e2ad7369558dbd7ffbcc6dcbe16458bf723",
      "tree": "4b45284c5c5c13c41d2723f603ea3645d999ce54",
      "parents": [
        "1adf6c8ea916bc4a2587a881ec7715fece63fb5e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:17:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:43 2006 -0800"
      },
      "message": "[PATCH] swsusp: save image header first\n\nThis makes the swsusp_info structure become the header of the image in the\nliteral sense (ie.  it is saved to the swap and read before any other image\ndata with the help of the swsusp\u0027s swap map structure, so generally it is\ntreated in the same way as the rest of the image).\n\nThe main thing it does is to make swsusp_header contain the offset of the swap\nmap used to track the image data pages rather than the offset of swsusp_info.\n Simultaneously, swsusp_info becomes the first image page written to the swap.\n\nThe other changes are generally consequences of the above with a few\nexceptions (there\u0027s some consolidation in the image reading part as a few\nfunctions turn into trivial wrappers around something else).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1adf6c8ea916bc4a2587a881ec7715fece63fb5e",
      "tree": "0cfeb2d3ea23fbfac3674cf9b7291f80a055aad1",
      "parents": [
        "3a291a20bd6fcfafb2109031f0760a0d3e92ecd7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:17:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:43 2006 -0800"
      },
      "message": "[PATCH] swsusp: improve handling of swap partitions\n\nThis changes the handling of swap partitions by swsusp to avoid locking of the\nswap devices that are not used for suspend and, consequently, simplifies the\ncode.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca0aec0f7a94bf9f07fefa8bfd23282d4e8ceb8a",
      "tree": "5f31f11eba908545d5e02698fe9c163a8612dd26",
      "parents": [
        "b3a93a255ec33a04776ec50efb30b7a99168dda2"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:15:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:42 2006 -0800"
      },
      "message": "[PATCH] swsusp: make image size limit tunable\n\nMake the suspend image size limit tunable via /sys/power/image_size.\n\nIt is necessary for systems on which there is a limited amount of swap\navailable for suspend.  It can also be useful for optimizing performance of\nswsusp on systems with 1 GB of RAM or more.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b3a93a255ec33a04776ec50efb30b7a99168dda2",
      "tree": "9cfd05925ce0548bec68ca1544f25173e2fb177b",
      "parents": [
        "c050ca78705592d440c22055865bf4de40fe2a4c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:15:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:42 2006 -0800"
      },
      "message": "[PATCH] swsusp: limit image size\n\nLimit the size of the suspend image to approx.  500 MB, which should\nimprove the overall performance of swsusp on systems with more than 1 GB of\nRAM.\n\nIt introduces the constant IMAGE_SIZE that can be set to the preferred size\nof the image (in MB) and modifies the memory-shrinking part of swsusp to\ntake this constant into account (500 is the default value of IMAGE_SIZE).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c050ca78705592d440c22055865bf4de40fe2a4c",
      "tree": "41ab01e55c65c09cc5b44880accdff1c5090f220",
      "parents": [
        "45029c3207840edb9c9b795de0145ded1c675fce"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Fri Jan 06 00:15:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:42 2006 -0800"
      },
      "message": "[PATCH] swsusp: Drop duplicate prototypes\n\nThese two prototypes are already present in sched.h, remove duplicate\nversion.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5e2fa7857f6bf46605c77d949fa6698b9b0bc28",
      "tree": "e5d32d980939ce44ee8b60e7f1fd0732760f7607",
      "parents": [
        "72a97e08394a3b2e75481ff680ec2a0591e3cba4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:14:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:40 2006 -0800"
      },
      "message": "[PATCH] swsusp: fix enough_free_mem\n\nThis patch fixes a problem with the function enough_free_mem() used by\nswsusp to verify if there is a sufficient number of memory pages available\nto it to create and save the suspend image.\n\nNamely, enough_free_mem() uses nr_free_pages() to obtain the number of free\nmemory pages, which is incorrect, because this function returns the total\nnumber of free pages, including free highmem pages, and the highmem pages\ncannot be used by swsusp for storing the image data.\n\nThe patch makes enough_free_mem() avoid counting the free highmem\npages as available to swsusp.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72a97e08394a3b2e75481ff680ec2a0591e3cba4",
      "tree": "d8ba72d6e81ad31ed10876386d3d2067921979e3",
      "parents": [
        "7088a5c00103ef48782d6c359cd12b13a10666e6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:13:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:40 2006 -0800"
      },
      "message": "[PATCH] swsusp: improve freeing of memory\n\nThis patch makes swsusp free only as much memory as needed to complete the\nsuspend and not as much as possible.   In the most of cases this should speed\nup the suspend and make the system much more responsive after resume,\nespecially if a GUI (eg.  X Windows) is used.\n\nIf needed, the old behavior (ie to free as much memory as possible during\nsuspend) can be restored by unsetting FAST_FREE in power.h\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7088a5c00103ef48782d6c359cd12b13a10666e6",
      "tree": "b731c8af48e00c0ec88bbe57b6b2a2c1ec20fbde",
      "parents": [
        "f2d97f02961e8b1f8a24befb88ab0e5c886586ff"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:13:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:40 2006 -0800"
      },
      "message": "[PATCH] swsusp: introduce the swap map structure\n\nThis patch introduces the swap map structure that can be used by swsusp for\nkeeping tracks of data pages written to the swap.   The structure itself is\ndescribed in a comment within the patch.\n\nThe overall idea is to reduce the amount of metadata written to the swap and\nto write and read the image pages sequentially, in a file-alike way.  This\nmakes the swap-handling part of swsusp fairly independent of its\nsnapshot-handling part and will hopefully allow us to completely separate\nthese two parts in the future.\n\nThis patch is needed to remove the suspend image size limit imposed by the\nlimited size of the swsusp_info structure, which is essential for x86-64\nsystems with more than 512 MB of RAM.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2d97f02961e8b1f8a24befb88ab0e5c886586ff",
      "tree": "2b8909cf8024413134785cba06df858c0ede4bca",
      "parents": [
        "0595bf3bca9d9932a05b06dd438f40f01d27cd33"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:12:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:40 2006 -0800"
      },
      "message": "[PATCH] swsusp: remove encryption\n\nThis patch removes the image encryption that is only used by swsusp instead of\nzeroing the image after resume in order to prevent someone from reading some\nconfidential data from it in the future and it does not protect the image from\nbeing read by an unauthorized person before resume.  The functionality it\nprovides should really belong to the user space and will possibly be\nreimplemented after the swap-handling functionality of swsusp is moved to the\nuser space.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eee45269b0f5979c70bc151c6c2f4e5f4f5ababe",
      "tree": "a8ed14ee532ea8dabc1010d540542eea1d620540",
      "parents": [
        "1fa744e6e91a895750b9980d13fcfc5791a0cd91"
      ],
      "author": {
        "name": "Ivan Kokshaysky",
        "email": "ink@jurassic.park.msu.ru",
        "time": "Fri Jan 06 00:12:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:40 2006 -0800"
      },
      "message": "[PATCH] Alpha: convert to generic irq framework (generic part)\n\nThanks to Christoph for doing most of the work.\n\nThis allows automatic SMP IRQ affinity assignment other than default \"all\ninterrupts on all CPUs\" which is rather expensive.  This might be useful if\nthe hardware can be programmed to distribute interrupts among different\nCPUs, like Alpha does.\n\nSigned-off-by: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ee1dd3fee22f15728f545d266403fc977e1eb99",
      "tree": "e2f9f42b0731d5006fa329a590069be6787af1de",
      "parents": [
        "5c40f7f373889930d176a515ec375b60a70b5b49"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 06 00:11:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:33 2006 -0800"
      },
      "message": "[PATCH] FRV: Make futex code compilable on nommu [try #2]\n\nMake the futex code compilable and usable on NOMMU by making the attempt to\nhandle page faults conditional on CONFIG_MMU.  If this is not enabled, then\nwe can assume that EFAULT returned from futex_atomic_op_inuser() is not\nrecoverable, and that the address lies outside of valid memory.\n\nhandle_mm_fault() is made to BUG if called on NOMMU without attempting to\ninvoke the actual handler (__handle_mm_fault).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a576219aca70e6700705a9836e098dbecd25fb56",
      "tree": "1388f5fceb79d42c019443a527b311cf6497e3bd",
      "parents": [
        "817c41d76e9eaf72044268b0e545a547abadc0bb"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jan 06 00:09:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:21 2006 -0800"
      },
      "message": "[PATCH] swsusp: resume_store() retval fix\n\n- This function returns -EINVAL all the time.  Fix.\n\n- Decruftify it a bit too.\n\n- Writing to it doesn\u0027t seem to do what it\u0027s suppoed to do.\n\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "db9edfd7e339ca4113153d887e782dd05be5a9eb",
      "tree": "0a4ba12447a0cabc800adc7e9667d284777b0181",
      "parents": [
        "631b034724364b413e8a52e7c2e03a9d77e4c2b4",
        "fd586bacf439f36dea9b9bf6e6133ac87df2730c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 04 18:44:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 04 18:44:12 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6\n\nTrivial manual merge fixup for usb_find_interface clashes.\n"
    },
    {
      "commit": "25c862cc9ea9b312c25a9f577f91b973131f1261",
      "tree": "8e8f56531144370ced50fa98db2973f4e93e38b0",
      "parents": [
        "52347f4e810ba323d02cd2c26b5d738f4a2c3d5e",
        "8ded4ac018ea706bf7ee926601a27184665c9c28"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 04 16:36:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 04 16:36:52 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild\n"
    },
    {
      "commit": "f743ca5e10f4145e0b3e6d11b9b46171e16af7ce",
      "tree": "e21e900b2400d66a6da37492951e80c6f4cf4230",
      "parents": [
        "d960bb4db9f422b5c3c82e0dfd6c8213a4fc430d"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Tue Nov 22 23:36:13 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 04 16:18:08 2006 -0800"
      },
      "message": "[PATCH] kobject_uevent CONFIG_NET\u003dn fix\n\nlib/lib.a(kobject_uevent.o)(.text+0x25f): In function `kobject_uevent\u0027:\n: undefined reference to `__alloc_skb\u0027\nlib/lib.a(kobject_uevent.o)(.text+0x2a1): In function `kobject_uevent\u0027:\n: undefined reference to `skb_over_panic\u0027\nlib/lib.a(kobject_uevent.o)(.text+0x31d): In function `kobject_uevent\u0027:\n: undefined reference to `skb_over_panic\u0027\nlib/lib.a(kobject_uevent.o)(.text+0x356): In function `kobject_uevent\u0027:\n: undefined reference to `netlink_broadcast\u0027\nlib/lib.a(kobject_uevent.o)(.init.text+0x9): In function `kobject_uevent_init\u0027:\n: undefined reference to `netlink_kernel_create\u0027\nmake: *** [.tmp_vmlinux1] Error 1\n\nNetlink is unconditionally enabled if CONFIG_NET, so that\u0027s OK.\n\nkobject_uevent.o is compiled even if !CONFIG_HOTPLUG, which is lazy.\n\nLet\u0027s compound the sin.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "312c004d36ce6c739512bac83b452f4c20ab1f62",
      "tree": "e61e8331680a0da29557fe21414d3b31e62c9293",
      "parents": [
        "5f123fbd80f4f788554636f02bf73e40f914e0d6"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@suse.de",
        "time": "Wed Nov 16 09:00:00 2005 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 04 16:18:08 2006 -0800"
      },
      "message": "[PATCH] driver core: replace \"hotplug\" by \"uevent\"\n\nLeave the overloaded \"hotplug\" word to susbsystems which are handling\nreal devices. The driver core does not \"plug\" anything, it just exports\nthe state to userspace and generates events.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0f76e5acf9dc788e664056dda1e461f0bec93948",
      "tree": "fdb7db438cb03fb3e0508d582a7cc1321c62efed",
      "parents": [
        "0296b2281352e4794e174b393c37f131502e09f0"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@suse.de",
        "time": "Fri Nov 11 04:58:04 2005 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 04 16:18:07 2006 -0800"
      },
      "message": "[PATCH] add uevent_helper control in /sys/kernel/\n\nThis deprecates the /proc/sys/kernel/hotplug file, as all\nthis stuff should be in /sys some day, right? :)\nIn /sys/kernel/ we have now uevent_seqnum and uevent_helper.\nThe seqnum is no longer used by udev, as the version for this\nkernel depends on netlink which events will never get\nout-of-order.\n\nRecent udev versions disable the /sbin/hotplug helper with\nan init script, cause it leads to OOM on big boxes by running\nhundreds of shells in parallel. It should be done now by:\n  echo \"\" \u003e /sys/kernel/uevent_helper\n\n(Note that \"-n\" does not work, cause neighter proc nor sysfs\nsupport truncate().)\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0296b2281352e4794e174b393c37f131502e09f0",
      "tree": "874e1de7ffaf56ab14f031d2818b69853c4914d8",
      "parents": [
        "034382117725f6b6b26fbb138498139c5c012c1b"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@suse.de",
        "time": "Fri Nov 11 05:33:52 2005 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 04 16:18:07 2006 -0800"
      },
      "message": "[PATCH] remove CONFIG_KOBJECT_UEVENT option\n\nIt makes zero sense to have hotplug, but not the netlink\nevents enabled today. Remove this option and merge the\nkobject_uevent.h header into the kobject.h header file.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "f4b09ebc8baa51ec8394c4173e3de9d62b2cc97a",
      "tree": "d91c611e6f43e1775f584f796c6990d746d4ef6c",
      "parents": [
        "e3e1bfe4f28de86d065bc041456161a3f3a9aef7"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Jan 03 13:37:51 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@r063144.stusta.swh.mhn.de",
        "time": "Tue Jan 03 13:37:51 2006 +0100"
      },
      "message": "update the email address of Randy Dunlap\n\nThis patch removes all references to the bouncing address\nrddunlap@osdl.org and one dead web page from the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "febf7ea4bedcd36fba0843db726bba28d22bf89a",
      "tree": "0a0d398e0637fba8292d8b139afbd41b102bb9c4",
      "parents": [
        "00213b17cec87d2cd4df75bcc79aea7a91d8532d"
      ],
      "author": {
        "name": "",
        "email": "sam@mars.ravnborg.org",
        "time": "Tue Jan 03 11:35:26 2006 +0100"
      },
      "committer": {
        "name": "",
        "email": "sam@mars.ravnborg.org",
        "time": "Tue Jan 03 11:35:26 2006 +0100"
      },
      "message": "gitignore: ignore more generated files\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "de9e007d9105bf8fa613a89810feff32a43add03",
      "tree": "ef7805d1e03e8648fbaca3713d1a749c27770339",
      "parents": [
        "35f349ee082de0be45eb23926d9fc7569f5011f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 31 17:00:29 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 31 17:00:29 2005 -0800"
      },
      "message": "sysctl: make sure to terminate strings with a NUL\n\nThis is a slightly more complete fix for the previous minimal sysctl\nstring fix.  It always terminates the returned string with a NUL, even\nif the full result wouldn\u0027t fit in the user-supplied buffer.\n\nThe returned length is the full untruncated length, so that you can\ntell when truncation has occurred.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "82c9df820112c6286a8e8fbe482e94b65b49062c",
      "tree": "6f52b0ae3db256de9a3ac46083229d96f2d130e9",
      "parents": [
        "8febdd85adaa41fa1fc1cb31286210fc2cd3ed0c"
      ],
      "author": {
        "name": "Yi Yang",
        "email": "yang.y.yi@gmail.com",
        "time": "Fri Dec 30 16:37:10 2005 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Dec 30 17:22:08 2005 -0800"
      },
      "message": "[PATCH] Fix false old value return of sysctl\n\nFor the sysctl syscall, if the user wants to get the old value of a\nsysctl entry and set a new value for it in the same syscall, the old\nvalue is always overwritten by the new value if the sysctl entry is of\nstring type and if the user sets its strategy to sysctl_string.  This\nissue lies in the strategy being run twice if the strategy is set to\nsysctl_string, the general strategy sysctl_string always returns 0 if\nsuccess.\n\nSuch strategy routines as sysctl_jiffies and sysctl_jiffies_ms return 1\nbecause they do read and write for the sysctl entry.\n\nThe strategy routine sysctl_string return 0 although it actually read\nand write the sysctl entry.\n\nAccording to my analysis, if a strategy routine do read and write, it\nshould return 1, if it just does some necessary check but not read and\nwrite, it should return 0, for example sysctl_intvec.\n\nSigned-off-by: Yi Yang \u003cyang.y.yi@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8febdd85adaa41fa1fc1cb31286210fc2cd3ed0c",
      "tree": "2e1aaa5e4e68057a4e96a606e2ad0bcccedcd6df",
      "parents": [
        "8b90db0df7187a01fb7177f1f812123138f562cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Dec 30 17:18:53 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Dec 30 17:18:53 2005 -0800"
      },
      "message": "sysctl: don\u0027t overflow the user-supplied buffer with \u0027\\0\u0027\n\nIf the string was too long to fit in the user-supplied buffer,\nthe sysctl layer would zero-terminate it by writing past the\nend of the buffer. Don\u0027t do that.\n\nNoticed by Yi Yang \u003cyang.y.yi@gmail.com\u003e\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8e31108b9f41069d55cb9b019ac8262c55fd2616",
      "tree": "4d3b74956402b978417ee1026fa18409773cd72e",
      "parents": [
        "6003a93e7bf6c02f33c02976ff364785d4273295"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Dec 23 19:54:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 24 12:13:27 2005 -0800"
      },
      "message": "[PATCH] Fix memory ordering problem in wake_futex()\n\nFix a memory ordering problem that occurs on IA64. The \"store\" to q-\u003elock_ptr\nin wake_futex() can become visible before wake_up_all() clears the lock in the\nfutex_q.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9e28393998d3d0733097306762f6d1c083fc92c6",
      "tree": "9cc87f8c1f936164fd570c58126ef761839f74e3",
      "parents": [
        "7e8702334841b6da4b8f564dc1771ca17c59a621"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Tue Dec 20 15:21:24 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Dec 20 10:31:33 2005 -0800"
      },
      "message": "[PATCH] kernel/params.c: fix sysfs access with CONFIG_MODULES\u003dn\n\nAll the work was done to setup the file and maintain the file handles but\nthe access functions were zeroed out due to the #ifdef.  Removing the\n#ifdef allows full access to all the parameters when CONFIG_MODULES\u003dn.\n\nakpm: put it back again, but use CONFIG_SYSFS instead.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bf8d5c52c3b6b27061e3b7d779057fd9a6cac164",
      "tree": "e4371185eba27db47282410dd490b78598d20636",
      "parents": [
        "00d7c05ab168c10f9b520e07400923267bc04419"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Dec 12 00:37:34 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:45 2005 -0800"
      },
      "message": "[PATCH] kprobes: increment kprobe missed count for multiprobes\n\nWhen multiple probes are registered at the same address and if due to some\nrecursion (probe getting triggered within a probe handler), we skip calling\npre_handlers and just increment nmissed field.\n\nThe below patch make sure it walks the list for multiple probes case.\nWithout the below patch we get incorrect results of nmissed count for\nmultiple probe case.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "00d7c05ab168c10f9b520e07400923267bc04419",
      "tree": "5899743965a801e34e7dc6bfe59dba20ba023540",
      "parents": [
        "cda315aba34ff4fb66bbb2945b723688f3414a75"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Dec 12 00:37:33 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:45 2005 -0800"
      },
      "message": "[PATCH] kprobes: no probes on critical path\n\nFor Kprobes critical path is the path from debug break exception handler\ntill the control reaches kprobes exception code.  No probes can be\nsupported in this path as we will end up in recursion.\n\nThis patch prevents this by moving the below function to safe __kprobes\nsection onto which no probes can be inserted.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a4ae749a478f8bca73d4b5b8c1b8cbb178b2db5",
      "tree": "a8480cc6ab547c01818182112ce4bc8bdcc6f91f",
      "parents": [
        "bf001b26793bd9f8a446577c361226fbcd617182"
      ],
      "author": {
        "name": "Pierre Ossman",
        "email": "drzeus@drzeus.cx",
        "time": "Mon Dec 12 00:37:22 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:43 2005 -0800"
      },
      "message": "[PATCH] Add try_to_freeze to kauditd\n\nkauditd was causing suspends to fail because it refused to freeze.  Adding\na try_to_freeze() to its sleep loop solves the issue.\n\nSigned-off-by: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "adad0f331f9c693129e81e233c5461e2e7c3e443",
      "tree": "846b37c12e8a07b7f4f3f5dbecb4b060c2be01c1",
      "parents": [
        "b88cb42428f14fabdaf947150c00d65891820635"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Dec 12 00:37:12 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:43 2005 -0800"
      },
      "message": "[PATCH] kprobes: fix race in aggregate kprobe registration\n\nWhen registering multiple kprobes at the same address, we leave a small\nwindow where the kprobe hlist will not contain a reference to the\nregistered kprobe, leading to potentially, a system crash if the breakpoint\nis hit on another processor.\n\nPatch below now automically relpace the old kprobe with the new\nkprobe from the hash list.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64123fd42c7a1e4ebf6acd2399c98caddc7e0c26",
      "tree": "d6b1794fa33287d145a44ab55bc2e2ef65ebf248",
      "parents": [
        "894ec8707ced240b96dc45944790fb35d9a6b03c"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Mon Dec 12 00:37:09 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:42 2005 -0800"
      },
      "message": "[PATCH] Add getnstimestamp function\n\nThere are several functions that might seem appropriate for a timestamp:\n\nget_cycles()\ncurrent_kernel_time()\ndo_gettimeofday()\n\u003cread jiffies/jiffies_64\u003e\n\nEach has problems with combinations of SMP-safety, low resolution, and\nmonotonicity. This patch adds a new function that returns a monotonic SMP-safe\ntimestamp with nanosecond resolution where available.\n\nChanges:\n\tSplit timestamp into separate patch\n\tMoved to kernel/time.c\n\tRenamed to getnstimestamp\n\tFixed unintended-pointer-arithmetic bug\n\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c3f5902325d3053986e7359f706581d8f032e72f",
      "tree": "1d56b7626b83556982eafad69c597b180c2ef62b",
      "parents": [
        "89d46b8778f65223f732d82c0166e0abba20fb1e"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Mon Dec 12 00:37:07 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:42 2005 -0800"
      },
      "message": "[PATCH] Fix RCU race in access of nohz_cpu_mask\n\nAccessing nohz_cpu_mask before incrementing rcp-\u003ecur is racy.  It can cause\ntickless idle CPUs to be included in rsp-\u003ecpumask, which will extend\ngraceperiods unnecessarily.\n\nFix this race.  It has been tested using extensions to RCU torture module\nthat forces various CPUs to become idle.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89d46b8778f65223f732d82c0166e0abba20fb1e",
      "tree": "2ea43a40659bbc30cf1bd6b48c7ee7c95714feb7",
      "parents": [
        "ab4720ec76b756e1f8705e207a7b392b0453afd6"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Mon Dec 12 00:37:06 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:42 2005 -0800"
      },
      "message": "[PATCH] Fix bug in RCU torture test\n\nWhile doing some test of RCU torture module, I hit a OOPS in rcu_do_batch,\nwhich was trying to processes callback of a module that was just removed.\nThis is because we weren\u0027t waiting long enough for all callbacks to fire.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab4720ec76b756e1f8705e207a7b392b0453afd6",
      "tree": "1c4235ec8ac0e8e7f75a6f97ea6169e93647004f",
      "parents": [
        "85b872424984e79519be904e7df02a91ba0a9486"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Mon Dec 12 00:37:05 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:42 2005 -0800"
      },
      "message": "[PATCH] add rcu_barrier() synchronization point\n\nThis introduces a new interface - rcu_barrier() which waits until all\nthe RCUs queued until this call have been completed.\n\nReiser4 needs this, because we do more than just freeing memory object\nin our RCU callback: we also remove it from the list hanging off\nsuper-block.  This means, that before freeing reiser4-specific portion\nof super-block (during umount) we have to wait until all pending RCU\ncallbacks are executed.\n\nThe only change of reiser4 made to the original patch, is exporting of\nrcu_barrier().\n\nCc: Hans Reiser \u003creiser@namesys.com\u003e\nCc: Vladimir V. Saveliev \u003cvs@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b3e55c727ff7349c5db722fbdb8d99a151e8e0bf",
      "tree": "90d437e565082afe25d68e530e793faeab4b49ac",
      "parents": [
        "3fe968f167975d10c639f03c4934f05a29da73c0"
      ],
      "author": {
        "name": "Mao, Bibo",
        "email": "bibo.mao@intel.com",
        "time": "Mon Dec 12 00:37:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:41 2005 -0800"
      },
      "message": "[PATCH] Kprobes: Reference count the modules when probed on it\n\nWhen a Kprobes are inserted/removed on a modules, the modules must be ref\ncounted so as not to allow to unload while probes are registered on that\nmodule.\n\nWithout this patch, the probed module is free to unload, and when the\nprobing module unregister the probe, the kpobes code while trying to\nreplace the original instruction might crash.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Mao Bibo \u003cbibo.mao@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "123d3c13e2853a11b4d599d754b356acb12886e2",
      "tree": "6127e78c2dabcb2ca70de896b7aba53f12213d82",
      "parents": [
        "d91b14c463306eb6527550ba48617e7f5500d3ae"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Tue Nov 29 19:34:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 19:47:03 2005 -0800"
      },
      "message": "[PATCH] fix swsusp on machines not supporting S4\n\nFix swsusp on machines not supporting S4.  With recent changes, it is not\npossible to trigger it using /sys filesystem.  Swsusp does not really need\nany support from low-level code, it is possible to reboot or halt at the\nend of suspend.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5bd0190bf3d7e53043a048e809ffa29d41b9d6ac",
      "tree": "c6fba8d5a532ecfa53dc97a3841d13d972964854",
      "parents": [
        "df69a60dc6afc2936d79054d30b481c1fd9720e5"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Tue Nov 29 19:34:32 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 19:47:03 2005 -0800"
      },
      "message": "[PATCH] Fix crash when ptrace poking hugepage areas\n\nset_page_dirty() will not cope with being handed a page * which is part of\na compound page, but not the master page in that compound page.  This case\ncan occur via access_process_vm() if you attemp to write to another\nprocess\u0027s hugepage memory area using ptrace() (causing an oops or hang).\n\nThis patch fixes the bug by only calling set_page_dirty() from\naccess_process_vm() if the page is not a compound page.  We already use a\nsimilar fix in bio_set_pages_dirty() for the case of direct io to\nhugepages.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c4b8add83c93306b07d78469fd351dc462e4b66",
      "tree": "e99523b961cb84f0462057d329de27e1d85546e6",
      "parents": [
        "3148890bfa4f36c9949871264e06ef4d449eeff9"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Mon Nov 28 13:44:05 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:24 2005 -0800"
      },
      "message": "[PATCH] cpuset fork locking fix\n\nMove the cpuset_fork() call below the write_unlock_irq call in\nkernel/fork.c copy_process().\n\nSince the cpuset-dual-semaphore-locking-overhaul.patch, the cpuset_fork()\nroutine acquires task_lock(), so cannot be called while holding the\ntasklist_lock for write.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bce61dd49d6ba7799be2de17c772e4c701558f14",
      "tree": "a8fd75afc85ffef3c9af0bafa1989d7a14e1a187",
      "parents": [
        "ee500f274914653a7d3dfca7d0140a3d21658e32"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@debian.org",
        "time": "Mon Nov 28 13:43:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] Fix hardcoded cpu\u003d0 in workqueue for per_cpu_ptr() calls\n\nTracked this down on an Ultra Enterprise 3000.  It\u0027s a 6-way machine.  Odd\nthing about this machine (and it\u0027s good for finding bugs like this) is that\nthe CPU id\u0027s are not 0 based.  For instance, on my machine the CPU\u0027s are\n6/7/10/11/14/15.\n\nThis caused some NULL pointer dereference in kernel/workqueue.c because for\nsingle_threaded workqueue\u0027s, it hardcoded the cpu to 0.\n\nI changed the 0\u0027s to any_online_cpu(cpu_online_mask), which cpumask.h\nclaims is \"First cpu in mask\".  So this fits the same usage.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ee500f274914653a7d3dfca7d0140a3d21658e32",
      "tree": "4b2b664e220e09d1a9cbcd69edebb16707b41e9b",
      "parents": [
        "46596338a10a54550ff03a6f60c28145a080296b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Nov 28 13:43:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] fix 32bit overflow in timespec_to_sample()\n\nfix 32bit overflow in timespec_to_sample()\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c13cf856cbe16aec3007604dc013cbf3a16c6686",
      "tree": "0d05f46a20de1abf59c02af4e819ccfae0a8d009",
      "parents": [
        "ff88a3b2f56ae4f3296ea957ea38f99f8bd0e5a8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Nov 28 13:43:48 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] fork.c: proc_fork_connector() called under write_lock()\n\nDon\u0027t do that - it does GFP_KERNEL allocations, for a start.\n\n(Reported by Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e)\n\nAcked-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a9d9baa1e819b2f92f9cfa5240f766c535e636a6",
      "tree": "0ae15e5b1071b395affa0ac9abf6fd746ad60b0e",
      "parents": [
        "e0f39591cc178026607fcbbe9a53be435fe8285d"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Mon Nov 28 13:43:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] clean up lock_cpu_hotplug() in cpufreq\n\nThere are some callers in cpufreq hotplug notify path that the lowest\nfunction calls lock_cpu_hotplug().  The lock is already held during\ncpu_up() and cpu_down() calls when the notify calls are broadcast to\nregistered clients.\n\nIdeally if possible, we could disable_preempt() at the highest caller and\nmake sure we dont sleep in the path down in cpufreq-\u003edriver_target() calls\nbut the calls are so intertwined and cumbersome to cleanup.\n\nHence we consistently use lock_cpu_hotplug() and unlock_cpu_hotplug() in\nall places.\n\n - Removed export of cpucontrol semaphore and made it static.\n - removed explicit uses of up/down with lock_cpu_hotplug()\n   so we can keep track of the the callers in same thread context and\n   just keep refcounts without calling a down() that causes a deadlock.\n - Removed current_in_hotplug() uses\n - Removed PF_HOTPLUG_CPU in sched.h introduced for the current_in_hotplug()\n   temporary workaround.\n\nTested with insmod of cpufreq_stat.ko, and logical online/offline\nto make sure we dont have any hang situations.\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Zwane Mwaikambo \u003czwane@linuxpower.ca\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e9b15b54d3646108bbd3e054158b402025d3e704",
      "tree": "4e12028b9fd62fc13ad66d047f5d0052c2208e96",
      "parents": [
        "962b564cf1ec8041e8890a3c3847e3a630a08f42"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Nov 23 13:37:44 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 23 16:08:39 2005 -0800"
      },
      "message": "[PATCH] Fix crash in unregister_console()\n\nIf unregister_console() is inadvertently called while no consoles are\nregistered, it will crash trying to dereference NULL pointer.  It is\nnecessary to fix that because register_console() provides no indication\nthat it actually registered the console passed in.  In fact, it may well\ndecide not to register it based on various things...\n\n(akpm: It\u0027d be better to make register_console() return something and fix the\ncallers.  All 106 of them...)\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cc3327e7dfc16a9a3e164075234c869867a59e45",
      "tree": "d120c13540a7fa4769c0bf53eb12628a76366631",
      "parents": [
        "7b6ac9dffe6f4dd8776908b234ac1410ed15f112"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Nov 23 13:37:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 23 16:08:38 2005 -0800"
      },
      "message": "[PATCH] mm: unbloat get_futex_key\n\nThe follow_page changes in get_futex_key have left it with two almost\nidentical blocks, when handling the rare case of a futex in a nonlinear vma.\nget_user_pages will itself do that follow_page, and its additional\nfind_extend_vma is hardly any overhead since the vma is already cached.  Let\u0027s\njust delete the follow_page block and let get_user_pages do it.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c2b5a251b9feca727661f1a3278cafb1de4c80f3",
      "tree": "499369ecd5ef3af4f409df9d86c5e3c5bd4ca2de",
      "parents": [
        "2d0ebb36038c0626cde662a3b06da9787cfb68c3"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Nov 03 07:51:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 23 11:11:28 2005 -0800"
      },
      "message": "[PATCH] Check the irq number is within bounds\n\nMost of the functions already check. Do the ones that didn\u0027t.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b0db14c536debd92328819fe6c51a49717e8440",
      "tree": "9fb2df9bc06a30bbc44d980614e441974be55660",
      "parents": [
        "689bcebfda16d7bace742740bfb3137fff30b529"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:20 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:43 2005 -0800"
      },
      "message": "[PATCH] unpaged: copy_page_range vma\n\nFor copy_one_pte\u0027s print_bad_pte to show the task correctly (instead of\n\"???\"), dup_mmap must pass down parent vma rather than child vma.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "996417d2c4eb583e94553e4ede58974e0da1c38e",
      "tree": "61a1c6dfa7e4d65ce1424f2225c1f46b15f16bb1",
      "parents": [
        "2463ade2cb78224302998ee3c7dc7d53da88d258"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Fri Nov 18 01:10:50 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 18 07:49:45 2005 -0800"
      },
      "message": "[PATCH] add success/failure indication to RCU torture test\n\nOne issue with the RCU torture test is that the current error flagging can\nbe lost in dmesg.  This patch adds a \"SUCCESS\"/\"FAILURE\" string to the line\nthat flags the end of the test, where it can easily be seen with \"dmesg |\ntail\" at the end of the test.  Also adds tests of architecture-specific\nmemory barriers -- or, more likely, of the RCU torture test itself.\n\nCc: \u003cvatsa@in.ibm.com\u003e\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ddad86c2d6f660112c6ce8aabae6ffd346e25b9b",
      "tree": "f11cca30f8c67631b5b2d51d5ab45398bedfe6ff",
      "parents": [
        "aeec46b97a7975fd983219177980c58ed4fd607c"
      ],
      "author": {
        "name": "Martin Waitz",
        "email": "tali@admingilde.org",
        "time": "Sun Nov 13 16:08:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:21 2005 -0800"
      },
      "message": "[PATCH] DocBook: include printk documentation\n\nAdd printk documentation to kernel-api.\n\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3f39894d1b5c253b10fcb8fbbbcf65a330f6cdc7",
      "tree": "6d166da37e874f2c0b891d4cf61b5f4b9bf5a71f",
      "parents": [
        "09e12f9f6bcd9af516d901223cebdbae58b32c9f"
      ],
      "author": {
        "name": "George Anzinger",
        "email": "george@mvista.com",
        "time": "Sun Nov 13 16:07:44 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:17 2005 -0800"
      },
      "message": "[PATCH] timespec: normalize off by one errors\n\nIt would appear that the timespec normalize code has an off by one error.\nFound in three places.  Thanks to Ben for spotting.\n\nSigned-off-by: George Anzinger\u003cgeorge@mvista.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "20dcae32439384b6863c626bb3b2a09bed65b33e"
}
