)]}'
{
  "log": [
    {
      "commit": "2e1483c995bbd0fa6cbd055ad76088a520799ba4",
      "tree": "4b555ae3452a80e3cebd7adcab83b019d1ca1b60",
      "parents": [
        "4f2294b6dc88d99295230d97fef2c9863cec44c3"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:24:13 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:04:18 2009 +0100"
      },
      "message": "kmemleak: Remove some of the kmemleak false positives\n\nThere are allocations for which the main pointer cannot be found but\nthey are not memory leaks. This patch fixes some of them. For more\ninformation on false positives, see Documentation/kmemleak.txt.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "5028eaa97dd1dab9cd7c30c4d38f71c708ca64bc",
      "tree": "ff416e9ecb00ab2b616bce6acc4e2579c45b06b9",
      "parents": [
        "9b8de7479d0dbab1ed98b5b015d44232c9d3d08e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Apr 21 23:00:29 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 21 19:40:00 2009 -0700"
      },
      "message": "PERCPU: Collect the DECLARE/DEFINE declarations together\n\nCollect the DECLARE/DEFINE declarations together in linux/percpu-defs.h so\nthat they\u0027re in one place, and give them descriptive comments, particularly\nthe SHARED_ALIGNED variant.\n\nIt would be nice to collect these in linux/percpu.h, but that\u0027s not possible\nwithout sorting out the severe #include recursion between the x86 arch headers\nand the general headers (and possibly other arches too).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b8de7479d0dbab1ed98b5b015d44232c9d3d08e",
      "tree": "1b138996efe642f03699a7737af109dfa72ef830",
      "parents": [
        "ccc5ff94c66e628d3c501b26ace5d4339667715d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Apr 21 23:00:24 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 21 19:39:59 2009 -0700"
      },
      "message": "FRV: Fix the section attribute on UP DECLARE_PER_CPU()\n\nIn non-SMP mode, the variable section attribute specified by DECLARE_PER_CPU()\ndoes not agree with that specified by DEFINE_PER_CPU().  This means that\narchitectures that have a small data section references relative to a base\nregister may throw up linkage errors due to too great a displacement between\nwhere the base register points and the per-CPU variable.\n\nOn FRV, the .h declaration says that the variable is in the .sdata section, but\nthe .c definition says it\u0027s actually in the .data section.  The linker throws\nup the following errors:\n\nkernel/built-in.o: In function `release_task\u0027:\nkernel/exit.c:78: relocation truncated to fit: R_FRV_GPREL12 against symbol `per_cpu__process_counts\u0027 defined in .data section in kernel/built-in.o\nkernel/exit.c:78: relocation truncated to fit: R_FRV_GPREL12 against symbol `per_cpu__process_counts\u0027 defined in .data section in kernel/built-in.o\n\nTo fix this, DECLARE_PER_CPU() should simply apply the same section attribute\nas does DEFINE_PER_CPU().  However, this is made slightly more complex by\nvirtue of the fact that there are several variants on DEFINE, so these need to\nbe matched by variants on DECLARE.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "066123a535927b3f17cac2305258cc71abdb0d92",
      "tree": "0913cbe29cd9f08cf98d828e50a109181351087a",
      "parents": [
        "36cd3c9f925b9307236505ae7ad1ad7ac4d4357c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Apr 10 12:02:40 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 10 21:36:18 2009 +0200"
      },
      "message": "percpu: unbreak alpha percpu\n\nFor the time being, move the generic percpu_*() accessors to\nlinux/percpu.h.\n\nasm-generic/percpu.h is meant to carry generic stuff for low level\nstuff - declarations, definitions and pointer offset calculation\nand so on but not for generic interface.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "66c3a75772247c31feabefb724e082220a1ab060",
      "tree": "5e61a0e44c82474729e81007edc2093d37fffe95",
      "parents": [
        "6074d5b0a319fe8400ff079a3c289406ca024321"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "message": "percpu: generalize embedding first chunk setup helper\n\nImpact: code reorganization\n\nSeparate out embedding first chunk setup helper from x86 embedding\nfirst chunk allocator and put it in mm/percpu.c.  This will be used by\nthe default percpu first chunk allocator and possibly by other archs.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6074d5b0a319fe8400ff079a3c289406ca024321",
      "tree": "465ad1ae2ba2a35ee2b67772e188f6a1f5ac189d",
      "parents": [
        "e01009833e22dc87075d770554b34d797843ed23"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "message": "percpu: more flexibility for @dyn_size of pcpu_setup_first_chunk()\n\nImpact: cleanup, more flexibility for first chunk init\n\nNon-negative @dyn_size used to be allowed iff @unit_size wasn\u0027t auto.\nThis restriction stemmed from implementation detail and made things a\nbit less intuitive.  This patch allows @dyn_size to be specified\nregardless of @unit_size and swaps the positions of @dyn_size and\n@unit_size so that the parameter order makes more sense (static,\nreserved and dyn sizes followed by enclosing unit_size).\n\nWhile at it, add @unit_size \u003e\u003d PCPU_MIN_UNIT_SIZE sanity check.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6b19b0c2400437a3c10059ede0e59b517092e1bd",
      "tree": "4fc1868fc8fde37315b54c6d416b48000621af9d",
      "parents": [
        "edcb463997ed7b2ffa3bac76e3e75957318f2e01"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "x86, percpu: setup reserved percpu area for x86_64\n\nImpact: fix relocation overflow during module load\n\nx86_64 uses 32bit relocations for symbol access and static percpu\nsymbols whether in core or modules must be inside 2GB of the percpu\nsegement base which the dynamic percpu allocator doesn\u0027t guarantee.\nThis patch makes x86_64 reserve PERCPU_MODULE_RESERVE bytes in the\nfirst chunk so that module percpu areas are always allocated from the\nfirst chunk which is always inside the relocatable range.\n\nThis problem exists for any percpu allocator but is easily triggered\nwhen using the embedding allocator because the second chunk is located\nbeyond 2GB on it.\n\nThis patch also changes the meaning of PERCPU_DYNAMIC_RESERVE such\nthat it only indicates the size of the area to reserve for dynamic\nallocation as static and dynamic areas can be separate.  New\nPERCPU_DYNAMIC_RESERVED is increased by 4k for both 32 and 64bits as\nthe reserved area separation eats away some allocatable space and\nhaving slightly more headroom (currently between 4 and 8k after\nminimal boot sans module area) makes sense for common case\nperformance.\n\nx86_32 can address anywhere from anywhere and doesn\u0027t need reserving.\n\nMike Galbraith first reported the problem first and bisected it to the\nembedding percpu allocator commit.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nReported-by: Jaswinder Singh Rajput \u003cjaswinder@kernel.org\u003e\n"
    },
    {
      "commit": "edcb463997ed7b2ffa3bac76e3e75957318f2e01",
      "tree": "d1eefb78736404993b0de4a049392f9af578e29e",
      "parents": [
        "3e24aa58907c62bc79d1094e941a374568f62522"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "percpu, module: implement reserved allocation and use it for module percpu variables\n\nImpact: add reserved allocation functionality and use it for module\n\tpercpu variables\n\nThis patch implements reserved allocation from the first chunk.  When\nsetting up the first chunk, arch can ask to set aside certain number\nof bytes right after the core static area which is available only\nthrough a separate reserved allocator.  This will be used primarily\nfor module static percpu variables on architectures with limited\nrelocation range to ensure that the module perpcu symbols are inside\nthe relocatable range.\n\nIf reserved area is requested, the first chunk becomes reserved and\nisn\u0027t available for regular allocation.  If the first chunk also\nincludes piggy-back dynamic allocation area, a separate chunk mapping\nthe same region is created to serve dynamic allocation.  The first one\nis called static first chunk and the second dynamic first chunk.\nAlthough they share the page map, their different area map\ninitializations guarantee they serve disjoint areas according to their\npurposes.\n\nIf arch doesn\u0027t setup reserved area, reserved allocation is handled\nlike any other allocation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "cafe8816b217b98dc3f268d3b77445da498beb4f",
      "tree": "7ebbb4e9fc2c4f6ec0035170d4736aecc00d2501",
      "parents": [
        "61ace7fa2fff9c4b6641c506b6b3f1a9394a1b11"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "percpu: use negative for auto for pcpu_setup_first_chunk() arguments\n\nImpact: argument semantic cleanup\n\nIn pcpu_setup_first_chunk(), zero @unit_size and @dyn_size meant\nauto-sizing.  It\u0027s okay for @unit_size as 0 doesn\u0027t make sense but 0\ndynamic reserve size is valid.  Alos, if arch @dyn_size is calculated\nfrom other parameters, it might end up passing in 0 @dyn_size and\nmalfunction when the size is automatically adjusted.\n\nThis patch makes both @unit_size and @dyn_size ssize_t and use -1 for\nauto sizing.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2441d15c97d498b18f03ae9fba262ffeae42a08b",
      "tree": "b1ffae67036b6b1eef544342490d330a9ba183d4",
      "parents": [
        "6a242909b01120f6f3d571c0b75e20ec61f0d8d3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "percpu: cosmetic renames in pcpu_setup_first_chunk()\n\nImpact: cosmetic, preparation for future changes\n\nMake the following renames in pcpur_setup_first_chunk() in preparation\nfor future changes.\n\n* s/free_size/dyn_size/\n* s/static_vm/first_vm/\n* s/static_chunk/schunk/\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6a242909b01120f6f3d571c0b75e20ec61f0d8d3",
      "tree": "30688c18508f7ad0fe7b725e502c1e85fe33e7e5",
      "parents": [
        "f254f3909efaf59ca2d0f408de2d044dace60706"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:58 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:58 2009 +0900"
      },
      "message": "percpu: clean up percpu constants\n\nImpact: cleaup\n\nMake the following cleanups.\n\n* There isn\u0027t much arch-specific about PERCPU_MODULE_RESERVE.  Always\n  define it whether arch overrides PERCPU_ENOUGH_ROOM or not.\n\n* blackfin overrides PERCPU_ENOUGH_ROOM to align static area size.  Do\n  it by default.\n\n* percpu allocation sizes doesn\u0027t have much to do with the page size.\n  Don\u0027t use PAGE_SHIFT in their definition.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Bryan Wu \u003ccooloney@kernel.org\u003e\n"
    },
    {
      "commit": "e317603694bfd17b28a40de9d65e1a4ec12f816e",
      "tree": "ae286d9e1ae9ffacdd325ea76cd1d9ee88032efc",
      "parents": [
        "d2b0261506602bd969164879206027b30358ffdf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 26 10:54:17 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 26 10:54:17 2009 +0900"
      },
      "message": "percpu: fix too low alignment restriction on UP\n\nUP __alloc_percpu() triggered WARN_ON_ONCE() if the requested\nalignment is larger than that of unsigned long long, which is too\nsmall for all the cacheline aligned allocations.  Bump it up to\nSMP_CACHE_BYTES which kmalloc allocations generally guarantee.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d2b0261506602bd969164879206027b30358ffdf",
      "tree": "e1acca60dfc21bc89f1bdceba3b58610eb8e23ee",
      "parents": [
        "0dcec8c27ba44cd11c6e68c46d5fd553818a3837"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 14:36:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 14:38:12 2009 +0100"
      },
      "message": "alloc_percpu: fix UP build\n\nImpact: build fix\n\nthe !SMP branch had a \u0027gfp\u0027 leftover:\n\n include/linux/percpu.h: In function \u0027__alloc_percpu\u0027:\n include/linux/percpu.h:160: error: \u0027gfp\u0027 undeclared (first use in this function)\n include/linux/percpu.h:160: error: (Each undeclared identifier is reported only once\n include/linux/percpu.h:160: error: for each function it appears in.)\n\nUse GFP_KERNEL like the SMP version does.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8d408b4be37bc49c9086531f2ebe411cf5731746",
      "tree": "559a532a04b24dd164ec2c72ab545b30a5a604ef",
      "parents": [
        "d9b55eeb1d55ef2dc5a4fdbff9604c2c68cb5649"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 24 11:57:21 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 24 11:57:21 2009 +0900"
      },
      "message": "percpu: give more latitude to arch specific first chunk initialization\n\nImpact: more latitude for first percpu chunk allocation\n\nThe first percpu chunk serves the kernel static percpu area and may or\nmay not contain extra room for further dynamic allocation.\nInitialization of the first chunk needs to be done before normal\nmemory allocation service is up, so it has its own init path -\npcpu_setup_static().\n\nIt seems archs need more latitude while initializing the first chunk\nfor example to take advantage of large page mapping.  This patch makes\nthe following changes to allow this.\n\n* Define PERCPU_DYNAMIC_RESERVE to give arch hint about how much space\n  to reserve in the first chunk for further dynamic allocation.\n\n* Rename pcpu_setup_static() to pcpu_setup_first_chunk().\n\n* Make pcpu_setup_first_chunk() much more flexible by fetching page\n  pointer by callback and adding optional @unit_size, @free_size and\n  @base_addr arguments which allow archs to selectively part of chunk\n  initialization to their likings.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "fbf59bc9d74d1fb30b8e0630743aff2806eafcea",
      "tree": "3f0a7b7cf809a25e27b7a5ba0b16321fdb901801",
      "parents": [
        "8fc48985006da4ceba24508db64ec77fc0dfe3bb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "message": "percpu: implement new dynamic percpu allocator\n\nImpact: new scalable dynamic percpu allocator which allows dynamic\n        percpu areas to be accessed the same way as static ones\n\nImplement scalable dynamic percpu allocator which can be used for both\nstatic and dynamic percpu areas.  This will allow static and dynamic\nareas to share faster direct access methods.  This feature is optional\nand enabled only when CONFIG_HAVE_DYNAMIC_PER_CPU_AREA is defined by\narch.  Please read comment on top of mm/percpu.c for details.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2a8205c4ef1af917d175c36a4097ae5587791c8",
      "tree": "6c5531aa50803fda8005ea94c04b94fcd0310be3",
      "parents": [
        "313e458f81ec3852106c5a83830fe0d4f405a71a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "message": "percpu: kill percpu_alloc() and friends\n\nImpact: kill unused functions\n\npercpu_alloc() and its friends never saw much action.  It was supposed\nto replace the cpu-mask unaware __alloc_percpu() but it never happened\nand in fact __percpu_alloc_mask() itself never really grew proper\nup/down handling interface either (no exported interface for\npopulate/depopulate).\n\npercpu allocation is about to go through major reimplementation and\nthere\u0027s no reason to carry this unused interface around.  Replace it\nwith __alloc_percpu() and free_percpu().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "313e458f81ec3852106c5a83830fe0d4f405a71a",
      "tree": "682cd5b6d7dc4e0e9eccdcc7915820dd33c87a34",
      "parents": [
        "b36128c830a8f5bd7d4981f5b0b69950f5928ee6"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "message": "alloc_percpu: add align argument to __alloc_percpu.\n\nThis prepares for a real __alloc_percpu, by adding an alignment argument.\nOnly one place uses __alloc_percpu directly, and that\u0027s for a string.\n\ntj: af_inet also uses __alloc_percpu(), update it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "b36128c830a8f5bd7d4981f5b0b69950f5928ee6",
      "tree": "c1cec2c2b374b53372ab2e0592321aae9f5ba245",
      "parents": [
        "6b588c18f8dacfa6d7957c33c5ff832096e752d3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "message": "alloc_percpu: change percpu_ptr to per_cpu_ptr\n\nImpact: cleanup\n\nThere are two allocated per-cpu accessor macros with almost identical\nspelling.  The original and far more popular is per_cpu_ptr (44\nfiles), so change over the other 4 files.\n\ntj: kill percpu_ptr() and update UP too\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: mingo@redhat.com\nCc: lenb@kernel.org\nCc: cpufreq@vger.kernel.org\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "d3770449d3cb058b94ca1d050d5ced4a66c75ce4",
      "tree": "5e546795ca8bf8431f9a176d20a3c4691a60ac9a",
      "parents": [
        "56fc82c5360cdf0b250b5eb74f38657b0402faa5"
      ],
      "author": {
        "name": "Brian Gerst",
        "email": "brgerst@gmail.com",
        "time": "Sun Feb 08 09:58:38 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 10:30:29 2009 +0100"
      },
      "message": "percpu: make PER_CPU_BASE_SECTION overridable by arches\n\nImpact: bug fix\n\nIA-64 needs to put percpu data in the seperate section even on UP.\nFixes regression caused by \"percpu: refactor percpu.h\"\n\nSigned-off-by: Brian Gerst \u003cbrgerst@gmail.com\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0bd74fa8e29dcad98f7e8ffe01ec05fb3326abaf",
      "tree": "8b2768ec721d649e1c9d0c8cff4caf44a5326263",
      "parents": [
        "8ce031972b40da58c268caba8c5ea3c0856d7131"
      ],
      "author": {
        "name": "Brian Gerst",
        "email": "brgerst@gmail.com",
        "time": "Mon Jan 19 12:21:27 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 20 12:29:19 2009 +0900"
      },
      "message": "percpu: refactor percpu.h\n\nImpact: cleanup\n\nRefactor the DEFINE_PER_CPU_* macros and add .data.percpu.first\nsection.\n\nSigned-off-by: Brian Gerst \u003cbrgerst@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "d3d0ba7b8fb8f57c33207adcb41f40c176148c03",
      "tree": "39a93460aa2c6eb8286fbba6c551f95443e175dd",
      "parents": [
        "9042763808c5285a1a61b45b0fe98a710a4c903c",
        "63cc8c75156462d4b42cbdd76c293b7eee7ddbfe"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 05 09:24:30 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 05 09:24:30 2008 +0200"
      },
      "message": "Merge commit \u002763cc8c75156462d4b42cbdd76c293b7eee7ddbfe\u0027:\n\n  \"percpu: introduce DEFINE_PER_CPU_PAGE_ALIGNED() macro\"\n\ninto x86/core\n\nConflicts:\n\tarch/x86/kernel/cpu/common.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9d8fddfb17aaee4ffc5e3d0560620d0fa8b50a42",
      "tree": "f8a6b13a3048d1ae9c169b2d732fa05d8dcdf2ac",
      "parents": [
        "9e5c6da71e89fa25ced6e88182225a99941bec90"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "mm/allocpercpu.c: make 4 functions static\n\nThis patch makes the following needlessly global functions static:\n - percpu_depopulate()\n - __percpu_depopulate_mask()\n - percpu_populate()\n - __percpu_populate_mask()\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63cc8c75156462d4b42cbdd76c293b7eee7ddbfe",
      "tree": "e014b4c61399f8f74347352e6ea76ddf1502dcfa",
      "parents": [
        "75d3bce2fc0a80f435fe12f2c9ed2632c8ac29e4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon May 12 15:44:40 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun May 25 07:03:46 2008 +0200"
      },
      "message": "percpu: introduce DEFINE_PER_CPU_PAGE_ALIGNED() macro\n\nWhile examining holes in percpu section I found this :\n\nc05f5000 D per_cpu__current_task\nc05f5000 D __per_cpu_start\nc05f5004 D per_cpu__cpu_number\nc05f5008 D per_cpu__irq_regs\nc05f500c d per_cpu__cpu_devices\nc05f5040 D per_cpu__cyc2ns\n\n\u003cBig Hole of about 4000 bytes\u003e\n\nc05f6000 d per_cpu__cpuid4_info\nc05f6004 d per_cpu__cache_kobject\nc05f6008 d per_cpu__index_kobject\n\n\u003cBig Hole of about 4000 bytes\u003e\n\nc05f7000 D per_cpu__gdt_page\n\nThis is because gdt_page is a percpu variable, defined with\na page alignement, and linker is doing its job, two times because of .o\nnesting in the build process.\n\nI introduced a new macro DEFINE_PER_CPU_PAGE_ALIGNED() to avoid\nwasting this space. All page aligned variables (only one at this time)\nare put in a separate\nsubsection .data.percpu.page_aligned, at the very begining of percpu zone.\n\nBefore patch , on a x86_32 machine :\n\n.data.percpu                30232   3227471872\n.data.percpu                22168   3227471872\n\nThats 8064 bytes saved for each CPU.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "44c81433e8b05dbc85985d939046f10f95901184",
      "tree": "861801baf94a47c38f449f99aea6b5a0395f2f10",
      "parents": [
        "fd8a4221ad76df700ff34875c9fbc42302aa4ba3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed May 14 16:05:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:14 2008 -0700"
      },
      "message": "per_cpu: fix DEFINE_PER_CPU_SHARED_ALIGNED for modules\n\nCurrent module loader lookups \".data.percpu\" ELF section to perform\nper_cpu relocation.  But DEFINE_PER_CPU_SHARED_ALIGNED() uses another\nsection (\".data.percpu.shared_aligned\"), currently only handled in\nvmlinux.lds, not by module loader.\n\nTo correct this problem, instead of adding logic into module loader, or\nusing at build time a module.lds file for all arches to group\n\".data.percpu.shared_aligned\" into \".data.percpu\", just use \".data.percpu\"\nfor modules.\n\nAlignment requirements are correctly handled by ld and module loader.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aab3c3b01d1848a5e8a1ddec4e5656fc4de04982",
      "tree": "ca7557e41e500fe57141a5fec33a9c8fe608f49d",
      "parents": [
        "1aeb272cf09f9e2cbc62163b9f37a9b4d1c7e81d"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Tue Apr 29 00:59:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:04 2008 -0700"
      },
      "message": "Remove superfluous include of string.h from percpu.h\n\nThere\u0027s nothing in percpu.h that requires an explicit inclusion of\nstring.h.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3242151906372f30f57feaa43b4cac96a23edb1",
      "tree": "d258219aa13dfeae8d9fb5db1fd220a0664a680d",
      "parents": [
        "e7ca2d41a029577a8cff453d1445951d4f96bfd8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Feb 06 01:37:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:04 2008 -0800"
      },
      "message": "PERCPU : __percpu_alloc_mask() can dynamically size percpu_data storage\n\nInstead of allocating a fix sized array of NR_CPUS pointers for percpu_data,\nwe can use nr_cpu_ids, which is generally \u003c NR_CPUS.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05991bef104051d47e2160ee9499186aff7da5ad",
      "tree": "ff6b00b2d407acd0b743d4272f4577e97e09c823",
      "parents": [
        "3afc620229ccc8214ef96fd0e7db26d79f788167"
      ],
      "author": {
        "name": "travis@sgi.com",
        "email": "travis@sgi.com",
        "time": "Wed Jan 30 23:27:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 23:27:58 2008 +0100"
      },
      "message": "ia64: use generic percpu\n\nia64 has a special processor specific mapping that can be used to locate the\noffset for the current per cpu area.\n\nCc: linux-ia64@vger.kernel.org\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5280e004fc22314122c84978c0b6a741cf96dc0f",
      "tree": "008b96d81a924be764629f62f98fa5f7c9e04773",
      "parents": [
        "b32ef636a59aad12f9f9b5dc34c93222842c58ba"
      ],
      "author": {
        "name": "travis@sgi.com",
        "email": "travis@sgi.com",
        "time": "Wed Jan 30 13:32:52 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:32:52 2008 +0100"
      },
      "message": "percpu: move arch XX_PER_CPU_XX definitions into linux/percpu.h\n\n- Special consideration for IA64: Add the ability to specify\n  arch specific per cpu flags\n\n- remove .data.percpu attribute from DEFINE_PER_CPU for non-smp case.\n\nThe arch definitions are all the same. So move them into linux/percpu.h.\n\nWe cannot move DECLARE_PER_CPU since some include files just include\nasm/percpu.h to avoid include recursion problems.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0a3021f4e249fbdb5f30d614707b5e02022e4c9b",
      "tree": "c01b80fa03dbb4a853b46f182864384736a54088",
      "parents": [
        "9aacd599342fdfc1fb9422f37e900609b7a46249"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sun Jul 15 23:39:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:42 2007 -0700"
      },
      "message": "Remove unnecessary includes of spinlock.h under include/linux\n\nRemove the obviously unnecessary includes of \u003clinux/spinlock.h\u003e under the\ninclude/linux/ directory, and fix the couple errors that are introduced as\na result of that.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b00742d399513a4100c24cc2accefdc1bb1e0b15",
      "tree": "57551a08eb218ed4aadb0a90806f33826df27f8a",
      "parents": [
        "bbba11c35baaad3f70f32e185a2c1d40d7901fe9"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:11 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:11 2007 +0200"
      },
      "message": "[PATCH] x86-64: Account for module percpu space separately from kernel percpu\n\nRather than using a single constant PERCPU_ENOUGH_ROOM, compute it as\nthe sum of kernel_percpu + PERCPU_MODULE_RESERVE.  This is now common\nto all architectures; if an architecture wants to set\nPERCPU_ENOUGH_ROOM to something special, then it may do so (ia64 is\nthe only one which does).\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "a666ecfbf512dbd63a60f65d2ad6733a9a1b12ee",
      "tree": "670d0bd90f424101a8f05639ff517e464c4005c6",
      "parents": [
        "dc366708b3b022050f139347a44c65a102e4835d"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Fri Oct 06 00:43:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 06 08:53:41 2006 -0700"
      },
      "message": "[PATCH] Fix typo in \"syntax error if percpu macros are incorrectly used\" patch\n\nTrivial typo fix in the \"syntax error if percpu macros are incorrectly\nused\" patch.  I misspelled \"identifier\" in all places.  D\u0027Oh!\n\nThanks to Dirk Mueller to point this out.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0891a8d706d6e6838a926b6dec42f95581747d0e",
      "tree": "dc926aef2b56cbe4ddf3a974c51a99f70d39c1ea",
      "parents": [
        "3dcbbcda7c5b77c400791b26facd6593c5b176e0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Sep 29 01:58:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:02 2006 -0700"
      },
      "message": "[PATCH] __percpu_alloc_mask() has to be __always_inline in UP case\n\n...  or we\u0027ll end up with cpu_online_map being evaluated on UP.  In\nmodules.  cpumask.h is very careful to avoid that, and for a very good\nreason.  So should we...\n\nPS: yes, it really triggers (on alpha).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ff6f08295d90ab20d25200ef485ebb45b1b8d71",
      "tree": "4c3410dcf5191ab574304f3ffbafd675545c2297",
      "parents": [
        "8bc719d3cab8414938f9ea6e33b58d8810d18068"
      ],
      "author": {
        "name": "Martin Peschke",
        "email": "mp3@de.ibm.com",
        "time": "Mon Sep 25 23:31:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] CPU hotplug compatible alloc_percpu()\n\nThis patch splits alloc_percpu() up into two phases.  Likewise for\nfree_percpu().  This allows clients to limit initial allocations to online\ncpu\u0027s, and to populate or depopulate per-cpu data at run time as needed:\n\n  struct my_struct *obj;\n\n  /* initial allocation for online cpu\u0027s */\n  obj \u003d percpu_alloc(sizeof(struct my_struct), GFP_KERNEL);\n\n  ...\n\n  /* populate per-cpu data for cpu coming online */\n  ptr \u003d percpu_populate(obj, sizeof(struct my_struct), GFP_KERNEL, cpu);\n\n  ...\n\n  /* access per-cpu object */\n  ptr \u003d percpu_ptr(obj, smp_processor_id());\n\n  ...\n\n  /* depopulate per-cpu data for cpu going offline */\n  percpu_depopulate(obj, cpu);\n\n  ...\n\n  /* final removal */\n  percpu_free(obj);\n\nSigned-off-by: Martin Peschke \u003cmp3@de.ibm.com\u003e\nCc: 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": "632bbfeee4f042c05bc65150b4433a297d3fe387",
      "tree": "ce67b5fa4bec38610fc0ecb9b20be6aa69763bb3",
      "parents": [
        "0a2966b48fb784e437520e400ddc94874ddbd4e8"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Mon Sep 25 23:30:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] trigger a syntax error if percpu macros are incorrectly used\n\nget_cpu_var()/per_cpu()/__get_cpu_var() arguments must be simple\nidentifiers.  Otherwise the arch dependent implementations might break.\n\nThis patch enforces the correct usage of the macros by producing a syntax\nerror if the variable is not a simple identifier.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f867bac65419a98c9682f4409e087582d29ec5f6",
      "tree": "c65e5663259ae2df77179683c8189e6c3de3b9fe",
      "parents": [
        "e78c9a004aadebe22306c81d1a7f1d1278dc37f9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Jan 08 01:03:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:59 2006 -0800"
      },
      "message": "[PATCH] remove unused blkp field in percpu_data\n\nI found that blkp field was not used in kernel tree.\n\nAs most of the times NR_CPUS is a power of two and kmalloc() memory blocks\ntoo, this extra field basically doubles the memory space allocated in\n__alloc_percpu() to store the \u0027struct percpu_data\u0027\n\n(for example, if NR_CPUS\u003d8 on i386, kmalloc(4*8+4) returns a 64 bytes block\ninstead of a 32 bytes block after this patch)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9f7500521b25dbf1aba476b81230489ad8e2c4b",
      "tree": "f2bf2f64023c4968ac8d08da54b8aaef86354591",
      "parents": [
        "b792de39d892e06b18ddea85be076bae123d6bf6"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: remove unused align parameter from alloc_percpu\n\n__alloc_percpu and alloc_percpu both take an \u0027align\u0027 argument which is\ncompletely ignored.  snmp6_mib_init() in net/ipv6/af_inet6.c attempts to use\nit, but it will be ignored.  Therefore, remove the \u0027align\u0027 argument and fixup\nthe lone caller.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66341a905ef5b3e7aea65b5d9bd1b0361b0ccc61",
      "tree": "e993af70651ea563a3d960b2297301ddeb2616bd",
      "parents": [
        "0f5c79f2920cbc21c718daeb0b12d69acf4de163"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sun Nov 13 16:07:21 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:15 2005 -0800"
      },
      "message": "[PATCH] Shut up per_cpu_ptr() on UP\n\nCurrently per_cpu_ptr() doesn\u0027t really do anything with \u0027cpu\u0027 in the UP\ncase.  This is problematic in the cases where this is the only place the\nvariable is referenced:\n\n  CC      kernel/workqueue.o\n  kernel/workqueue.c: In function `current_is_keventd\u0027:\n  kernel/workqueue.c:460: warning: unused variable `cpu\u0027\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
