)]}'
{
  "log": [
    {
      "commit": "959b4fdfe7e27bcf101e2381e500e4076f2bb9ce",
      "tree": "65406ba086d3547ac1570639a8e7e42345191ed4",
      "parents": [
        "752783c050f1729452a89b2baea45b0124ac91c7"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Allow boot-time disable of paravirt_ops patching\n\nAdd \"noreplace-paravirt\" to disable paravirt_ops patching.\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: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "752783c050f1729452a89b2baea45b0124ac91c7",
      "tree": "ce7de3acb1bc02d21cba7c2de0a8ac317b51ff7a",
      "parents": [
        "57decbda6a2a7c400b2a3b3b12e52ccbdc977118"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "message": "[PATCH] i386: In compat mode, the return value here was uninitialized.\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "57decbda6a2a7c400b2a3b3b12e52ccbdc977118",
      "tree": "f4702143a15df7e455392ccb7eb466e9c5aa241e",
      "parents": [
        "9ce8c2ed12550f90fd6e902990652b13df647793"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "message": "[PATCH] x86: update for i386 and x86-64 check_bugs\n\nRemove spurious comments, headers and keywords from x86-64 bugs.[ch].\n\nUse identify_boot_cpu()\n\nAK: merged with other patch\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "9ce8c2ed12550f90fd6e902990652b13df647793",
      "tree": "e4fbef8305cd99c3b619220eea0fd7706da45b91",
      "parents": [
        "c5413fbe894924ddb8aa474a4d4da52e7a6c7e0b"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "message": "[PATCH] i386: map enough initial memory to create lowmem mappings\n\nhead.S creates the very initial pagetable for the kernel.  This just\nmaps enough space for the kernel itself, and an allocation bitmap.\nThe amount of mapped memory is rounded up to 4Mbytes, and so this\ntypically ends up mapping 8Mbytes of memory.\n\nWhen booting, pagetable_init() needs to create mappings for all\nlowmem, and the pagetables for these mappings are allocated from the\nfree pages around the kernel in low memory.  If the number of\npagetable pages + kernel size exceeds head.S\u0027s initial mapping, it\nwill end up faulting on an unmapped page.  This will only happen with\nspecific combinations of kernel size and memory size.\n\nThis patch makes sure that head.S also maps enough space to fit the\nkernel pagetables as well as the kernel itself.  It ends up using an\nadditional two pages of unreclaimable memory.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e,\n"
    },
    {
      "commit": "c5413fbe894924ddb8aa474a4d4da52e7a6c7e0b",
      "tree": "8f317bf2494b6b4bceb5e6d1ee35fabc0eeb9971",
      "parents": [
        "1956c73bb5bf81ee577ed7d3c64e3cad876ad2a5"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "message": "[PATCH] i386: Fix UP gdt bugs\n\nFixes two problems with the GDT when compiling for uniprocessor:\n - There\u0027s no percpu segment, so trying to load its selector into %fs fails.\n   Use a null selector instead.\n - The real gdt needs to be loaded at some point.  Do it in cpu_init().\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\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\n"
    },
    {
      "commit": "1956c73bb5bf81ee577ed7d3c64e3cad876ad2a5",
      "tree": "4e47be7446a6c9e42cbf03410280b7c06ad4e841",
      "parents": [
        "978c038ec944e4f2c940b0975c6acb433203a9be"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "message": "[PATCH] i386: Define per_cpu_offset\n\nDefine per_cpu_offset in asm-i386/percpu.h when SMP defined, like\nasm-generic/percpu.h does for UP.\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: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "978c038ec944e4f2c940b0975c6acb433203a9be",
      "tree": "f4bab9c040e5c4876fadeea765fed623f148ad69",
      "parents": [
        "7c3576d261ce046789a7db14f43303f8120910c7"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "message": "[PATCH] i386: cleanups to help using per-cpu variables from asm\n\nThis patch does a few small cleanups:\n - use PER_CPU_NAME to generate the names of per-cpu variables\n - use lea to add the per_cpu offset in PER_CPU(), because it doesn\u0027t\n   affect condition flags\n - add PER_CPU_VAR which allows direct access to pre-cpu variables\n   with the %fs: prefix on SMP.\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: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "7c3576d261ce046789a7db14f43303f8120910c7",
      "tree": "ad27a8459bbcdb183fe2411aec3b840942992ad5",
      "parents": [
        "7a61d35d4b4056e7711031202da7605e052f4137"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:16 2007 +0200"
      },
      "message": "[PATCH] i386: Convert PDA into the percpu section\n\nCurrently x86 (similar to x84-64) has a special per-cpu structure\ncalled \"i386_pda\" which can be easily and efficiently referenced via\nthe %fs register.  An ELF section is more flexible than a structure,\nallowing any piece of code to use this area.  Indeed, such a section\nalready exists: the per-cpu area.\n\nSo this patch:\n(1) Removes the PDA and uses per-cpu variables for each current member.\n(2) Replaces the __KERNEL_PDA segment with __KERNEL_PERCPU.\n(3) Creates a per-cpu mirror of __per_cpu_offset called this_cpu_off, which\n    can be used to calculate addresses for this CPU\u0027s variables.\n(4) Simplifies startup, because %fs doesn\u0027t need to be loaded with a\n    special segment at early boot; it can be deferred until the first\n    percpu area is allocated (or never for UP).\n\nThe result is less code and one less x86-specific concept.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "7a61d35d4b4056e7711031202da7605e052f4137",
      "tree": "4b21e0d541d0a189c2f9f16f53eb6489f07c5a84",
      "parents": [
        "39b7ee06859b07ca5fd4fabb44c4600316532574"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: Page-align the GDT\n\nXen wants a dedicated page for the GDT.  I believe VMI likes it too.\nlguest, KVM and native don\u0027t care.\n\nSimple transformation to page-aligned \"struct gdt_page\".\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\n"
    },
    {
      "commit": "39b7ee06859b07ca5fd4fabb44c4600316532574",
      "tree": "938d2e25cdf8068e9604dc40775aede665f6e98b",
      "parents": [
        "35c7422649ee7a3d0eb4ebd32c997eeb45f81046"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] x86-64: deflate inflate_dynamic too\n\ninflate_dynamic() has piggy stack usage too, so heap allocate it too.\nI\u0027m not sure it actually gets used, but it shows up large in \"make\ncheckstack\".\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "35c7422649ee7a3d0eb4ebd32c997eeb45f81046",
      "tree": "8baebdb9aeb46844c7e9becc5a7699c47257f86d",
      "parents": [
        "4cdd9c8931767e1c56a51a1078d33a8c340f4405"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] x86: deflate stack usage in lib/inflate.c\n\ninflate_fixed and huft_build together use around 2.7k of stack.  When\nusing 4k stacks, I saw stack overflows from interrupts arriving while\nunpacking the root initrd:\n\ndo_IRQ: stack overflow: 384\n [\u003cc0106b64\u003e] show_trace_log_lvl+0x1a/0x30\n [\u003cc01075e6\u003e] show_trace+0x12/0x14\n [\u003cc010763f\u003e] dump_stack+0x16/0x18\n [\u003cc0107ca4\u003e] do_IRQ+0x6d/0xd9\n [\u003cc010202b\u003e] xen_evtchn_do_upcall+0x6e/0xa2\n [\u003cc0106781\u003e] xen_hypervisor_callback+0x25/0x2c\n [\u003cc010116c\u003e] xen_restore_fl+0x27/0x29\n [\u003cc0330f63\u003e] _spin_unlock_irqrestore+0x4a/0x50\n [\u003cc0117aab\u003e] change_page_attr+0x577/0x584\n [\u003cc0117b45\u003e] kernel_map_pages+0x8d/0xb4\n [\u003cc016a314\u003e] cache_alloc_refill+0x53f/0x632\n [\u003cc016a6c2\u003e] __kmalloc+0xc1/0x10d\n [\u003cc0463d34\u003e] malloc+0x10/0x12\n [\u003cc04641c1\u003e] huft_build+0x2a7/0x5fa\n [\u003cc04645a5\u003e] inflate_fixed+0x91/0x136\n [\u003cc04657e2\u003e] unpack_to_rootfs+0x5f2/0x8c1\n [\u003cc0465acf\u003e] populate_rootfs+0x1e/0xe4\n\n(This was under Xen, but there\u0027s no reason it couldn\u0027t happen on bare\n  hardware.)\n\nThis patch mallocs the local variables, thereby reducing the stack\nusage to sane levels.\n\nAlso, up the heap size for the kernel decompressor to deal with the\nextra allocation.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Tim Yamin \u003cplasmaroo@gentoo.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\n"
    },
    {
      "commit": "4cdd9c8931767e1c56a51a1078d33a8c340f4405",
      "tree": "bf8b49009011bb2dffe9683dffdcbfe3b90375f9",
      "parents": [
        "1a45b7aaa5051489b46afbc48509bd91f8b4a1ba"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: drop unused ptep_get_and_clear\n\nIn shadow mode hypervisors, ptep_get_and_clear achieves the desired\npurpose of keeping the shadows in sync by issuing a native_get_and_clear,\nfollowed by a call to pte_update, which indicates the PTE has been\nmodified.\n\nDirect mode hypervisors (Xen) have no need for this anyway, and will trap\nthe update using writable pagetables.\n\nThis means no hypervisor makes use of ptep_get_and_clear; there is no\nreason to have it in the paravirt-ops structure.  Change confusing\nterminology about raw vs. native functions into consistent use of\nnative_pte_xxx for operations which do not invoke paravirt-ops.\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "1a45b7aaa5051489b46afbc48509bd91f8b4a1ba",
      "tree": "2e0f39a0f801b33a9fbccca2afe1beb9cfaa82be",
      "parents": [
        "4e0fa85602a4fa219fc3a9c053d5140bf987d3e3"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Clean up paravirt patchable wrappers\n\nReplace all the open-coded macros for generating calls with a pair of\nmore general macros (__PVOP_CALL/VCALL), and redefine all the\nPVOP_V?CALL[0-4] in terms of them.\n\n[ Andrew, Andi: this should slot in immediately after \"Document asm-i386/paravirt.h\"\n  (paravirt_ops-document-asm-i386-paravirth.patch) ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4e0fa85602a4fa219fc3a9c053d5140bf987d3e3",
      "tree": "834d782a6782ac9c038ef64dac5ab015f6bfbf2d",
      "parents": [
        "7b2f27f4e1818fad980da7bea688dca2b9e9c3f3"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Use enums for paravirt lazy flush modi\n\nRemove #defines, add enum for PARAVIRT_LAZY_FLUSH.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "7b2f27f4e1818fad980da7bea688dca2b9e9c3f3",
      "tree": "66c0a8c4a508eb679cd4ef9d1378c9542d5bbd05",
      "parents": [
        "ce6234b5298902aaec831a67d5f8d9bd2ef5a488"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: flush lazy mmu updates on kunmap_atomic\n\nkunmap_atomic should flush any pending lazy mmu updates, mainly to be\nconsistent with kmap_atomic, and to preserve its normal behaviour.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "ce6234b5298902aaec831a67d5f8d9bd2ef5a488",
      "tree": "939c22684e11a4f5f17abb89c4898f016e878e21",
      "parents": [
        "a27fe809b82c5e18932fcceded28d0d1481ce7bb"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: add kmap_atomic_pte for mapping highpte pages\n\nXen and VMI both have special requirements when mapping a highmem pte\npage into the kernel address space.  These can be dealt with by adding\na new kmap_atomic_pte() function for mapping highptes, and hooking it\ninto the paravirt_ops infrastructure.\n\nXen specifically wants to map the pte page RO, so this patch exposes a\nhelper function, kmap_atomic_prot, which maps the page with the\nspecified page protections.\n\nThis also adds a kmap_flush_unused() function to clear out the cached\nkmap mappings.  Xen needs this to clear out any potential stray RW\nmappings of pages which will become part of a pagetable.\n\n[ Zach - vmi.c will need some attention after this patch.  It wasn\u0027t\n  immediately obvious to me what needs to be done. ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\n"
    },
    {
      "commit": "a27fe809b82c5e18932fcceded28d0d1481ce7bb",
      "tree": "b4d33cd8b3f038a84534d4d3302c0704e3959599",
      "parents": [
        "d4c104771a1c58e3de2a888b73b0ba1b54c0ae76"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: revert map_pt_hook.\n\nBack out the map_pt_hook to clear the way for kmap_atomic_pte.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\n"
    },
    {
      "commit": "d4c104771a1c58e3de2a888b73b0ba1b54c0ae76",
      "tree": "77ca2c6771e946aa926cb21c06702fdc7d230364",
      "parents": [
        "63f70270ccd981ce40a8ff58c03a8c2e97e368be"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: add flush_tlb_others paravirt_op\n\nThis patch adds a pv_op for flush_tlb_others.  Linux running on native\nhardware uses cross-CPU IPIs to flush the TLB on any CPU which may\nhave a particular mm\u0027s pagetable entries cached in its TLB.  This is\ninefficient in a paravirtualized environment, since the hypervisor\nknows which real CPUs actually contain cached mappings, which may be a\nsmall subset of a guest\u0027s VCPUs.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "63f70270ccd981ce40a8ff58c03a8c2e97e368be",
      "tree": "7ffe766f25007845c99cfc337365c3006a153b83",
      "parents": [
        "294688c028e80fd467cdd22da79f62c5f311eaf5"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: add common patching machinery\n\nImplement the actual patching machinery.  paravirt_patch_default()\ncontains the logic to automatically patch a callsite based on a few\nsimple rules:\n\n - if the paravirt_op function is paravirt_nop, then patch nops\n - if the paravirt_op function is a jmp target, then jmp to it\n - if the paravirt_op function is callable and doesn\u0027t clobber too much\n    for the callsite, call it directly\n\nparavirt_patch_default is suitable as a default implementation of\nparavirt_ops.patch, will remove most of the expensive indirect calls\nin favour of either a direct call or a pile of nops.\n\nBackends may implement their own patcher, however.  There are several\nhelper functions to help with this:\n\nparavirt_patch_nop\tnop out a callsite\nparavirt_patch_ignore\tleave the callsite as-is\nparavirt_patch_call\tpatch a call if the caller and callee\n\t\t\thave compatible clobbers\nparavirt_patch_jmp\tpatch in a jmp\nparavirt_patch_insns\tpatch some literal instructions over\n\t\t\tthe callsite, if they fit\n\nThis patch also implements more direct patches for the native case, so\nthat when running on native hardware many common operations are\nimplemented inline.\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: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Anthony Liguori \u003canthony@codemonkey.ws\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "294688c028e80fd467cdd22da79f62c5f311eaf5",
      "tree": "3a2dcacf3f4f9997ae0032fb3c8342a2a7e5753d",
      "parents": [
        "f8822f42019eceed19cc6c0f985a489e17796ed8"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Document asm-i386/paravirt.h\n\nClean things up, and broadly document:\n - the paravirt_ops functions themselves\n - the patching mechanism\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\n"
    },
    {
      "commit": "f8822f42019eceed19cc6c0f985a489e17796ed8",
      "tree": "d47728ad3a41343912e4556e6abd5cd79d75b3aa",
      "parents": [
        "42c24fa22e86365055fc931d833f26165e687c19"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Consistently wrap paravirt ops callsites to make them patchable\n\nWrap a set of interesting paravirt_ops calls in a wrapper which makes\nthe callsites available for patching.  Unfortunately this is pretty\nugly because there\u0027s no way to get gcc to generate a function call,\nbut also wrap just the callsite itself with the necessary labels.\n\nThis patch supports functions with 0-4 arguments, and either void or\nreturning a value.  64-bit arguments must be split into a pair of\n32-bit arguments (lower word first).  Small structures are returned in\nregisters.\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: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Anthony Liguori \u003canthony@codemonkey.ws\u003e\n"
    },
    {
      "commit": "42c24fa22e86365055fc931d833f26165e687c19",
      "tree": "c74861202966ccb80afaae8469843cf2617fea65",
      "parents": [
        "d582203578a1f3d408e27bb9042e8635954cd320"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Fix patch site clobbers to include return register\n\nFix a few clobbers to include the return register.  The clobbers set\nis the set of all registers modified (or may be modified) by the code\nsnippet, regardless of whether it was deliberate or accidental.\n\nAlso, make sure that callsites which are used in contexts which don\u0027t\nallow clobbers actually save and restore all clobberable registers.\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: Zachary Amsden \u003czach@vmware.com\u003e\n"
    },
    {
      "commit": "d582203578a1f3d408e27bb9042e8635954cd320",
      "tree": "385952bdda8f9c2b6b4c9c659a0eba872749e948",
      "parents": [
        "98de032b681d8a7532d44dfc66aa5c0c1c755a9d"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Use patch site IDs computed from offset in paravirt_ops structure\n\nUse patch type identifiers derived from the offset of the operation in\nthe paravirt_ops structure.  This avoids having to maintain a separate\nenum for patch site types.\n\nAlso, since the identifier is derived from the offset into\nparavirt_ops, the offset can be derived from the identifier.  This is\nused to remove replicated information in the various callsite macros,\nwhich has been a source of bugs in the past.\n\nThis patch also drops the fused save_fl+cli operation, which doesn\u0027t\nreally add much and makes things more complex - specifically because\nit breaks the 1:1 relationship between identifiers and offsets.  If\nthis operation turns out to be particularly beneficial, then the right\nanswer is to define a new entrypoint for it.\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: Zachary Amsden \u003czach@vmware.com\u003e\n"
    },
    {
      "commit": "98de032b681d8a7532d44dfc66aa5c0c1c755a9d",
      "tree": "7e36cf682a113354427ad1076b38d0c3d0aebd8c",
      "parents": [
        "d6dd61c831226f9cd7750885da04d360d6455101"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: rename struct paravirt_patch to paravirt_patch_site for clarity\n\nRename struct paravirt_patch to paravirt_patch_site, so that it\nclearly refers to a callsite, and not the patch which may be applied\nto that callsite.\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: Zachary Amsden \u003czach@vmware.com\u003e\n"
    },
    {
      "commit": "d6dd61c831226f9cd7750885da04d360d6455101",
      "tree": "30f84a429821d207f7de5dd6225d3d9515042c0a",
      "parents": [
        "5311ab62cdc7788784971ed816ce85e926f3e994"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:14 2007 +0200"
      },
      "message": "[PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction\n\nAdd hooks to allow a paravirt implementation to track the lifetime of\nan mm.  Paravirtualization requires three hooks, but only two are\nneeded in common code.  They are:\n\narch_dup_mmap, which is called when a new mmap is created at fork\n\narch_exit_mmap, which is called when the last process reference to an\n  mm is dropped, which typically happens on exit and exec.\n\nThe third hook is activate_mm, which is called from the arch-specific\nactivate_mm() macro/function, and so doesn\u0027t need stub versions for\nother architectures.  It\u0027s called when an mm is first used.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: linux-arch@vger.kernel.org\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5311ab62cdc7788784971ed816ce85e926f3e994",
      "tree": "08ceda3c1bbdc6c403107f5329d775c772b752ce",
      "parents": [
        "90caccb9758e88db68a69553689baee38254287b"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Allow paravirt backend to choose kernel PMD sharing\n\nNormally when running in PAE mode, the 4th PMD maps the kernel address space,\nwhich can be shared among all processes (since they all need the same kernel\nmappings).\n\nXen, however, does not allow guests to have the kernel pmd shared between page\ntables, so parameterize pgtable.c to allow both modes of operation.\n\nThere are several side-effects of this.  One is that vmalloc will update the\nkernel address space mappings, and those updates need to be propagated into\nall processes if the kernel mappings are not intrinsically shared.  In the\nnon-PAE case, this is done by maintaining a pgd_list of all processes; this\nlist is used when all process pagetables must be updated.  pgd_list is\nthreaded via otherwise unused entries in the page structure for the pgd, which\nmeans that the pgd must be page-sized for this to work.\n\nNormally the PAE pgd is only 4x64 byte entries large, but Xen requires the PAE\npgd to page aligned anyway, so this patch forces the pgd to be page\naligned+sized when the kernel pmd is unshared, to accomodate both these\nrequirements.\n\nAlso, since there may be several distinct kernel pmds (if the user/kernel\nsplit is below 3G), there\u0027s no point in allocating them from a slab cache;\nthey\u0027re just allocated with get_free_page and initialized appropriately.  (Of\ncourse the could be cached if there is just a single kernel pmd - which is the\ndefault with a 3G user/kernel split - but it doesn\u0027t seem worthwhile to add\nyet another case into this code).\n\n[ Many thanks to wli for review comments. ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90caccb9758e88db68a69553689baee38254287b",
      "tree": "d58d07649c62475810cfa527768034163c89eb15",
      "parents": [
        "b239fb2501117bf3aeb4dd6926edd855be92333d"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Allocate a fixmap slot\n\nAllocate a fixmap slot for use by a paravirt_ops implementation.  This\nis intended for early-boot bootstrap mappings.  Once the zones and\nallocator have been set up, it would be better to use get_vm_area() to\nallocate some virtual space.\n\nXen uses this to map the hypervisor\u0027s shared info page, which doesn\u0027t\nhave a pseudo-physical page number, and therefore can\u0027t be mapped\nordinarily.  It is needed early because it contains the vcpu state,\nincluding the interrupt mask.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b239fb2501117bf3aeb4dd6926edd855be92333d",
      "tree": "62ac25204632ef0b14e3bd84580c722e69800cf7",
      "parents": [
        "3dc494e86d1c93afd4c66385f270899dbfae483d"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Hooks to set up initial pagetable\n\nThis patch introduces paravirt_ops hooks to control how the kernel\u0027s\ninitial pagetable is set up.\n\nIn the case of a native boot, the very early bootstrap code creates a\nsimple non-PAE pagetable to map the kernel and physical memory.  When\nthe VM subsystem is initialized, it creates a proper pagetable which\nrespects the PAE mode, large pages, etc.\n\nWhen booting under a hypervisor, there are many possibilities for what\npaging environment the hypervisor establishes for the guest kernel, so\nthe constructon of the kernel\u0027s pagetable depends on the hypervisor.\n\nIn the case of Xen, the hypervisor boots the kernel with a fully\nconstructed pagetable, which is already using PAE if necessary.  Also,\nXen requires particular care when constructing pagetables to make sure\nall pagetables are always mapped read-only.\n\nIn order to make this easier, kernel\u0027s initial pagetable construction\nhas been changed to only allocate and initialize a pagetable page if\nthere\u0027s no page already present in the pagetable.  This allows the Xen\nparavirt backend to make a copy of the hypervisor-provided pagetable,\nallowing the kernel to establish any more mappings it needs while\nkeeping the existing ones.\n\nA slightly subtle point which is worth highlighting here is that Xen\nrequires all kernel mappings to share the same pte_t pages between all\npagetables, so that updating a kernel page\u0027s mapping in one pagetable\nis reflected in all other pagetables.  This makes it possible to\nallocate a page and attach it to a pagetable without having to\nexplicitly enumerate that page\u0027s mapping in all pagetables.\n\nAnd:\n\n+From: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n\nIf we don\u0027t set the leaf page table entries it is quite possible that\nwill inherit and incorrect page table entry from the initial boot\npage table setup in head.S.  So we need to redo the effort here,\nso we pick up PSE, PGE and the like.\n\nHypervisors like Xen require that their page tables be read-only,\nwhich is slightly incompatible with our low identity mappings, however\nI discussed this with Jeremy he has modified the Xen early set_pte\nfunction to avoid problems in this area.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: William Irwin \u003cbill.irwin@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3dc494e86d1c93afd4c66385f270899dbfae483d",
      "tree": "6583b57492dc91ef7cc6c23a233f7d5bb95bb5f6",
      "parents": [
        "45876233605c268e929a7875081e129debe34bdc"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Add pagetable accessors to pack and unpack pagetable entries\n\nAdd a set of accessors to pack, unpack and modify page table entries\n(at all levels).  This allows a paravirt implementation to control the\ncontents of pgd/pmd/pte entries.  For example, Xen uses this to\nconvert the (pseudo-)physical address into a machine address when\npopulating a pagetable entry, and converting back to pphys address\nwhen an entry is read.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45876233605c268e929a7875081e129debe34bdc",
      "tree": "c16487f8e8428e86ecf9802c8ba0da82225622ee",
      "parents": [
        "7f63c41c6c57371a0931da3940c6620c2301442c"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: use paravirt_nop to consistently mark no-op operations\n\nAdd a _paravirt_nop function for use as a stub for no-op operations,\nand paravirt_nop #defined void * version to make using it easier\n(since all its uses are as a void *).\n\nThis is useful to allow the patcher to automatically identify noop\noperations so it can simply nop out the callsite.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n[mingo] but only as a cleanup of the current open-coded (void *) casts.\nMy problem with this is that it loses the types. Not that there is much\nto check for, but still, this adds some assumptions about how function\ncalls look like\n"
    },
    {
      "commit": "7f63c41c6c57371a0931da3940c6620c2301442c",
      "tree": "57e394455667c61213cfeea3c40c4dfcd1bd973d",
      "parents": [
        "4cdf6bc2476157f397f3b71a9bd4e23c7a7aaf80"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: Remove CONFIG_DEBUG_PARAVIRT\n\nRemove CONFIG_DEBUG_PARAVIRT.  When inlining code, this option\nattempts to trash registers in the patch-site\u0027s \"clobber\" field, on\nthe grounds that this should find bugs with incorrect clobbers.\nUnfortunately, the clobber field really means \"registers modified by\nthis patch site\", which includes return values.\n\nBecause of this, this option has outlived its usefulness, so remove\nit.\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\n"
    },
    {
      "commit": "4cdf6bc2476157f397f3b71a9bd4e23c7a7aaf80",
      "tree": "1906eb86e6bff00e104ed4323f0cfde415b08fb4",
      "parents": [
        "a75c54f933bd8db9f4a609bd128663c179b3e6a1"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] x86-64: update MAINTAINERS\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a75c54f933bd8db9f4a609bd128663c179b3e6a1",
      "tree": "8b7dd866185bec34146eb537f057b6b496c78443",
      "parents": [
        "82d1bb725e128c97b362a4b33fcbfff08fdaaa5a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: i386 separate hardware-defined TSS from Linux additions\n\nOn Thu, 2007-03-29 at 13:16 +0200, Andi Kleen wrote:\n\u003e Please clean it up properly with two structs.\n\nNot sure about this, now I\u0027ve done it.  Running it here.\n\nIf you like it, I can do x86-64 as well.\n\n\u003d\u003d\nlguest defines its own TSS struct because the \"struct tss_struct\"\ncontains linux-specific additions.  Andi asked me to split the struct\nin processor.h.\n\nUnfortunately it makes usage a little awkward.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "82d1bb725e128c97b362a4b33fcbfff08fdaaa5a",
      "tree": "18f66f80297624063b16c8c3a5c0e47f470b2c85",
      "parents": [
        "1c3d99c11c47c8a1a9ed6a46555dbf6520683c52"
      ],
      "author": {
        "name": "James Puthukattukaran",
        "email": "James.Puthukattukaran@sun.com",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] x86-64: x86-64 system crashes when no memory populating Node 0\n\nI have a 4 socket AMD Operton system. The 2.6.18 kernel I have crashes\nwhen there is no memory in node0.\n\nAK: changed call to _nopanic\n\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "1c3d99c11c47c8a1a9ed6a46555dbf6520683c52",
      "tree": "bf5b724aba16142aa1ca761a7dcfa958ccdd088f",
      "parents": [
        "b7fb4af06c18496950a45b365f7a09c47ea64c17"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] x86-64: Fix x86_64 compilation with DEBUG_SIG on\n\nSetting the DEBUG_SIG flag breaks compilation due to a wrong\nstruct access. Aditionally, it raises two warnings. This is one\npatch to fix them all.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "b7fb4af06c18496950a45b365f7a09c47ea64c17",
      "tree": "2ea129cad7d28482c9b8582476a62cdce139571f",
      "parents": [
        "d0175ab64412aabc93da8682aaa99124d6815056"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: Allow boot-time disable of SMP altinstructions\n\nAdd \"noreplace-smp\" to disable SMP instruction replacement.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "d0175ab64412aabc93da8682aaa99124d6815056",
      "tree": "46607da58133cb1d51883bf91e13b108f20bfb90",
      "parents": [
        "4bc5aa91fb1e544ad37805520030a0d9fc6e11d3"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:13 2007 +0200"
      },
      "message": "[PATCH] i386: Remove smp_alt_instructions\n\nThe .smp_altinstructions section and its corresponding symbols are\ncompletely unused, so remove them.\n\nAlso, remove stray #ifdef __KENREL__ in asm-i386/alternative.h\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "4bc5aa91fb1e544ad37805520030a0d9fc6e11d3",
      "tree": "207870aad2f53fcec914ea5084de4fdfe1a02a23",
      "parents": [
        "b6e3590f8145c77b8fcef3247e2412335221412f"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86: Clean up x86 control register and MSR macros (corrected)\n\nThis patch is based on Rusty\u0027s recent cleanup of the EFLAGS-related\nmacros; it extends the same kind of cleanup to control registers and\nMSRs.\n\nIt also unifies these between i386 and x86-64; at least with regards\nto MSRs, the two had definitely gotten out of sync.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "b6e3590f8145c77b8fcef3247e2412335221412f",
      "tree": "47fb1a28e41fd9f4e1aef45b5482b69b8d7c154e",
      "parents": [
        "de90c5ce832b1218042316260ff9268b00fdcba3"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86: Allow percpu variables to be page-aligned\n\nLet\u0027s allow page-alignment in general for per-cpu data (wanted by Xen, and\nIngo suggested KVM as well).\n\nBecause larger alignments can use more room, we increase the max per-cpu\nmemory to 64k rather than 32k: it\u0027s getting a little tight.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de90c5ce832b1218042316260ff9268b00fdcba3",
      "tree": "604d161cfb3eb01b8d3ea1c22087c1c476f24091",
      "parents": [
        "d479d2cc0802d5c8546a6a7492646e08228effd5"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] i386: Enable bank 0 on non K7 Athlon\n\nAs a bug workaround bank 0 on K7s is normally disabled, but no need\nto do that on other AMD CPUs.\n\nCc: davej@redhat.com\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "d479d2cc0802d5c8546a6a7492646e08228effd5",
      "tree": "011ce3f6578b5b9e90e020e017baf64a7e903ed1",
      "parents": [
        "7946331856f99bdb00b0a0a53e97d9b621546622"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] i386: Update smp_call_function* comments\n\nUpdate documentation for i386 smp_call_function* functions.\n\nAs reported by Randy Dunlap \u003crdunlap@xenotime.net\u003e\n\n[ I\u0027ve posted this before but it seems to have been lost along the way. ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n"
    },
    {
      "commit": "7946331856f99bdb00b0a0a53e97d9b621546622",
      "tree": "21e13bedb0d8f0d29e742e9ebde5842d6105ab03",
      "parents": [
        "f039b754714a422959027cb18bb33760eb8153f0"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] i386: Use menuconfig objects - APM\n\n(I hope Andi is the right one to Cc, otherwise please add, thanks!)\n\nUse menuconfigs instead of menus, so the whole menu can be disabled at\nonce instead of going through all options.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "f039b754714a422959027cb18bb33760eb8153f0",
      "tree": "c5f28502adf35f5ea7738a974cd7c4fc81e1dd21",
      "parents": [
        "c169859d6dfc7471ef9f2dbd720936e17906a084"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86: Don\u0027t use MWAIT on AMD Family 10\n\nIt doesn\u0027t put the CPU into deeper sleep states, so it\u0027s better to use the standard\nidle loop to save power. But allow to reenable it anyways for benchmarking.\n\nI also removed the obsolete idle\u003dhalt on i386\n\nCc: andreas.herrmann@amd.com\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "c169859d6dfc7471ef9f2dbd720936e17906a084",
      "tree": "9bfccace84a76c4887faf07a82324643ee954252",
      "parents": [
        "1dbf527c51c6c20c19869c8125cb5b87c3d09506"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86-64: Clean up asm-x86_64/bugs.h\n\nMost of asm-x86_64/bugs.h is code which should be in a C file, so put it there.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1dbf527c51c6c20c19869c8125cb5b87c3d09506",
      "tree": "ab480b3eff886e54c6d3c881936f046599e7ea61",
      "parents": [
        "d4f7a2c18e59e0304a1c733589ce14fc02fec1bd"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] i386: Make COMPAT_VDSO runtime selectable.\n\nNow that relocation of the VDSO for COMPAT_VDSO users is done at\nruntime rather than compile time, it is possible to enable/disable\ncompat mode at runtime.\n\nThis patch allows you to enable COMPAT_VDSO mode with \"vdso\u003d2\" on the\nkernel command line, or via sysctl.  (Switching on a running system\nshouldn\u0027t be done lightly; any process which was relying on the compat\nVDSO will be upset if it goes away.)\n\nThe COMPAT_VDSO config option still exists, but if enabled it just\nmakes vdso_enabled default to VDSO_COMPAT.\n\n+From: Hugh Dickins \u003chugh@veritas.com\u003e\n\nFix oops from i386-make-compat_vdso-runtime-selectable.patch.\n\nEven mingetty at system startup finds it easy to trigger an oops\nwhile reading /proc/PID/maps: though it has a good hold on the mm\nitself, that cannot stop exit_mm() from resetting tsk-\u003emm to NULL.\n\n(It is usually show_map()\u0027s call to get_gate_vma() which oopses,\nand I expect we could change that to check priv-\u003etail_vma instead;\nbut no matter, even m_start()\u0027s call just after get_task_mm() is racy.)\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: \"Jan Beulich\" \u003cJBeulich@novell.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\n"
    },
    {
      "commit": "d4f7a2c18e59e0304a1c733589ce14fc02fec1bd",
      "tree": "99c64275f7eb50925aad71a74ae083ececdbb795",
      "parents": [
        "a6c4e076ee4c1ea670e4faa55814e63dd08e3f29"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] i386: Relocate VDSO ELF headers to match mapped location with COMPAT_VDSO\n\nSome versions of libc can\u0027t deal with a VDSO which doesn\u0027t have its\nELF headers matching its mapped address.  COMPAT_VDSO maps the VDSO at\na specific system-wide fixed address.  Previously this was all done at\nbuild time, on the grounds that the fixed VDSO address is always at\nthe top of the address space.  However, a hypervisor may reserve some\nof that address space, pushing the fixmap address down.\n\nThis patch does the adjustment dynamically at runtime, depending on\nthe runtime location of the VDSO fixmap.\n\n[ Patch has been through several hands: Jan Beulich wrote the orignal\n  version; Zach reworked it, and Jeremy converted it to relocate phdrs\n  as well as sections. ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: \"Jan Beulich\" \u003cJBeulich@novell.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\n"
    },
    {
      "commit": "a6c4e076ee4c1ea670e4faa55814e63dd08e3f29",
      "tree": "42ae132ca8ad99b05904af07ed8abc6aeef33aa8",
      "parents": [
        "1353ebb4b48151e3810d9a60449edd43a90ea3c3"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] i386: clean up identify_cpu\n\nidentify_cpu() is used to identify both the boot CPU and secondary\nCPUs, but it performs some actions which only apply to the boot CPU.\nThose functions are therefore really __init functions, but because\nthey\u0027re called by identify_cpu(), they must be marked __cpuinit.\n\nThis patch splits identify_cpu() into identify_boot_cpu() and\nidentify_secondary_cpu(), and calls the appropriate init functions\nfrom each.  Also, identify_boot_cpu() and all the functions it\ndominates are marked __init.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "1353ebb4b48151e3810d9a60449edd43a90ea3c3",
      "tree": "eb21d594e0aa029e38a3a79d47ed17c3d2d67f7d",
      "parents": [
        "0d08e0d3a97cce22ebf80b54785e00d9b94e1add"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] i386: Clean up asm-i386/bugs.h\n\nMost of asm-i386/bugs.h is code which should be in a C file, so put it there.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d08e0d3a97cce22ebf80b54785e00d9b94e1add",
      "tree": "341ce0f925a6f922118eac2c9a9c9c3e4a345d9b",
      "parents": [
        "bbf30a1650be396b5467f769f4fbee715f16ec36"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86-64: Fix vmalloc_32 to really allocate \u003c4GB on 64bit platforms\n\nUgly ifdef, but should handle all 64bit platforms that have suitable\nzones. On some like Altix it\u0027s probably impossible without IOMMU\nuse to get memory \u003c4GB this way,  but they have to live with that.\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "bbf30a1650be396b5467f769f4fbee715f16ec36",
      "tree": "921a78a3767ff5f5008079a19316c853b258b6a5",
      "parents": [
        "5d02d7ae73ac9446f20bbf604b04a74637178b35"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86-64: fix arithmetic in comment\n\nThe xmm space on x86_64 is 256 bytes.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "5d02d7ae73ac9446f20bbf604b04a74637178b35",
      "tree": "aa9567f82def28a452f7625e5a5cc6078148c9cd",
      "parents": [
        "b92e9fac400d4ae5bc7a75c568e9844ec53ea329"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "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: Use X86_EFLAGS_IF in x86-64/irqflags.h.\n\nAs per i386 patch: move X86_EFLAGS_IF et al out to a new header:\nprocessor-flags.h, so we can include it from irqflags.h and use it in\nraw_irqs_disabled_flags().\n\nAs a side-effect, we could now use these flags in .S files.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "b92e9fac400d4ae5bc7a75c568e9844ec53ea329",
      "tree": "2e5d5194d2532a4d8d4849802e19adcc617013f6",
      "parents": [
        "b00742d399513a4100c24cc2accefdc1bb1e0b15"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "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: fix amd64-agp aperture validation\n\nUnder CONFIG_DISCONTIGMEM, assuming that a !pfn_valid() implies all\nsubsequent pfn-s are also invalid is wrong. Thus replace this by\nexplicitly checking against the E820 map.\n\nAK: make e820 on x86-64 not initdata\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Mark Langsdorf \u003cmark.langsdorf@amd.com\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": "bbba11c35baaad3f70f32e185a2c1d40d7901fe9",
      "tree": "4c97efda9890db1c6d29ffd0297646f0bd2ded25",
      "parents": [
        "43c3ab308d0e8e6ad9a5fb24020eb59cd423a3db"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "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] i386: Remove unneeded externs in nmi.c\n\nAll were already in some header\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "43c3ab308d0e8e6ad9a5fb24020eb59cd423a3db",
      "tree": "3edd3277118bb1489f25f9f4ff817f53182f819a",
      "parents": [
        "07f3331c6bfd27a06dfb0ca9fa4f06dec6606876"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "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: Change my email address\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "07f3331c6bfd27a06dfb0ca9fa4f06dec6606876",
      "tree": "e68ced26e1c1bebef4c1eb75f5a4a6a1ac0d3805",
      "parents": [
        "01a2f435564b4baab61328b4018d36464468f57b"
      ],
      "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] i386: Add machine_ops interface to abstract halting and rebooting\n\nmachine_ops is an interface for the machine_* functions defined in\n\u003clinux/reboot.h\u003e.  This is intended to allow hypervisors to intercept\nthe reboot process, but it could be used to implement other x86\nsubarchtecture reboots.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "01a2f435564b4baab61328b4018d36464468f57b",
      "tree": "991f6a1604a203736131b855262d78fb75711f9b",
      "parents": [
        "4fbb5968810b237e81977f131986b9efd5245368"
      ],
      "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] i386: Add smp_ops interface\n\nAdd a smp_ops interface.  This abstracts the API defined by\n\u003clinux/smp.h\u003e for use within arch/i386.  The primary intent is that it\nbe used by a paravirtualizing hypervisor to implement SMP, but it\ncould also be used by non-APIC-using sub-architectures.\n\nThis is related to CONFIG_PARAVIRT, but is implemented unconditionally\nsince it is simpler that way and not a highly performance-sensitive\ninterface.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4fbb5968810b237e81977f131986b9efd5245368",
      "tree": "e2d67eee96c143da26ccad791b3e1f23c3bcbe03",
      "parents": [
        "141f9cfe0a948c8fe26e5669364ee62c03ea42e8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "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] i386: cleanup GDT Access\n\nNow we have an explicit per-cpu GDT variable, we don\u0027t need to keep the\ndescriptors around to use them to find the GDT: expose cpu_gdt directly.\n\nWe could go further and make load_gdt() pack the descriptor for us, or even\nassume it means \"load the current cpu\u0027s GDT\" which is what it always does.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "141f9cfe0a948c8fe26e5669364ee62c03ea42e8",
      "tree": "eda2657ffd64f4545a0dc0065281147715de9328",
      "parents": [
        "dd4ecfc2b10d962d70ff59f8994a29aa048700ec"
      ],
      "author": {
        "name": "Bernhard Walle",
        "email": "bwalle@suse.de",
        "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: Fix \"Section mismatch\" compile warning\n\nFix \"Section mismatch\" warnings in arch/x86_64/kernel/time.c\n\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "dd4ecfc2b10d962d70ff59f8994a29aa048700ec",
      "tree": "9587f00c4028b90eead438b278bc95af07ee9355",
      "parents": [
        "ae32b1297a77c23fd0badd642bb685062f7a37f8"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "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: adjust EDID retrieval\n\ncommit 5e518d7672dea4cd7c60871e40d0490c52f01d13 did the same change to\ni386\u0027s variant.\n\nWith this change, i386\u0027s and x86-64\u0027s versions are identical, raising\nthe question whether the x86-64 one should go (just like there\u0027s only\none instance of edd.S).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "ae32b1297a77c23fd0badd642bb685062f7a37f8",
      "tree": "b0af833455b81fc743e5b79789b25f7ba9cbde61",
      "parents": [
        "c8118c6c07f2edfd697aaa0b93e08c3b65a5a675"
      ],
      "author": {
        "name": "Konrad Rzeszutek",
        "email": "konrad@darnok.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: Inhibit machine from asserting an NMI when doing Alt-SysRq-M operation.\n\nThis patch touches the NMI watchdog every MAX_ORDER_NR_PAGES\nto inhibit the machine from triggering an NMI while the CPUs\nare locked. This situation is happening on boxes with more\nthan 64CPUs and 128GB of RAM when Alt-SysRq-m is performed.\n\nIt has been succesfully tested for regression on uni, 2, 4, 8\n32, and 64 CPU boxes with various memory configuration.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "c8118c6c07f2edfd697aaa0b93e08c3b65a5a675",
      "tree": "efba31a24e3f2c629f727d53767fb18aaab915e2",
      "parents": [
        "272a3713bb9e302e0455c894c41180a482d2c8a3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "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: vsyscall_gtod_data diet and vgettimeofday() fix\n\nCurrent vsyscall_gtod_data is large (3 or 4 cache lines dirtied at timer\ninterrupt). We can shrink it to exactly 64 bytes (1 cache line on AMD64)\n\nInstead of copying a whole struct clocksource, we copy only needed fields.\n\nI deleted an unused field : offset_base\n\nThis patch fixes one oddity in vgettimeofday(): It can returns a timeval with\ntv_usec \u003d 1000000. Maybe not a bug, but why not doing the right thing ?\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "272a3713bb9e302e0455c894c41180a482d2c8a3",
      "tree": "2dad036c75c0523db5f5f0f9618f4f3b9f21e28c",
      "parents": [
        "bd8559c38ee5be40ce2c57a80fd3c3e978cca267"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "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: fix vtime() vsyscall\n\nThere is a tiny probability that the return value from vtime(time_t *t) is\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n\ndifferent than the value stored in *t\n\nUsing a temporary variable solves the problem and gives a faster code.\n\n   17:   48 85 ff                test   %rdi,%rdi\n   1a:   48 8b 05 00 00 00 00    mov    0(%rip),%rax        #\n__vsyscall_gtod_data.wall_time_tv.tv_sec\n   21:   74 03                   je     26\n   23:   48 89 07                mov    %rax,(%rdi)\n   26:   c9                      leaveq\n   27:   c3                      retq\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\n"
    },
    {
      "commit": "bd8559c38ee5be40ce2c57a80fd3c3e978cca267",
      "tree": "136a577e359b31ae198bee3b0c6e0daf34208a1d",
      "parents": [
        "ca906e42312781c38b7a9625109fc65b937ca56c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "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: remove UNEXPECTED_IO_APIC()\n\nMany years ago, UNEXPECTED_IO_APIC() contained printk()\u0027s (but nothing more).\n\nNow that it\u0027s completely empty for years, we can as well remove it.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "ca906e42312781c38b7a9625109fc65b937ca56c",
      "tree": "16d0ce813e9765df803a83cc6584be541157928f",
      "parents": [
        "2bff73830c3df5f575d3bc21bf19df1a10bf7091"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] x86: sys_ioperm() prototype cleanup\n\n- there\u0027s no reason for duplicating the prototype from\n  include/linux/syscalls.h in include/asm-x86_64/unistd.h\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\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "2bff73830c3df5f575d3bc21bf19df1a10bf7091",
      "tree": "aac7c05edb493a31d3b709462a2091ef16c0cbb3",
      "parents": [
        "05f36927eddd83e2840a981ef4d9af754dcb86e9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] x86-64: use lru instead of page-\u003eindex and page-\u003eprivate for pgd lists management.\n\nx86_64 currently simulates a list using the index and private fields of the\npage struct.  Seems that the code was inherited from i386.  But x86_64 does\nnot use the slab to allocate pgds and pmds etc.  So the lru field is not\nused by the slab and therefore available.\n\nThis patch uses standard list operations on page-\u003elru to realize pgd\ntracking.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05f36927eddd83e2840a981ef4d9af754dcb86e9",
      "tree": "41e34a1c01d385d9296ac137e2a9722cec43cd3d",
      "parents": [
        "b8716890f35dd567a3f8e4dd69c428a8b3f47814"
      ],
      "author": {
        "name": "Parag Warudkar",
        "email": "parag.warudkar@gmail.com",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: remove the APM_RTC_IS_GMT config option.\n\nSigned-off-by: Parag Warudkar \u003cparag.warudkar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "b8716890f35dd567a3f8e4dd69c428a8b3f47814",
      "tree": "e80fed6d8be6037cda456543a14d445fe62bf58a",
      "parents": [
        "b4531e863dbd06b5d336afefdb37483b690dea59"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] x86-64: Remove unused stext symbol\n\nsuggested by Jan Beulich\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "b4531e863dbd06b5d336afefdb37483b690dea59",
      "tree": "31d481e2b1b9727b6ee180ce876b73fbc0983a15",
      "parents": [
        "78eea47ac3e256559d97f0c2434928be39cba524"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: Use X86_EFLAGS_IF in irqflags.h.\n\nMove X86_EFLAGS_IF et al out to a new header: processor-flags.h, so we\ncan include it from irqflags.h and use it in raw_irqs_disabled_flags().\n\nAs a side-effect, we could now use these flags in .S files.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "78eea47ac3e256559d97f0c2434928be39cba524",
      "tree": "58e74ac5ea8919a8b28b8ccf736fbc1ab906107c",
      "parents": [
        "6fb14755a676282a4e6caa05a08c92db8e45cfff"
      ],
      "author": {
        "name": "Parag Warudkar",
        "email": "parag.warudkar@gmail.com",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: get rid of unused variables\n\nSigned-off-by: Parag Warudkar \u003cparag.warudkar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "6fb14755a676282a4e6caa05a08c92db8e45cfff",
      "tree": "71a862edf87cafe61986c0aff90db72045cf14c3",
      "parents": [
        "d01ad8dd56527be72947b4b9997bb2c05783c3ed"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] x86: tighten kernel image page access rights\n\nOn x86-64, kernel memory freed after init can be entirely unmapped instead\nof just getting \u0027poisoned\u0027 by overwriting with a debug pattern.\n\nOn i386 and x86-64 (under CONFIG_DEBUG_RODATA), kernel text and bug table\ncan also be write-protected.\n\nCompared to the first version, this one prevents re-creating deleted\nmappings in the kernel image range on x86-64, if those got removed\npreviously. This, together with the original changes, prevents temporarily\nhaving inconsistent mappings when cacheability attributes are being\nchanged on such pages (e.g. from AGP code). While on i386 such duplicate\nmappings don\u0027t exist, the same change is done there, too, both for\nconsistency and because checking pte_present() before using various other\npte_XXX functions is a requirement anyway. At once, i386 code gets\nadjusted to use pte_huge() instead of open coding this.\n\nAK: split out cpa() changes\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "d01ad8dd56527be72947b4b9997bb2c05783c3ed",
      "tree": "4bb9ad792fae974101d0baec755202eebc8181aa",
      "parents": [
        "90a0a06aa81692028864c21f981905fda46b1208"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] x86: Improve handling of kernel mappings in change_page_attr\n\nFix various broken corner cases in i386 and x86-64 change_page_attr.\n\nAK: split off from tighten kernel image access rights\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "90a0a06aa81692028864c21f981905fda46b1208",
      "tree": "516528b328d5288ee057d1eff5491e2ba1b49af1",
      "parents": [
        "52de74dd3994e165ef1b35c33d54655a6400e30c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: rationalize paravirt wrappers\n\nparavirt.c used to implement native versions of all low-level\nfunctions.  Far cleaner is to have the native versions exposed in the\nheaders and as inline native_XXX, and if !CONFIG_PARAVIRT, then simply\n#define XXX native_XXX.\n\nThere are several nice side effects:\n\n1) write_dt_entry() now takes the correct \"struct Xgt_desc_struct *\"\n   not \"void *\".\n\n2) load_TLS is reintroduced to the for loop, not manually unrolled\n   with a #error in case the bounds ever change.\n\n3) Macros become inlines, with type checking.\n\n4) Access to the native versions is trivial for KVM, lguest, Xen and\n   others who might want it.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52de74dd3994e165ef1b35c33d54655a6400e30c",
      "tree": "3a8f43f49826b637864e019bcb66f4c09dc6d0e5",
      "parents": [
        "d2cbcc49e2bfd6eaa44d7e4e5e5f171aaa5ec80d"
      ],
      "author": {
        "name": "Sebastien Dugue",
        "email": "sebastien.dugue@bull.net",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: Rename boot_gdt_table to boot_gdt\n\nRename boot_gdt_table to boot_gdt to avoid the duplicate T(able).\n\nSigned-off-by: Sebastien Dugue \u003csebastien.dugue@bull.net\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2cbcc49e2bfd6eaa44d7e4e5e5f171aaa5ec80d",
      "tree": "f7fb6a01cde18200aa6db57c3abffe69ae90b394",
      "parents": [
        "bf50467204b435421d8de33ad080fa46c6f3d50b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: clean up cpu_init()\n\nWe now have cpu_init() and secondary_cpu_init() doing nothing but calling\n_cpu_init() with the same arguments.  Rename _cpu_init() to cpu_init() and use\nit as a replcement for secondary_cpu_init().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf50467204b435421d8de33ad080fa46c6f3d50b",
      "tree": "87a27c6f23f28d0e7dacee4ac45986e897d244a8",
      "parents": [
        "ae1ee11be77f51cedb6c569887dddc70c163ab6d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: Use per-cpu GDT immediately upon boot\n\nNow we are no longer dynamically allocating the GDT, we don\u0027t need the\n\"cpu_gdt_table\" at all: we can switch straight from \"boot_gdt_table\" to the\nper-cpu GDT.  This means initializing the cpu_gdt array in C.\n\nThe boot CPU uses the per-cpu var directly, then in smp_prepare_cpus() it\nswitches to the per-cpu copy just allocated.  For secondary CPUs, the\nearly_gdt_descr is set to point directly to their per-cpu copy.\n\nFor UP the code is very simple: it keeps using the \"per-cpu\" GDT as per SMP,\nbut we never have to move.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae1ee11be77f51cedb6c569887dddc70c163ab6d",
      "tree": "e579a6a6d10c6835cab9af47a2795bf40f669da6",
      "parents": [
        "8f9aeca7a081d81c4c9862be1e04f15b5ab5461f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: Use per-cpu variables for GDT, PDA\n\nAllocating PDA and GDT at boot is a pain.  Using simple per-cpu variables adds\nhappiness (although we need the GDT page-aligned for Xen, which we do in a\nfollowup patch).\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f9aeca7a081d81c4c9862be1e04f15b5ab5461f",
      "tree": "49b802b90aca5b170aba5734ef99344a90426b01",
      "parents": [
        "79e030114a8d97a1dcd593ab84fb986f8c91c536"
      ],
      "author": {
        "name": "Bernhard Walle",
        "email": "bwalle@suse.de",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] x86: add command line length to boot protocol\n\nBecause the command line is increased to 2048 characters after 2.6.21, it\u0027s\nnot possible for boot loaders and userspace tools to determine the length\nof the command line the kernel can understand.  The benefit of knowing the\nlength is that users can be warned if the command line size is too long\nwhich prevents surprise if things don\u0027t work after bootup.\n\nThis patch updates the boot protocol to contain a field called\n\"cmdline_size\" that contain the length of the command line (excluding the\nterminating zero).\n\nThe patch also adds missing fields (of protocol version 2.05) to the x86_64\nsetup code.\n\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Alon Bar-Lev \u003calon.barlev@gmail.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79e030114a8d97a1dcd593ab84fb986f8c91c536",
      "tree": "ae96f84611dd963c11ce2962a67197030ddd0f3e",
      "parents": [
        "eab0c72aecd7982b2c848f7d493ba379efcef15e"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@xensource.com",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] i386: Allow i386 crash kernels to handle x86_64 dumps\n\nThe specific case I am encountering is kdump under Xen with a 64 bit\nhypervisor and 32 bit kernel/userspace.  The dump created is 64 bit due to\nthe hypervisor but the dump kernel is 32 bit for maximum compatibility.\n\nIt\u0027s possibly less likely to be useful in a purely native scenario but I\nsee no reason to disallow it.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Ian Campbell \u003cian.campbell@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nCc: Horms \u003chorms@verge.net.au\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eab0c72aecd7982b2c848f7d493ba379efcef15e",
      "tree": "760b05a1f4446a8a1d316d7534b94b18b8bb1b69",
      "parents": [
        "692174b97d5b871f4b0f648b1fb17aa37b955876"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] x86-64: Introduce load_TLS to the \"for\" loop.\n\nGCC (4.1 at least) unrolls it anyway, but I can\u0027t believe this code\nwas ever justifiable.  (I\u0027ve also submitted a patch which cleans up\ni386, which is even uglier).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "692174b97d5b871f4b0f648b1fb17aa37b955876",
      "tree": "17a91a0549cb5dbd22b7375becd937ee13d193d4",
      "parents": [
        "1b523fb54977c9bb81b16c4badce581a2b455994"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] i386: Initialize esp0 properly all the time\n\nWhenever we schedule, __switch_to calls load_esp0 which does:\n\n\ttss-\u003eesp0 \u003d thread-\u003eesp0;\n\nThis is never initialized for the initial thread (ie \"swapper\"), so when we\u0027re\nscheduling that, we end up setting esp0 to 0.  This is fine: the swapper never\nleaves ring 0, so this field is never used.\n\nlguest, however, gets upset that we\u0027re trying to used an unmapped page as our\nkernel stack.  Rather than work around it there, let\u0027s initialize it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b523fb54977c9bb81b16c4badce581a2b455994",
      "tree": "7d469a02e108ccf40bbb8e2a1c354556c7d8ba42",
      "parents": [
        "20280195f2a3d80c42a190959ca22108c93cd7e0"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] i386: VDSO_PRELINK warning fix\n\nThe lguest patches somehow managed to trigger this:\n\nIn file included from arch/i386/lguest/lguest.c:38:\ninclude/asm/asm-offsets.h:67:1: warning: \"VDSO_PRELINK\" redefined\nIn file included from include/linux/elf.h:7,\n                 from include/linux/module.h:15,\n                 from include/linux/device.h:21,\n                 from include/linux/interrupt.h:15,\n                 from arch/i386/lguest/lguest.c:27:\ninclude/asm/elf.h:140:1: warning: this is the location of the previous definition\n\nI assume that using the same identifier twice was a bad idea..\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "20280195f2a3d80c42a190959ca22108c93cd7e0",
      "tree": "5cfb384cf22c94f854a3a58acdb2b5341361e8bc",
      "parents": [
        "d824395c5994adbf7efe377cc67f732133270554"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] x86-64: fake numa for cpusets document\n\nCreate a document to explain how to use numa\u003dfake in conjunction with cpusets\nfor coarse memory resource management.\n\nAn attempt to get more awareness and testing for this feature.\n\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d824395c5994adbf7efe377cc67f732133270554",
      "tree": "3d302ae501288f75778008ac9399e162311030ad",
      "parents": [
        "382591d500bbcd20a44416c5e0e292708468587c"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] x86: remove constant_tsc reporting from /proc/cpuinfo\u0027 power flags\n\nremove the reporting of the constant_tsc flag from the \"power management\"\nfield in /proc/cpuinfo.  The NULL value there was replaced by \"\" because\nthe former would result in a printout of [8] if the flag is set.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "382591d500bbcd20a44416c5e0e292708468587c",
      "tree": "deb996c4dca98cf36c432ddb710719f7d0202252",
      "parents": [
        "14694d736bb66d0ec250d05c81c6e98a19c229c6"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] x86-64: fixed size remaining fake nodes\n\nExtends the numa\u003dfake x86_64 command-line option to split the remaining system\nmemory into nodes of fixed size.  Any leftover memory is allocated to a final\nnode unless the command-line ends with a comma.\n\nFor example:\n  numa\u003dfake\u003d2*512,*128\tgives two 512M nodes and the remaining system\n\t\t\tmemory is split into nodes of 128M each.\n\nThis is beneficial for systems where the exact size of RAM is unknown or not\nnecessarily relevant, but the size of the remaining nodes to be allocated is\nknown based on their capacity for resource management.\n\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14694d736bb66d0ec250d05c81c6e98a19c229c6",
      "tree": "76e752f310859c9904ee772068b2915b138e6572",
      "parents": [
        "8b8ca80e192b10eecc01fc44a2902510af86f73b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] x86-64: split remaining fake nodes equally\n\nExtends the numa\u003dfake x86_64 command-line option to split the remaining\nsystem memory into equal-sized nodes.\n\nFor example:\nnuma\u003dfake\u003d2*512,4*\tgives two 512M nodes and the remaining system\n\t\t\tmemory is split into four approximately equal\n\t\t\tchunks.\n\nThis is beneficial for systems where the exact size of RAM is unknown or not\nnecessarily relevant, but the granularity with which nodes shall be allocated\nis known.\n\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b8ca80e192b10eecc01fc44a2902510af86f73b",
      "tree": "b5be871c62f4fd3f079a9ce7fcce0c09e87a9a5f",
      "parents": [
        "8280c0c58e9762a9fe29d550a9db81410de77691"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] x86-64: configurable fake numa node sizes\n\nExtends the numa\u003dfake x86_64 command-line option to allow for configurable\nnode sizes.  These nodes can be used in conjunction with cpusets for coarse\nmemory resource management.\n\nThe old command-line option is still supported:\n  numa\u003dfake\u003d32\tgives 32 fake NUMA nodes, ignoring the NUMA setup of the\n\t\tactual machine.\n\nBut now you may configure your system for the node sizes of your choice:\n  numa\u003dfake\u003d2*512,1024,2*256\n\t\tgives two 512M nodes, one 1024M node, two 256M nodes, and\n\t\tthe rest of system memory to a sixth node.\n\nThe existing hash function is maintained to support the various node sizes\nthat are possible with this implementation.\n\nEach node of the same size receives roughly the same amount of available\npages, regardless of any reserved memory with its address range.  The total\navailable pages on the system is calculated and divided by the number of equal\nnodes to allocate.  These nodes are then dynamically allocated and their\nborders extended until such time as their number of available pages reaches\nthe required size.\n\nConfigurable node sizes are recommended when used in conjunction with cpusets\nfor memory control because it eliminates the overhead associated with scanning\nthe zonelists of many smaller full nodes on page_alloc().\n\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8280c0c58e9762a9fe29d550a9db81410de77691",
      "tree": "a706344e6330b1de008fae8541dd5b1a1b7b8fcd",
      "parents": [
        "8eb68faed9e077c45c2bab5fce7c4e371fe9c28f"
      ],
      "author": {
        "name": "Ahmed S. Darwish",
        "email": "darwish.07@gmail.com",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] i386: fix GDT\u0027s number of quadwords in comment\n\nFix comments to represent the true number of quadwords in GDT.\n\nSigned-off-by: Ahmed S. Darwish \u003cdarwish.07@gmail.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8eb68faed9e077c45c2bab5fce7c4e371fe9c28f",
      "tree": "6d2cacd679548f6034c8bd66b8cc713f9af2afee",
      "parents": [
        "786142fab86cfddd3e7797e9ccf8a8a3bcaf0456"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] i386: vmi_pmd_clear() static\n\nThis patch makes the needlessly global vmi_pmd_clear() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "786142fab86cfddd3e7797e9ccf8a8a3bcaf0456",
      "tree": "a9da7c2df4a7f74c24937aceb8b9beb2d4c54a8f",
      "parents": [
        "f0e13ae76a607eab9c387544ebca550f2196a876"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:09 2007 +0200"
      },
      "message": "[PATCH] x86-64: make simnow_init() static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "f0e13ae76a607eab9c387544ebca550f2196a876",
      "tree": "88fcf4170fe50ddc25bdb037dd4be3a91151987a",
      "parents": [
        "9f7290ed23b1cedf7198ef7b67f2ed256bc8553e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai.lu@amd.com",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] x86-64: remove extra smp_processor_id calling\n\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "9f7290ed23b1cedf7198ef7b67f2ed256bc8553e",
      "tree": "98773236a40eacf0a60602ef9ff54bfcb3055120",
      "parents": [
        "5a90cf205c922707ffed2d8f87cefd942e96b0ba"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] x86-64: fix ia32_binfmt.c build error\n\nReorder code to avoid multiple inclusion of elf.h.\n\n#undef several symbols to avoid build errors over redefinitions.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a90cf205c922707ffed2d8f87cefd942e96b0ba",
      "tree": "5e9c9c1be3d149bff7620db89e1ede2317ba7362",
      "parents": [
        "2714221985ce6388ec2fa78d7d52e2a5bef78eec"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] x86: Log reason why TSC was marked unstable\n\nChange mark_tsc_unstable() so it takes a string argument, which holds the\nreason the TSC was marked unstable.\n\nThis is then displayed the first time mark_tsc_unstable is called.\n\nThis should help us better debug why the TSC was marked unstable on certain\nsystems and allow us to make sure we\u0027re not being overly paranoid when\nthrowing out this troublesome clocksource.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "2714221985ce6388ec2fa78d7d52e2a5bef78eec",
      "tree": "9fc7e4199dd6487258d1b0c94ca1c0c7acb8d164",
      "parents": [
        "e48b30c189559e20e1f616faccae487972486320"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] i386: workaround for a -Wmissing-prototypes warning\n\nWork around a warning with -Wmissing-prototypes in\narch/i386/kernel/asm-offsets.c\n\nThe warning isn\u0027t gcc\u0027s fault - asm-offsets.c is simply a special file.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e48b30c189559e20e1f616faccae487972486320",
      "tree": "5558e1b8bc4454ea72057641f6b7c454a19aac90",
      "parents": [
        "30a1528d3bf444eac7f2886ba284da22114b2f7c"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] i386: type cast clean up for find_next_zero_bit\n\nclean up unneeded type cast by properly declare data type.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "30a1528d3bf444eac7f2886ba284da22114b2f7c",
      "tree": "372f60f4aa0f5ae2199568c471e48a08dc843321",
      "parents": [
        "1833d6bc72893265f22addd79cf52e6987496e0f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] i386: make struct vmi_ops static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1833d6bc72893265f22addd79cf52e6987496e0f",
      "tree": "8f7e85a034603325b7e5cc46bb5c832e49a6e3d9",
      "parents": [
        "e073ae1b34d5600ffc550407625dcb2d4cf46c6e"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@in.ibm.com",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] i386: modpost apic related warning fixes\n\no Modpost generates warnings for i386 if compiled with CONFIG_RELOCATABLE\u003dy\n\nWARNING: vmlinux - Section mismatch: reference to .init.text:find_unisys_acpi_oem_table from .text between \u0027acpi_madt_oem_check\u0027 (at offset 0xc0101eda) and \u0027enable_apic_mode\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.text:acpi_get_table_header_early from .text between \u0027acpi_madt_oem_check\u0027 (at offset 0xc0101ef0) and \u0027enable_apic_mode\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.text:parse_unisys_oem from .text between \u0027acpi_madt_oem_check\u0027 (at offset 0xc0101f2e) and \u0027enable_apic_mode\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.text:setup_unisys from .text between \u0027acpi_madt_oem_check\u0027 (at offset 0xc0101f37) and \u0027enable_apic_mode\u0027WARNING: vmlinux - Section mismatch: reference to .init.text:parse_unisys_oem from .text between \u0027mps_oem_check\u0027 (at offset 0xc0101ec7) and \u0027acpi_madt_oem_check\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.text:es7000_sw_apic from .text between \u0027enable_apic_mode\u0027 (at offset 0xc0101f48) and \u0027check_apicid_present\u0027\n\no Some functions which are inline (acpi_madt_oem_check) are not inlined by\n  compiler as these functions are accessed using function pointer. These\n  functions are put in .text section and they in-turn access __init type\n  functions hence modpost generates warnings.\n\no Do not iniline acpi_madt_oem_check, instead make it __init.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e073ae1b34d5600ffc550407625dcb2d4cf46c6e",
      "tree": "9f6a7762ab77d4cf0cae0399d5449c72b8fcc0fa",
      "parents": [
        "d039c688c6b3e7217381d2804bc0ca3171913fec"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] x86-64: Set HASHDIST_DEFAULT to 1 for x86_64 NUMA\n\nEnable system hashtable memory to be distributed among nodes on x86_64 NUMA\n\nForcing the kernel to use node interleaved vmalloc instead of bootmem for\nthe system hashtable memory (alloc_large_system_hash) reduces the memory\nimbalance on node 0 by around 40MB on a 8 node x86_64 NUMA box:\n\nBefore the following patch, on bootup of a 8 node box:\n\nNode 0 MemTotal:      3407488 kB\nNode 0 MemFree:       3206296 kB\nNode 0 MemUsed:        201192 kB\nNode 0 Active:           7012 kB\nNode 0 Inactive:          512 kB\nNode 0 Dirty:               0 kB\nNode 0 Writeback:           0 kB\nNode 0 FilePages:        1912 kB\nNode 0 Mapped:            420 kB\nNode 0 AnonPages:        5612 kB\nNode 0 PageTables:        468 kB\nNode 0 NFS_Unstable:        0 kB\nNode 0 Bounce:              0 kB\nNode 0 Slab:             5408 kB\nNode 0 SReclaimable:      644 kB\nNode 0 SUnreclaim:       4764 kB\n\nAfter the patch (or using hashdist\u003d1 on the kernel command line):\n\nNode 0 MemTotal:      3407488 kB\nNode 0 MemFree:       3247608 kB\nNode 0 MemUsed:        159880 kB\nNode 0 Active:           3012 kB\nNode 0 Inactive:          616 kB\nNode 0 Dirty:               0 kB\nNode 0 Writeback:           0 kB\nNode 0 FilePages:        2424 kB\nNode 0 Mapped:            380 kB\nNode 0 AnonPages:        1200 kB\nNode 0 PageTables:        396 kB\nNode 0 NFS_Unstable:        0 kB\nNode 0 Bounce:              0 kB\nNode 0 Slab:             6304 kB\nNode 0 SReclaimable:     1596 kB\nNode 0 SUnreclaim:       4708 kB\n\nI guess it is a good idea to keep HASHDIST_DEFAULT \"on\" for x86_64 NUMA\nsince x86_64 has no dearth of vmalloc space?  Or maybe enable hash\ndistribution for all 64bit NUMA arches?  The following patch does it only\nfor x86_64.\n\nI ran a HPC MPI benchmark -- \u0027Ansys wingsolid\u0027, which takes up quite a bit of\nmemory and uses up tlb entries.  This was on a 4 way, 2 socket\nTyan AMD box (non vsmp), with 8G total memory (4G pernode).\n\nThe results with and without hash distribution are:\n\n1. Vanilla - runtime of 1188.000s\n2. With hashdist\u003d1 runtime of 1154.000s\n\nOprofile output for the duration of run is:\n\n1. Vanilla:\nPU: AMD64 processors, speed 2411.16 MHz (estimated)\nCounted L1_AND_L2_DTLB_MISSES events (L1 and L2 DTLB misses) with a unit\nmask of 0x00 (No unit mask) count 500\nsamples  %        app name                 symbol name\n163054    6.5513  libansys1.so             MultiFront::decompose(int, int,\nElemset *, int *, int, int, int)\n162061    6.5114  libansys3.so             blockSaxpy6L_fd\n162042    6.5107  libansys3.so             blockInnerProduct6L_fd\n156286    6.2794  libansys3.so             maxb33_\n87879     3.5309  libansys1.so             elmatrixmultpcg_\n84857     3.4095  libansys4.so             saxpy_pcg\n58637     2.3560  libansys4.so             .st4560\n46612     1.8728  libansys4.so             .st4282\n43043     1.7294  vmlinux-t                copy_user_generic_string\n41326     1.6604  libansys3.so             blockSaxpyBackSolve6L_fd\n41288     1.6589  libansys3.so             blockInnerProductBackSolve6L_fd\n\n2. With hashdist\u003d1\nCPU: AMD64 processors, speed 2411.13 MHz (estimated)\nCounted L1_AND_L2_DTLB_MISSES events (L1 and L2 DTLB misses) with a unit\nmask of 0x00 (No unit mask) count 500\nsamples  %        app name                 symbol name\n162993    6.9814  libansys1.so             MultiFront::decompose(int, int,\nElemset *, int *, int, int, int)\n160799    6.8874  libansys3.so             blockInnerProduct6L_fd\n160459    6.8729  libansys3.so             blockSaxpy6L_fd\n156018    6.6826  libansys3.so             maxb33_\n84700     3.6279  libansys4.so             saxpy_pcg\n83434     3.5737  libansys1.so             elmatrixmultpcg_\n58074     2.4875  libansys4.so             .st4560\n46000     1.9703  libansys4.so             .st4282\n41166     1.7632  libansys3.so             blockSaxpyBackSolve6L_fd\n41033     1.7575  libansys3.so             blockInnerProductBackSolve6L_fd\n35762     1.5318  libansys1.so             inner_product_sub\n35591     1.5245  libansys1.so             inner_product_sub2\n28259     1.2104  libansys4.so             addVectors\n\nSigned-off-by: Pravin B. Shelar \u003cpravin.shelar@calsoftinc.com\u003e\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\nAcked-by: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d039c688c6b3e7217381d2804bc0ca3171913fec",
      "tree": "79a1388ebfeec069f64c51ab49b871a7ab2dbd78",
      "parents": [
        "fb60b8392ce8ab185a7a0b4f7cefbe18b2afdab5"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] x86-64: Minor white space cleanup in traps.c\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "fb60b8392ce8ab185a7a0b4f7cefbe18b2afdab5",
      "tree": "7de7fc5f2bf2a2feb82f5267aac1ef8515fbe2d7",
      "parents": [
        "1652fcbf37abdbbebaf386b46b20e486769e7b45"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:08 2007 +0200"
      },
      "message": "[PATCH] x86-64: Allow sys_uselib unconditionally\n\nPreviously it wasn\u0027t enabled in the binfmt_aout is a module case.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    }
  ],
  "next": "1652fcbf37abdbbebaf386b46b20e486769e7b45"
}
