)]}'
{
  "log": [
    {
      "commit": "f187e9fd68577cdd5f914659b6f7f11124e40485",
      "tree": "ad0e7422359724f7c7ffaaaa80dd3a7281f02a83",
      "parents": [
        "adb3b1f3fc1c6edb501808ebf80a81e81c52eb73",
        "8ebfdf2babcda5a3b06cc67523bca1f9aed46009"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 31 13:34:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 31 13:34:04 2012 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf updates and fixes from Ingo Molnar:\n \"It\u0027s mostly fixes, but there\u0027s also two late items:\n\n   - preliminary GTK GUI support for perf report\n   - PMU raw event format descriptors in sysfs, to be parsed by tooling\n\n  The raw event format in sysfs is a new ABI.  For example for the \u0027CPU\u0027\n  PMU we have:\n\n    aldebaran:~\u003e ll /sys/bus/event_source/devices/cpu/format/*\n    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/any\n    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/cmask\n    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/edge\n    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/event\n    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/inv\n    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/offcore_rsp\n    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/pc\n    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/umask\n\n  those lists of fields contain a specific format:\n\n    aldebaran:~\u003e cat /sys/bus/event_source/devices/cpu/format/offcore_rsp\n    config1:0-63\n\n  So, those who wish to specify raw events can now use the following\n  event format:\n\n    -e cpu/cmask\u003d1,event\u003d2,umask\u003d3\n\n  Most people will not want to specify any events (let alone raw\n  events), they\u0027ll just use whatever default event the tools use.\n\n  But for more obscure PMU events that have no cross-architecture\n  generic events the above syntax is more usable and a bit more\n  structured than specifying hex numbers.\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)\n  perf tools: Remove auto-generated bison/flex files\n  perf annotate: Fix off by one symbol hist size allocation and hit accounting\n  perf tools: Add missing ref-cycles event back to event parser\n  perf annotate: addr2line wants addresses in same format as objdump\n  perf probe: Finder fails to resolve function name to address\n  tracing: Fix ent_size in trace output\n  perf symbols: Handle NULL dso in dso__name_len\n  perf symbols: Do not include libgen.h\n  perf tools: Fix bug in raw sample parsing\n  perf tools: Fix display of first level of callchains\n  perf tools: Switch module.h into export.h\n  perf: Move mmap page data_head offset assertion out of header\n  perf: Fix mmap_page capabilities and docs\n  perf diff: Fix to work with new hists design\n  perf tools: Fix modifier to be applied on correct events\n  perf tools: Fix various casting issues for 32 bits\n  perf tools: Simplify event_read_id exit path\n  tracing: Fix ftrace stack trace entries\n  tracing: Move the tracing_on/off() declarations into CONFIG_TRACING\n  perf report: Add a simple GTK2-based \u0027perf report\u0027 browser\n  ...\n"
    },
    {
      "commit": "a335750b9a039a9d4cd727cdccacfb90fd63c4e8",
      "tree": "8f3198984fb75fe494e771d9431f6799228623c5",
      "parents": [
        "10f3cb41d48ab30f5c754b30eea557371892b4c2",
        "d326f44e5f2204c7a24db69bfc6dd3fe5f86182b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 16:45:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 16:45:39 2012 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nPull ACPI \u0026 Power Management changes from Len Brown:\n - ACPI 5.0 after-ripples, ACPICA/Linux divergence cleanup\n - cpuidle evolving, more ARM use\n - thermal sub-system evolving, ditto\n - assorted other PM bits\n\nFix up conflicts in various cpuidle implementations due to ARM cpuidle\ncleanups (ARM at91 self-refresh and cpu idle code rewritten into\n\"standby\" in asm conflicting with the consolidation of cpuidle time\nkeeping), trivial SH include file context conflict and RCU tracing fixes\nin generic code.\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (77 commits)\n  ACPI throttling: fix endian bug in acpi_read_throttling_status()\n  Disable MCP limit exceeded messages from Intel IPS driver\n  ACPI video: Don\u0027t start video device until its associated input device has been allocated\n  ACPI video: Harden video bus adding.\n  ACPI: Add support for exposing BGRT data\n  ACPI: export acpi_kobj\n  ACPI: Fix logic for removing mappings in \u0027acpi_unmap\u0027\n  CPER failed to handle generic error records with multiple sections\n  ACPI: Clean redundant codes in scan.c\n  ACPI: Fix unprotected smp_processor_id() in acpi_processor_cst_has_changed()\n  ACPI: consistently use should_use_kmap()\n  PNPACPI: Fix device ref leaking in acpi_pnp_match\n  ACPI: Fix use-after-free in acpi_map_lsapic\n  ACPI: processor_driver: add missing kfree\n  ACPI, APEI: Fix incorrect APEI register bit width check and usage\n  Update documentation for parameter *notrigger* in einj.txt\n  ACPI, APEI, EINJ, new parameter to control trigger action\n  ACPI, APEI, EINJ, limit the range of einj_param\n  ACPI, APEI, Fix ERST header length check\n  cpuidle: power_usage should be declared signed integer\n  ...\n"
    },
    {
      "commit": "d326f44e5f2204c7a24db69bfc6dd3fe5f86182b",
      "tree": "21473db646b06fd462bbc8f3690732ba1bb2d018",
      "parents": [
        "ec612fcf43e09f5e05d37baf4d3f138b3fcc2f3d",
        "e840dfe334b4791af07aadee1b2cf3c7c7363581"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 16:35:53 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 16:38:59 2012 -0400"
      },
      "message": "Merge branch \u0027tboot\u0027 into release\n\nConflicts:\n\tdrivers/acpi/acpica/hwsleep.c\n\nText conflict between:\n\n2feec47d4c5f80b05f1650f5a24865718978eea4\n(ACPICA: ACPI 5: Support for new FADT SleepStatus, SleepControl registers)\n\nwhich removed #include \"actables.h\"\n\nand\n\n09f98a825a821f7a3f1b162f9ed023f37213a63b\n(x86, acpi, tboot: Have a ACPI os prepare sleep instead of calling tboot_sleep.)\n\nwhich removed #include \u003clinux/tboot.h\u003e\n\nThe resolution is to remove them both.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "1a05e4678724c4a5fe7b9e4e208b616dfe8c3a32",
      "tree": "e8688e1ba822fce2af101d4ed2fc0776f60eb8e9",
      "parents": [
        "5aa3c16c6b196857ea24ec1c589e3db3c4c64c96",
        "d1ff4b1cdbabb9ab9813f3d6e1cbec42cc5d6ed8",
        "cf450136bfde77c7f95065c91bffded4aa7fa731",
        "02401c06b7f6bec65f314e3cec7894502c973501",
        "6fe0d0628245fdcd6fad8b837c81e8f7ebc3364d",
        "9f324bda970c599ca35f7be89d9d1bcb96d6053c",
        "37239978778806ecba54da60676abb46870acebb",
        "3e80acd1af40fcd91a200b0416a7616b20c5d647",
        "344e222edf486bf42da1ced137e36df7a345b0ad",
        "2815ab92ba3ab27556212cc306288dc95692824b",
        "15aaa34654831e98dd76f7738b6c7f5d05a66430",
        "b60e7f6166857c76871977794fa266b02da1f394"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 16:10:37 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 16:10:37 2012 -0400"
      },
      "message": "Merge branches \u0027acpica\u0027, \u0027bgrt\u0027, \u0027bz-11533\u0027, \u0027cpuidle\u0027, \u0027ec\u0027, \u0027hotplug\u0027, \u0027misc\u0027, \u0027red-hat-bz-727865\u0027, \u0027thermal\u0027, \u0027throttling\u0027, \u0027turbostat\u0027 and \u0027video\u0027 into release\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ac909ec308ce8d5177963c780564824d12bc3fa2",
      "tree": "490e9168b304a93606de30fe01c9c5b0dc9fbc32",
      "parents": [
        "c80f5b31f3c55a197f5323b93d1e3553429a427e"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vmware.com",
        "time": "Thu Mar 08 13:33:24 2012 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:31:58 2012 -0400"
      },
      "message": "ACPI: Fix use-after-free in acpi_map_lsapic\n\nWhen processor is being hot-added to the system, acpi_map_lsapic invokes\nACPI _MAT method to find APIC ID and flags, verifies that returned structure\nis indeed ACPI\u0027s local APIC structure, and that flags contain MADT_ENABLED\nbit.  Then saves APIC ID, frees structure - and accesses structure when\ncomputing arguments for acpi_register_lapic call.  Which sometime leads\nto acpi_register_lapic call being made with second argument zero, failing\nto bring processor online with error \u0027Unable to map lapic to logical cpu\nnumber\u0027.\n\nAs lapic-\u003elapic_flags \u0026 ACPI_MADT_ENABLED was already confirmed to be non-zero\nfew lines above, we can just pass unconditional ACPI_MADT_ENABLED to the\nacpi_register_lapic.\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vmware.com\u003e\nSigned-off-by: Alok N Kataria \u003cakataria@vmware.com\u003e\nReviewed-by: Toshi Kani \u003ctoshi.kani@hp.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "1a022e3f1be11730bd8747b1af96a0274bf6356e",
      "tree": "d3c95b68626ac7d963ac3a85a07dae1cfc011906",
      "parents": [
        "e07510585a88c0f6c6c728e2e006aa913496d4ae"
      ],
      "author": {
        "name": "Boris Ostrovsky",
        "email": "boris.ostrovsky@amd.com",
        "time": "Tue Mar 13 19:55:09 2012 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:23:01 2012 -0400"
      },
      "message": "idle, x86: Allow off-lined CPU to enter deeper C states\n\nCurrently when a CPU is off-lined it enters either MWAIT-based idle or,\nif MWAIT is not desired or supported, HLT-based idle (which places the\nprocessor in C1 state). This patch allows processors without MWAIT\nsupport to stay in states deeper than C1.\n\nSigned-off-by: Boris Ostrovsky \u003cboris.ostrovsky@amd.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "eb05df9e7e793f3134dbb574c7ccc05f7932bc59",
      "tree": "6373858c571902eece2761fe2b0d9cc84e7a66fe",
      "parents": [
        "a591afc01d9e48affbacb365558a31e53c85af45",
        "ef334a20d84f52407a8a2afd02ddeaecbef0ad3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:21:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:21:35 2012 -0700"
      },
      "message": "Merge branch \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 cleanups from Peter Anvin:\n \"The biggest textual change is the cleanup to use symbolic constants\n  for x86 trap values.\n\n  The only *functional* change and the reason for the x86/x32 dependency\n  is the move of is_ia32_task() into \u003casm/thread_info.h\u003e so that it can\n  be used in other code that needs to understand if a system call comes\n  from the compat entry point (and therefore uses i386 system call\n  numbers) or not.  One intended user for that is the BPF system call\n  filter.  Moving it out of \u003casm/compat.h\u003e means we can define it\n  unconditionally, returning always true on i386.\"\n\n* \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Move is_ia32_task to asm/thread_info.h from asm/compat.h\n  x86: Rename trap_no to trap_nr in thread_struct\n  x86: Use enum instead of literals for trap values\n"
    },
    {
      "commit": "a591afc01d9e48affbacb365558a31e53c85af45",
      "tree": "9bb91f4eb94ec69fc4706c4944788ec5f3586063",
      "parents": [
        "820d41cf0cd0e94a5661e093821e2e5c6b36a9d8",
        "31796ac4e8f0e88f5c10f1ad6dab8f19bebe44a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "message": "Merge branch \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x32 support for x86-64 from Ingo Molnar:\n \"This tree introduces the X32 binary format and execution mode for x86:\n  32-bit data space binaries using 64-bit instructions and 64-bit kernel\n  syscalls.\n\n  This allows applications whose working set fits into a 32 bits address\n  space to make use of 64-bit instructions while using a 32-bit address\n  space with shorter pointers, more compressed data structures, etc.\"\n\nFix up trivial context conflicts in arch/x86/{Kconfig,vdso/vma.c}\n\n* \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)\n  x32: Fix alignment fail in struct compat_siginfo\n  x32: Fix stupid ia32/x32 inversion in the siginfo format\n  x32: Add ptrace for x32\n  x32: Switch to a 64-bit clock_t\n  x32: Provide separate is_ia32_task() and is_x32_task() predicates\n  x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls\n  x86/x32: Fix the binutils auto-detect\n  x32: Warn and disable rather than error if binutils too old\n  x32: Only clear TIF_X32 flag once\n  x32: Make sure TS_COMPAT is cleared for x32 tasks\n  fs: Remove missed -\u003efds_bits from cessation use of fd_set structs internally\n  fs: Fix close_on_exec pointer in alloc_fdtable\n  x32: Drop non-__vdso weak symbols from the x32 VDSO\n  x32: Fix coding style violations in the x32 VDSO code\n  x32: Add x32 VDSO support\n  x32: Allow x32 to be configured\n  x32: If configured, add x32 system calls to system call tables\n  x32: Handle process creation\n  x32: Signal-related system calls\n  x86: Add #ifdef CONFIG_COMPAT to \u003casm/sys_ia32.h\u003e\n  ...\n"
    },
    {
      "commit": "7fda0412c5f7afdd1a5ff518f98dee5157266d8a",
      "tree": "d312af46758fa9b59431a479d258b54184a00591",
      "parents": [
        "6b8212a313dae341ef3a2e413dfec5c4dea59617",
        "160594e99dbbb0a5600ad922c630952c7c1c14bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:46:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:46:05 2012 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fixes from Ingo Molnar.\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  cpusets: Remove an unused variable\n  sched/rt: Improve pick_next_highest_task_rt()\n  sched: Fix select_fallback_rq() vs cpu_active/cpu_online\n  sched/x86/smp: Do not enable IRQs over calibrate_delay()\n  sched: Fix compiler warning about declared inline after use\n  MAINTAINERS: Update email address for SCHEDULER and PERF EVENTS\n"
    },
    {
      "commit": "6b8212a313dae341ef3a2e413dfec5c4dea59617",
      "tree": "bbca09d88f61f999c7714fe82710bdfe6ee0e98b",
      "parents": [
        "bcd550745fc54f789c14e7526e0633222c505faa",
        "8abc3122aa02567bfe626cd13f4d34853c9b1225"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:28:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:28:26 2012 -0700"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 updates from Ingo Molnar.\n\nThis touches some non-x86 files due to the sanitized INLINE_SPIN_UNLOCK\nconfig usage.\n\nFixed up trivial conflicts due to just header include changes (removing\nheaders due to cpu_idle() merge clashing with the \u003casm/system.h\u003e split).\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/apic/amd: Be more verbose about LVT offset assignments\n  x86, tls: Off by one limit check\n  x86/ioapic: Add io_apic_ops driver layer to allow interception\n  x86/olpc: Add debugfs interface for EC commands\n  x86: Merge the x86_32 and x86_64 cpu_idle() functions\n  x86/kconfig: Remove CONFIG_TR\u003dy from the defconfigs\n  x86: Stop recursive fault in print_context_stack after stack overflow\n  x86/io_apic: Move and reenable irq only when CONFIG_GENERIC_PENDING_IRQ\u003dy\n  x86/apic: Add separate apic_id_valid() functions for selected apic drivers\n  locking/kconfig: Simplify INLINE_SPIN_UNLOCK usage\n  x86/kconfig: Update defconfigs\n  x86: Fix excessive MSR print out when show_msr is not specified\n"
    },
    {
      "commit": "bcd550745fc54f789c14e7526e0633222c505faa",
      "tree": "c3fe11a6503b7ffdd4406a9fece5c40b3e2a3f6d",
      "parents": [
        "93f378883cecb9dcb2cf5b51d9d24175906659da",
        "646783a389828e76e813f50791f7999429c821bc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:16:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:16:48 2012 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer core updates from Thomas Gleixner.\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  ia64: vsyscall: Add missing paranthesis\n  alarmtimer: Don\u0027t call rtc_timer_init() when CONFIG_RTC_CLASS\u003dn\n  x86: vdso: Put declaration before code\n  x86-64: Inline vdso clock_gettime helpers\n  x86-64: Simplify and optimize vdso clock_gettime monotonic variants\n  kernel-time: fix s/then/than/ spelling errors\n  time: remove no_sync_cmos_clock\n  time: Avoid scary backtraces when warning of \u003e 11% adj\n  alarmtimer: Make sure we initialize the rtctimer\n  ntp: Fix leap-second hrtimer livelock\n  x86, tsc: Skip refined tsc calibration on systems with reliable TSC\n  rtc: Provide flag for rtc devices that don\u0027t support UIE\n  ia64: vsyscall: Use seqcount instead of seqlock\n  x86: vdso: Use seqcount instead of seqlock\n  x86: vdso: Remove bogus locking in update_vsyscall_tz()\n  time: Remove bogus comments\n  time: Fix change_clocksource locking\n  time: x86: Fix race switching from vsyscall to non-vsyscall clock\n"
    },
    {
      "commit": "532bfc851a7475fb6a36c1e953aa395798a7cca7",
      "tree": "a7892e5a31330dd59f31959efbe9fda1803784fd",
      "parents": [
        "0195c00244dc2e9f522475868fa278c473ba7339",
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:28 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge third batch of patches from Andrew Morton:\n - Some MM stragglers\n - core SMP library cleanups (on_each_cpu_mask)\n - Some IPI optimisations\n - kexec\n - kdump\n - IPMI\n - the radix-tree iterator work\n - various other misc bits.\n\n \"That\u0027ll do for -rc1.  I still have ~10 patches for 3.4, will send\n  those along when they\u0027ve baked a little more.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  backlight: fix typo in tosa_lcd.c\n  crc32: add help text for the algorithm select option\n  mm: move hugepage test examples to tools/testing/selftests/vm\n  mm: move slabinfo.c to tools/vm\n  mm: move page-types.c from Documentation to tools/vm\n  selftests/Makefile: make `run_tests\u0027 depend on `all\u0027\n  selftests: launch individual selftests from the main Makefile\n  radix-tree: use iterators in find_get_pages* functions\n  radix-tree: rewrite gang lookup using iterator\n  radix-tree: introduce bit-optimized iterator\n  fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n  nbd: rename the nbd_device variable from lo to nbd\n  pidns: add reboot_pid_ns() to handle the reboot syscall\n  sysctl: use bitmap library functions\n  ipmi: use locks on watchdog timeout set on reboot\n  ipmi: simplify locking\n  ipmi: fix message handling during panics\n  ipmi: use a tasklet for handling received messages\n  ipmi: increase KCS timeouts\n  ipmi: decrease the IPMI message transaction time in interrupt mode\n  ...\n"
    },
    {
      "commit": "09c71bfd8384278c42f56380365940508194cec0",
      "tree": "3d11eea3bf9c6b2cad6a36755d155f31a0e229fe",
      "parents": [
        "eaa3be6add6f327ab0a633e4fee8e6f2cc8c8a4c"
      ],
      "author": {
        "name": "Dave Young",
        "email": "dyoung@redhat.com",
        "time": "Wed Mar 28 14:42:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:36 2012 -0700"
      },
      "message": "kdump x86: fix total mem size calculation for reservation\n\ncrashkernel reservation need know the total memory size.  Current\nget_total_mem simply use max_pfn - min_low_pfn.  It is wrong because it\nwill including memory holes in the middle.\n\nEspecially for kvm guest with memory \u003e 0xe0000000, there\u0027s below in qemu\ncode: qemu split memory as below:\n\n    if (ram_size \u003e\u003d 0xe0000000 ) {\n        above_4g_mem_size \u003d ram_size - 0xe0000000;\n        below_4g_mem_size \u003d 0xe0000000;\n    } else {\n        below_4g_mem_size \u003d ram_size;\n    }\n\nSo for 4G mem guest, seabios will insert a 512M usable region beyond of\n4G.  Thus in above case max_pfn - min_low_pfn will be more than original\nmemsize.\n\nFixing this issue by using memblock_phys_mem_size() to get the total\nmemsize.\n\nSigned-off-by: Dave Young \u003cdyoung@redhat.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nReviewed-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "2e7580b0e75d771d93e24e681031a165b1d31071",
      "tree": "d9449702609eeaab28913a43b5a4434667e09d43",
      "parents": [
        "d25413efa9536e2f425ea45c7720598035c597bc",
        "cf9eeac46350b8b43730b7dc5e999757bed089a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:35:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:35:31 2012 -0700"
      },
      "message": "Merge branch \u0027kvm-updates/3.4\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull kvm updates from Avi Kivity:\n \"Changes include timekeeping improvements, support for assigning host\n  PCI devices that share interrupt lines, s390 user-controlled guests, a\n  large ppc update, and random fixes.\"\n\nThis is with the sign-off\u0027s fixed, hopefully next merge window we won\u0027t\nhave rebased commits.\n\n* \u0027kvm-updates/3.4\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (130 commits)\n  KVM: Convert intx_mask_lock to spin lock\n  KVM: x86: fix kvm_write_tsc() TSC matching thinko\n  x86: kvmclock: abstract save/restore sched_clock_state\n  KVM: nVMX: Fix erroneous exception bitmap check\n  KVM: Ignore the writes to MSR_K7_HWCR(3)\n  KVM: MMU: make use of -\u003eroot_level in reset_rsvds_bits_mask\n  KVM: PMU: add proper support for fixed counter 2\n  KVM: PMU: Fix raw event check\n  KVM: PMU: warn when pin control is set in eventsel msr\n  KVM: VMX: Fix delayed load of shared MSRs\n  KVM: use correct tlbs dirty type in cmpxchg\n  KVM: Allow host IRQ sharing for assigned PCI 2.3 devices\n  KVM: Ensure all vcpus are consistent with in-kernel irqchip settings\n  KVM: x86 emulator: Allow PM/VM86 switch during task switch\n  KVM: SVM: Fix CPL updates\n  KVM: x86 emulator: VM86 segments must have DPL 3\n  KVM: x86 emulator: Fix task switch privilege checks\n  arch/powerpc/kvm/book3s_hv.c: included linux/sched.h twice\n  KVM: x86 emulator: correctly mask pmc index bits in RDPMC instruction emulation\n  KVM: mmu_notifier: Flush TLBs before releasing mmu_lock\n  ...\n"
    },
    {
      "commit": "8abc3122aa02567bfe626cd13f4d34853c9b1225",
      "tree": "267934d8b0730cc27e86f9ecab203df910a50e71",
      "parents": [
        "8f0750f19789cf352d7e24a6cc50f2ab1b4f1372"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Tue Mar 27 20:04:02 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Mar 28 20:02:39 2012 +0200"
      },
      "message": "x86/apic/amd: Be more verbose about LVT offset assignments\n\nAdd information about LVT offset assignments to better debug firmware\nbugs related to this. See following examples.\n\n # dmesg | grep -i \u0027offset\\|ibs\u0027\n LVT offset 0 assigned for vector 0xf9\n [Firmware Bug]: cpu 0, try to use APIC500 (LVT offset 0) for vector 0x10400, but the register is already in use for vector 0xf9 on another cpu\n [Firmware Bug]: cpu 0, IBS interrupt offset 0 not available (MSRC001103A\u003d0x0000000000000100)\n Failed to setup IBS, -22\n\nIn this case the BIOS assigns both offsets for MCE (0xf9) and IBS\n(0x400) vectors to offset 0, which is why the second APIC setup (IBS)\nfailed.\n\nWith correct setup you get:\n\n # dmesg | grep -i \u0027offset\\|ibs\u0027\n LVT offset 0 assigned for vector 0xf9\n LVT offset 1 assigned for vector 0x400\n IBS: LVT offset 1 assigned\n perf: AMD IBS detected (0x00000007)\n oprofile: AMD IBS detected (0x00000007)\n\nNote: The vector includes also the message type to handle also NMIs\n(0x400). In the firmware bug message the format is the same as of the\nAPIC500 register and includes the mask bit (bit 16) in addition.\n\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f05e798ad4c09255f590f5b2c00a7ca6c172f983",
      "tree": "6b7125d3f086a63a0f571bda568c9b62cc25609d",
      "parents": [
        "778aae84ef694325662447eceba1a5f7d3eebdbb"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:11:12 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:11:12 2012 +0100"
      },
      "message": "Disintegrate asm/system.h for X86\n\nDisintegrate asm/system.h for X86.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\ncc: x86@kernel.org\n"
    },
    {
      "commit": "8f0750f19789cf352d7e24a6cc50f2ab1b4f1372",
      "tree": "45be3ac15f47a9330604d1b21378e8dfa90251b3",
      "parents": [
        "136d249ef7dbf0fefa292082cc40be1ea864cbd6"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Sat Mar 24 10:52:50 2012 +0300"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Mar 28 09:39:35 2012 -0700"
      },
      "message": "x86, tls: Off by one limit check\n\nThese are used as offsets into an array of GDT_ENTRY_TLS_ENTRIES members\nso GDT_ENTRY_TLS_ENTRIES is one past the end of the array.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nLink: http://lkml.kernel.org/r/20120324075250.GA28258@elgon.mountain\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "136d249ef7dbf0fefa292082cc40be1ea864cbd6",
      "tree": "584684e7d7c79aaa698bfb29a496dc44a02e2528",
      "parents": [
        "a3c8121b8724c3d496dc00201ab40e8313edcf0d"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Wed Mar 21 22:58:08 2012 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Mar 28 09:49:29 2012 +0200"
      },
      "message": "x86/ioapic: Add io_apic_ops driver layer to allow interception\n\nXen dom0 needs to paravirtualize IO operations to the IO APIC,\nso add a io_apic_ops for it to intercept.  Do this as ops\nstructure because there\u0027s at least some chance that another\nparavirtualized environment may want to intercept these.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: jwboyer@redhat.com\nCc: yinghai@kernel.org\nLink: http://lkml.kernel.org/r/1332385090-18056-2-git-send-email-konrad.wilk@oracle.com\n[ Made all the affected code easier on the eyes ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "bc758133ed73d4b06952bec21da23e28e62bf3ba",
      "tree": "c7d2a8cec16533e7d3b3896f9fdc7c0350b8a041",
      "parents": [
        "6c16a6dcb05e51ace340ff7bc6dbe647f1593528"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Mar 26 13:16:15 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Mar 27 14:50:10 2012 +0200"
      },
      "message": "sched/x86/smp: Do not enable IRQs over calibrate_delay()\n\nWe should not ever enable IRQs until we\u0027re fully set up. This opens up\na window where interrupts can hit the cpu and interrupts can do\nwakeups, wakeups need state that isn\u0027t set-up yet, in particular this\ncpu isn\u0027t elegible to run tasks, so if any cpu-affine task that got\ncreated in CPU_UP_PREPARE manages to get a wakeup, its affinity mask\nwill get broken and we\u0027ll run into lots of \u0027interesting\u0027 problems.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-yaezmlbriluh166tfkgni22m@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "7fd52392c56361a40f0c630a82b36b95ca31eac6",
      "tree": "14091de24c6b28ea4cae9826f98aeedb7be091f5",
      "parents": [
        "b01c3a0010aabadf745f3e7fdb9cab682e0a28a2",
        "e22057c8599373e5caef0bc42bdb95d2a361ab0d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Mar 26 17:18:44 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Mar 26 17:19:03 2012 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/urgent\n\nMerge reason: we need to fix a non-trivial merge conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90e240142bd31ff10aeda5a280a53153f4eff004",
      "tree": "ae612bacc2cfd2fedc4c5c22c29dd326f8b93ae7",
      "parents": [
        "f5243d6de7ae232e1d81e44ae9756bbd8c988fcd"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 23:00:04 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Mar 26 03:16:07 2012 +0200"
      },
      "message": "x86: Merge the x86_32 and x86_64 cpu_idle() functions\n\nBoth functions are mostly identical.\nThe differences are:\n\n- x86_32\u0027s cpu_idle() makes use of check_pgt_cache(), which is a\n  nop on both x86_32 and x86_64.\n\n- x86_64\u0027s cpu_idle() uses enter/__exit_idle/(), on x86_32 these\n  function are a nop.\n\n- In contrast to x86_32, x86_64 calls rcu_idle_enter/exit() in\n  the innermost loop because idle notifications need RCU.\n  Calling these function on x86_32 also in the innermost loop\n  does not hurt.\n\nSo we can merge both functions.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: paulmck@linux.vnet.ibm.com\nCc: josh@joshtriplett.org\nCc: tj@kernel.org\nLink: http://lkml.kernel.org/r/1332709204-22496-1-git-send-email-richard@nod.at\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "68fe7b23d559763a2e19e5fc1cf7036e4aaecb10",
      "tree": "a11f655d4e83f80849938b40cfc220e93c31cbd4",
      "parents": [
        "5f293474c4c6c4dc2baaf2dfd486748b5986de76"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 24 09:29:22 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 24 09:29:22 2012 +0100"
      },
      "message": "x86: vdso: Put declaration before code\n\nSigh, warnings are there for a reason.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "65c0ff4079c011232e795e62c74a0a95512b7ac3",
      "tree": "f578bc91f8e241c23b068bec2ecd0f58b0a322fb",
      "parents": [
        "4da7072ad6831a35a11341097ce477e18651bedd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Mar 23 14:02:55 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Mar 24 08:15:04 2012 +0100"
      },
      "message": "x86: Stop recursive fault in print_context_stack after stack overflow\n\nAfter printing out the first line of a stack backtrace,\nprint_context_stack() calls print_ftrace_graph_addr() to check\nif it\u0027s making a graph of function calls, usually not the case.\n\nBut unfortunate ordering of assignments causes this to oops if\nan earlier stack overflow corrupted threadinfo-\u003etask.  Reorder\nto avoid that irritation.\n\n( The fact that there was a stack overflow may often be more\n  interesting than the stack that can now be shown; but\n  integrating that information with this stacktrace is awkward,\n  so leave it to overflow reporting. )\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20120323225648.15DD5A033B@akpm.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "2fb9e96cada81e7288579e14c3d56f1f969354a5",
      "tree": "acfe7e7a1455f06ce462fdeb22d4755dd9517393",
      "parents": [
        "8e3ade251bc7c0a4f0777df4dd34343a03efadba",
        "29a2e2836ff9ea65a603c89df217f4198973a74f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:10:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:10:09 2012 -0700"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull additional x86 fixes from Peter Anvin:\n - address a long-standing bug related to when a kernel-spawned process\n   gets a signal on an i386 kernel compiled without CONFIG_VM86.\n\n - fix the newly introduced build warning in arch/x86/boot.\n\n - fix a typo in the i386 system call table which affects building some\n   libcs.\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86-32: Fix endless loop when processing signals for kernel tasks\n  x86, boot: Correct CFLAGS for hostprogs\n  x86-32: Fix typo for mq_getsetattr in syscall table\n"
    },
    {
      "commit": "8e3ade251bc7c0a4f0777df4dd34343a03efadba",
      "tree": "6c0b78731e3d6609057951d07660efbd90992ad0",
      "parents": [
        "e317234975cb7463b8ca21a93bb6862d9dcf113f",
        "e075f59152890ffd7e3d704afc997dd686c8a781"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:59:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:59:10 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge second batch of patches from Andrew Morton:\n - various misc things\n - core kernel changes to prctl, exit, exec, init, etc.\n - kernel/watchdog.c updates\n - get_maintainer\n - MAINTAINERS\n - the backlight driver queue\n - core bitops code cleanups\n - the led driver queue\n - some core prio_tree work\n - checkpatch udpates\n - largeish crc32 update\n - a new poll() feature for the v4l guys\n - the rtc driver queue\n - fatfs\n - ptrace\n - signals\n - kmod/usermodehelper updates\n - coredump\n - procfs updates\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (141 commits)\n  seq_file: add seq_set_overflow(), seq_overflow()\n  proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate().\n  procfs: speed up /proc/pid/stat, statm\n  procfs: add num_to_str() to speed up /proc/stat\n  proc: speed up /proc/stat handling\n  fs/proc/kcore.c: make get_sparsemem_vmemmap_info() static\n  coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n  coredump: remove VM_ALWAYSDUMP flag\n  kmod: make __request_module() killable\n  kmod: introduce call_modprobe() helper\n  usermodehelper: ____call_usermodehelper() doesn\u0027t need do_exit()\n  usermodehelper: kill umh_wait, renumber UMH_* constants\n  usermodehelper: implement UMH_KILLABLE\n  usermodehelper: introduce umh_complete(sub_info)\n  usermodehelper: use UMH_WAIT_PROC consistently\n  signal: zap_pid_ns_processes: s/SEND_SIG_NOINFO/SEND_SIG_FORCED/\n  signal: oom_kill_task: use SEND_SIG_FORCED instead of force_sig()\n  signal: cosmetic, s/from_ancestor_ns/force/ in prepare_signal() paths\n  signal: give SEND_SIG_FORCED more power to beat SIGNAL_UNKILLABLE\n  Hexagon: use set_current_blocked() and block_sigmask()\n  ...\n"
    },
    {
      "commit": "0b2f4d4d76a09f02fa37bfa57909483448fac771",
      "tree": "381e6960623c815210c44cdfcbf3a179bf54f3eb",
      "parents": [
        "1a07cbba1425ec7215854cfaa9a8df66047cfb57"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Mar 23 15:02:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:34 2012 -0700"
      },
      "message": "x86: use for_each_clear_bit_from()\n\nUse for_each_clear_bit() to iterate over all the cleared bit in a\nmemory region.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "307b1cd7ecd7f3dc5ce3d3860957f034f0abe4df",
      "tree": "dfc8eb9a5dd7c4621a3a61058f25cabf82e327cd",
      "parents": [
        "2df5e12900d847af9113980d015939dde0d1b1d4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Mar 23 15:02:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:33 2012 -0700"
      },
      "message": "bitops: rename for_each_set_bit_cont() in favor of analogous list.h function\n\nThis renames for_each_set_bit_cont() to for_each_set_bit_from() because\nit is analogous to list_for_each_entry_from() in list.h rather than\nlist_for_each_entry_continue().\n\nThis doesn\u0027t remove for_each_set_bit_cont() for now.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91ec87d57fc38c529034e853687dfb7756de5406",
      "tree": "4f88d6a7e0221bdd791a1de6d4c36b17da8337a2",
      "parents": [
        "88b28adf6fcdd6d10a1cfc7765bb200d7366a265"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@mit.edu",
        "time": "Thu Mar 22 21:15:51 2012 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Mar 23 16:49:33 2012 -0700"
      },
      "message": "x86-64: Simplify and optimize vdso clock_gettime monotonic variants\n\nWe used to store the wall-to-monotonic offset and the realtime base.\nIt\u0027s faster to precompute the monotonic base.\n\nThis is about a 3% speedup on Sandy Bridge for CLOCK_MONOTONIC.\nIt\u0027s much more impressive for CLOCK_MONOTONIC_COARSE.\n\nSigned-off-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "475c77edf826333aa61625f49d6a2bec26ecb5a6",
      "tree": "8e1c6c319e347cd3c649fdb0b3ab45971c6b19e7",
      "parents": [
        "934e18b5cb4531cc6e81865bf54115cfd21d1ac6",
        "1488d5158dcd612fcdaf6b642451b026ee8bbcbb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:02:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:02:12 2012 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci\n\nPull PCI changes (including maintainer change) from Jesse Barnes:\n \"This pull has some good cleanups from Bjorn and Yinghai, as well as\n  some more code from Yinghai to better handle resource re-allocation\n  when enabled.\n\n  There\u0027s also a new initcall_debug feature from Arjan which will print\n  out quirk timing information to help identify slow quirks for fixing\n  or refinement (Yinghai sent in a few patches to do just that once the\n  new debug code landed).\n\n  Beyond that, I\u0027m handing off PCI maintainership to Bjorn Helgaas.\n  He\u0027s been a core PCI and Linux contributor for some time now, and has\n  kindly volunteered to take over.  I just don\u0027t feel I have the time\n  for PCI review and work that it deserves lately (I\u0027ve taken on some\n  other projects), and haven\u0027t been as responsive lately as I\u0027d like, so\n  I approached Bjorn asking if he\u0027d like to manage things.  He\u0027s going\n  to give it a try, and I\u0027m confident he\u0027ll do at least as well as I\n  have in keeping the tree managed, patches flowing, and keeping things\n  stable.\"\n\nFix up some fairly trivial conflicts due to other cleanups (mips device\nresource fixup cleanups clashing with list handling cleanup, ppc iseries\nremoval clashing with pci_probe_only cleanup etc)\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci: (112 commits)\n  PCI: Bjorn gets PCI hotplug too\n  PCI: hand PCI maintenance over to Bjorn Helgaas\n  unicore32/PCI: move \u003casm-generic/pci-bridge.h\u003e include to asm/pci.h\n  sparc/PCI: convert devtree and arch-probed bus addresses to resource\n  powerpc/PCI: allow reallocation on PA Semi\n  powerpc/PCI: convert devtree bus addresses to resource\n  powerpc/PCI: compute I/O space bus-to-resource offset consistently\n  arm/PCI: don\u0027t export pci_flags\n  PCI: fix bridge I/O window bus-to-resource conversion\n  x86/PCI: add spinlock held check to \u0027pcibios_fwaddrmap_lookup()\u0027\n  PCI / PCIe: Introduce command line option to disable ARI\n  PCI: make acpihp use __pci_remove_bus_device instead\n  PCI: export __pci_remove_bus_device\n  PCI: Rename pci_remove_behind_bridge to pci_stop_and_remove_behind_bridge\n  PCI: Rename pci_remove_bus_device to pci_stop_and_remove_bus_device\n  PCI: print out PCI device info along with duration\n  PCI: Move \"pci reassigndev resource alignment\" out of quirks.c\n  PCI: Use class for quirk for usb host controller fixup\n  PCI: Use class for quirk for ti816x class fixup\n  PCI: Use class for quirk for intel e100 interrupt fixup\n  ...\n"
    },
    {
      "commit": "a20ae85abaefb02cc0edf19c34f78d19437c1cf1",
      "tree": "13174b718a7f7b955b7d79f5427506ad62a3054e",
      "parents": [
        "f0a5ec0e8da4521036799ced340172b2732845a8",
        "1ba0c1720eb0de2d0f3abf84c0b128d10af520d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:29:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:29:44 2012 -0700"
      },
      "message": "Merge tag \u0027for_linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb\n\nPull KGDB/KDB updates from Jason Wessel:\n \"Fixes:\n   - Fix KDB keyboard repeat scan codes and leaked keyboard events\n   - Fix kernel crash with kdb_printf() for users who compile new\n     kdb_printf()\u0027s in early code\n   - Return all segment registers to gdb on x86_64\n\n  Features:\n   - KDB/KGDB hook the reboot notifier and end user can control if it\n     stops, detaches or does nothing (updated docs as well)\n   - Notify users who use CONFIG_DEBUG_RODATA to use hw breakpoints\"\n\n* tag \u0027for_linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:\n  kdb: Add message about CONFIG_DEBUG_RODATA on failure to install breakpoint\n  kdb: Avoid using dbg_io_ops until it is initialized\n  kgdb,debug_core: add the ability to control the reboot notifier\n  KDB: Fix usability issues relating to the \u0027enter\u0027 key.\n  kgdb,debug-core,gdbstub: Hook the reboot notifier for debugger detach\n  kgdb: Respect that flush op is optional\n  kgdb: x86: Return all segment registers also in 64-bit mode\n"
    },
    {
      "commit": "4da7072ad6831a35a11341097ce477e18651bedd",
      "tree": "5fc5b77adec0691174a20453884d8130a2d93335",
      "parents": [
        "b7157acf429e6aef690646ba964b9ebd25049ec2"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "agordeev@redhat.com",
        "time": "Tue Mar 20 15:19:36 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 13:47:25 2012 +0100"
      },
      "message": "x86/io_apic: Move and reenable irq only when CONFIG_GENERIC_PENDING_IRQ\u003dy\n\nThis patch removes dead code from certain .config variations.\n\nWhen CONFIG_GENERIC_PENDING_IRQ\u003dn irq move and reenable code is\nnever get executed, nor do_unmask_irq variable updates its init\nvalue. Move the code under CONFIG_GENERIC_PENDING_IRQ macro.\n\nSigned-off-by: Alexander Gordeev \u003cagordeev@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120320141935.GA24806@dhcp-26-207.brq.redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b7157acf429e6aef690646ba964b9ebd25049ec2",
      "tree": "50e14ff23bde509e429ac9545909c02367a75146",
      "parents": [
        "e335e3eb82dada2765297f6ba501afc7555aba10"
      ],
      "author": {
        "name": "Steffen Persvold",
        "email": "sp@numascale.com",
        "time": "Fri Mar 16 20:25:35 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 13:28:43 2012 +0100"
      },
      "message": "x86/apic: Add separate apic_id_valid() functions for selected apic drivers\n\nAs suggested by Suresh Siddha and Yinghai Lu:\n\nFor x2apic pre-enabled systems, apic driver is set already early\nthrough early_acpi_boot_init()/early_acpi_process_madt()/\nacpi_parse_madt()/default_acpi_madt_oem_check() path so that\napic_id_valid() checking will be sufficient during MADT and SRAT\nparsing.\n\nFor non-x2apic pre-enabled systems, all apic ids should be less\nthan 255.\n\nThis allows us to substitute the checks in\narch/x86/kernel/acpi/boot.c::acpi_parse_x2apic() and\narch/x86/mm/srat.c::acpi_numa_x2apic_affinity_init() with\napic-\u003eapic_id_valid().\n\nIn addition we can avoid feigning the x2apic cpu feature in the\nNumaChip apic code.\n\nThe following apic drivers have separate apic_id_valid()\nfunctions which will accept x2apic type IDs :\n\n x2apic_phys\n x2apic_cluster\n x2apic_uv_x\n apic_numachip\n\nSigned-off-by: Steffen Persvold \u003csp@numascale.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Daniel J Blueman \u003cdaniel@numascale-asia.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nLink: http://lkml.kernel.org/r/1331925935-13372-1-git-send-email-sp@numascale.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "0b8b8078cb4db2ebe9a20f2b2eaeb58988be32bd",
      "tree": "d043886242201e045412654d24c534909c52a2de",
      "parents": [
        "29a2e2836ff9ea65a603c89df217f4198973a74f"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Mar 22 21:31:43 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 09:55:00 2012 +0100"
      },
      "message": "x86: Fix excessive MSR print out when show_msr is not specified\n\nDave found:\n\n| During bootup, I now have 162 messages like this..\n| [    0.227346]  MSR0000001b: 00000000fee00900\n| [    0.227465]  MSR00000021: 0000000000000001\n| [    0.227584]  MSR0000002a: 00000000c1c81400\n|\n| commit 21c3fcf3e39353d4f21d50e257cc74f3204b1988 looks suspect.\n| It claims that it will only print these out if show_msr\u003d is\n| passed, but that doesn\u0027t seem to be the case.\n\nFix it by changing to the version that checks the index.\n\nReported-and-tested-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1332477103-4595-1-git-send-email-yinghai@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c7206205d00ab375839bd6c7ddb247d600693c09",
      "tree": "24b9d66a5eaef77c1fc40bc8f6f28acfd167bf5b",
      "parents": [
        "c5bc437702b24817cabd65a6a57971ff91a7712c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Mar 22 17:26:36 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 09:52:16 2012 +0100"
      },
      "message": "perf: Fix mmap_page capabilities and docs\n\nComplete the syscall-less self-profiling feature and address\nall complaints, namely:\n\n - capabilities, so we can detect what is actually available at runtime\n\n     Add a capabilities field to perf_event_mmap_page to indicate\n     what is actually available for use.\n\n - on x86: RDPMC weirdness due to being 40/48 bits and not sign-extending\n   properly.\n\n - ABI documentation as to how all this stuff works.\n\nAlso improve the documentation for the new features.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1332433596.2487.33.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c5bc437702b24817cabd65a6a57971ff91a7712c",
      "tree": "ecf85a6f3f788d5009cf1136f3a30907e02e8802",
      "parents": [
        "6605f9ac69593d480324ba5fa05f64cfebf4db2f",
        "4bf9ce1b5ecffffeb8b9d7e925bac3e6b10109aa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 09:16:03 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 09:16:03 2012 +0100"
      },
      "message": "Merge tag \u0027perf-core-for-mingo\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent\n\nCleanups and fixes for perf/core:\n\n. Short term fix for \u0027diff\u0027 tool breakage related to perf.data files\n  with multiple events. From Jiri Olsa\n\n. Cleanup for event id tracepoint reading routine, from Borislav Petkov\n\n. 32-bit compilation fixes from Jiri Olsa\n\n. Event parsing modifier assignment fixes from Jiri Olsa\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "29a2e2836ff9ea65a603c89df217f4198973a74f",
      "tree": "8570ae8b4b95995497b69495a4c9db351d0d6720",
      "parents": [
        "446e1c86d51d0823e003a43a2b85c430efce2733"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Thu Mar 22 21:39:25 2012 +0100"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Mar 22 13:50:25 2012 -0700"
      },
      "message": "x86-32: Fix endless loop when processing signals for kernel tasks\n\nThe problem occurs on !CONFIG_VM86 kernels [1] when a kernel-mode task\nreturns from a system call with a pending signal.\n\nA real-life scenario is a child of \u0027khelper\u0027 returning from a failed\nkernel_execve() in ____call_usermodehelper() [ kernel/kmod.c ].\nkernel_execve() fails due to a pending SIGKILL, which is the result of\n\"kill -9 -1\" (at least, busybox\u0027s init does it upon reboot).\n\nThe loop is as follows:\n\n* syscall_exit_work:\n - work_pending:            // start_of_the_loop\n - work_notify_sig:\n   - do_notify_resume()\n     - do_signal()\n       - if (!user_mode(regs)) return;\n - resume_userspace         // TIF_SIGPENDING is still set\n - work_pending             // so we call work_pending \u003d\u003e goto\n                            // start_of_the_loop\n\nMore information can be found in another LKML thread:\nhttp://www.serverphorums.com/read.php?12,457826\n\n[1] the problem was also seen on MIPS.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1332448765.2299.68.camel@dimm\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "639077fb69aec8112e5427210a83d0fb192969f0",
      "tree": "31513fea8a3a7eaa4d2db10194c0435cf2395d20",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Mon Mar 19 15:16:48 2012 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Mar 22 15:07:15 2012 -0500"
      },
      "message": "kgdb: x86: Return all segment registers also in 64-bit mode\n\nEven if the content is always 0, gdb expects us to return also ds,\nes, fs, and gs while in x86-64 mode. Do this to avoid ugly errors on\n\"info registers\".\n\n[jason.wessel@windriver.com: adjust NUMREGBYTES for two new regs]\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "28f23d1f3b6a6078312b6e9585e583cc7326fe22",
      "tree": "db366c75c2e2d12a2a2c3b7299c35ef7c72928a4",
      "parents": [
        "23904815461ba223a8baf7490051597fa054299b",
        "c7b738351ba92f48b943ac59aff6b5b0f17f37c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:44:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:44:50 2012 -0700"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 \"urgent\" leftovers from Ingo Molnar:\n \"Pending x86/urgent bits that were not high prio enough to warrant\n  -rc-less v3.3-final inclusion.\"\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, efi: Fix pointer math issue in handle_ramdisks()\n  x86/ioapic: Add register level checks to detect bogus io-apic entries\n  x86, mce: Fix rcu splat in drain_mce_log_buffer()\n  x86, memblock: Move mem_hole_size() to .init\n"
    },
    {
      "commit": "23904815461ba223a8baf7490051597fa054299b",
      "tree": "2d52ce8ff18c4f731183d0b10048eb74489a3391",
      "parents": [
        "754b9800779402924fffe456b49d557e15260cbf",
        "fa63030e9c79e37b4d4e63b39ffb09cfb7aa0fe4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:43:22 2012 -0700"
      },
      "message": "Merge branch \u0027x86-platform-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 platform changes from Ingo Molnar.\n\nRemoves the Moorestown platform that nobody ever used.\n\n* \u0027x86-platform-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/platform: Move APIC ID validity check into platform APIC code\n  x86/olpc/xo15/sci: Enable lid close wakeup control\n  x86/geode/net5501: Add platform driver for Soekris Engineering net5501\n  x86/geode/alix2: Supplement driver to include GPIO button support\n  x86/mid/powerbtn: Use MSIC read/write instead of ipc_scu\n  x86/mid/thermal: Turn off thermistor\n  x86/mid/thermal: Add msic_thermal alias\n  x86/mid/thermal: Convert to use Intel MSIC API\n  x86/mid/scu_ipc: Remove Moorestown support\n  x86/mid: Kill off Moorestown\n  x86/mrst: Add msic_thermal platform support\n  x86/config: Select MSIC MFD driver on Intel Medfield platform\n  x86/mid: Remove Intel Moorestown\n  x86/mrst: Set ISA bus type for fake MP IRQs\n  x86/ioapic: Use legacy_pic to set correct gsi-irq mapping\n"
    },
    {
      "commit": "754b9800779402924fffe456b49d557e15260cbf",
      "tree": "0e0441eca766616fccd8fc37a3885397efc6063a",
      "parents": [
        "35cb8d9e18c0bb33b90d7e574abadbe23b65427d",
        "ea281a9ebaba3287130dbe15bb0aad6f798bb06b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:04 2012 -0700"
      },
      "message": "Merge branch \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull MCE changes from Ingo Molnar.\n\n* \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/mce: Fix return value of mce_chrdev_read() when erst is disabled\n  x86/mce: Convert static array of pointers to per-cpu variables\n  x86/mce: Replace hard coded hex constants with symbolic defines\n  x86/mce: Recognise machine check bank signature for data path error\n  x86/mce: Handle \"action required\" errors\n  x86/mce: Add mechanism to safely save information in MCE handler\n  x86/mce: Create helper function to save addr/misc when needed\n  HWPOISON: Add code to handle \"action required\" errors.\n  HWPOISON: Clean up memory_failure() vs. __memory_failure()\n"
    },
    {
      "commit": "35cb8d9e18c0bb33b90d7e574abadbe23b65427d",
      "tree": "7bf2ce00ce1203a54ad5ace4f707a10f4fe0b14b",
      "parents": [
        "02c502566ef505d0469fa27567f48766c1f5f7af",
        "1361b83a13d4d92e53fbb6c877528713e118b821"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:41:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:41:22 2012 -0700"
      },
      "message": "Merge branch \u0027x86-fpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/fpu changes from Ingo Molnar.\n\n* \u0027x86-fpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  i387: Split up \u003casm/i387.h\u003e into exported and internal interfaces\n  i387: Uninline the generic FP helpers that we expose to kernel modules\n"
    },
    {
      "commit": "f06fc0c0de0b4f01dbad8ec5552e78192c7abbb8",
      "tree": "d31b0639244cbcaca2957b1c0c6c05686d4aeffa",
      "parents": [
        "4c64616bb51b399886ded8f4f69bad4da2da1817",
        "1adbfa3511ee1c1118e16a9a0246870f12fef4e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:31:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:31:31 2012 -0700"
      },
      "message": "Merge branch \u0027x86-eficross-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/eficross (booting 32/64-bit kernel from 64/32-bit EFI) from Ingo Molnar\n\n* \u0027x86-eficross-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, efi: Allow basic init with mixed 32/64-bit efi/kernel\n  x86, efi: Add basic error handling\n  x86, efi: Cleanup config table walking\n  x86, efi: Convert printk to pr_*()\n  x86, efi: Refactor efi_init() a bit\n"
    },
    {
      "commit": "4c64616bb51b399886ded8f4f69bad4da2da1817",
      "tree": "341991585a9998e8c9bf20600f0d5cbf5a1746d2",
      "parents": [
        "c5c7fb8fbd7cd228132b6e2a17a10f246ffc06ee",
        "943bc7e110f269f88dc92bbf249adbd384d35f1c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:30:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:30:39 2012 -0700"
      },
      "message": "Merge branch \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/debug changes from Ingo Molnar.\n\n* \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Fix section warnings\n  x86-64: Fix CFI data for common_interrupt()\n  x86: Properly _init-annotate NMI selftest code\n  x86/debug: Fix/improve the show_msr\u003d\u003ccpus\u003e debug print out\n"
    },
    {
      "commit": "c5c7fb8fbd7cd228132b6e2a17a10f246ffc06ee",
      "tree": "3cd15a14d78b399c5dbeaf8beba7599615bc40bd",
      "parents": [
        "1b674bf106f59e04e24b3825c2f08dcd9a5b7264",
        "140f190bc3a3b6f200548d204befd998eadd63fd",
        "35f1790e6c6a7e4cae57b616cf36444d27fa6b28",
        "513c4ec6e4759aa33c90af0658b82eb4d2027871",
        "42dfc43ee5999ac64284476ea0ac6c937587cf2b",
        "b0deca2e0270135f797e81bdb0743e50fd1dc58d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:28:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:28:15 2012 -0700"
      },
      "message": "Merge branches \u0027x86-cpu-for-linus\u0027, \u0027x86-boot-for-linus\u0027, \u0027x86-cpufeature-for-linus\u0027, \u0027x86-process-for-linus\u0027 and \u0027x86-uv-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull trivial x86 branches from Ingo Molnar: small one-liners to fix up\ndetails.\n\n* \u0027x86-cpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Remove some noise from boot log when starting cpus\n\n* \u0027x86-boot-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, boot: Fix port argument to inl() function\n\n* \u0027x86-cpufeature-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, cpufeature: Add CPU features from Intel document 319433-012A\n\n* \u0027x86-process-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86_64: Record stack pointer before task execution begins\n\n* \u0027x86-uv-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/UV: Lower UV rtc clocksource rating\n"
    },
    {
      "commit": "e17fdf5c6778ff77d93dd769910992e4073b9348",
      "tree": "d1a7ca2b1faf4301b39300fbd82f9b91e605a77e",
      "parents": [
        "95211279c5ad00a317c98221d7e4365e02f20836",
        "a240ada241dafe290e7532d1ddeb98fdf1419068"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:13:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:13:24 2012 -0700"
      },
      "message": "Merge branch \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/asm changes from Ingo Molnar\n\n* \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Include probe_roms.h in probe_roms.c\n  x86/32: Print control and debug registers for kerenel context\n  x86: Tighten dependencies of CPU_SUP_*_32\n  x86/numa: Improve internode cache alignment\n  x86: Fix the NMI nesting comments\n  x86-64: Improve insn scheduling in SAVE_ARGS_IRQ\n  x86-64: Fix CFI annotations for NMI nesting code\n  bitops: Add missing parentheses to new get_order macro\n  bitops: Optimise get_order()\n  bitops: Adjust the comment on get_order() to describe the size\u003d\u003d0 case\n  x86/spinlocks: Eliminate TICKET_MASK\n  x86-64: Handle byte-wise tail copying in memcpy() without a loop\n  x86-64: Fix memcpy() to support sizes of 4Gb and above\n  x86-64: Fix memset() to support sizes of 4Gb and above\n  x86-64: Slightly shorten copy_page()\n"
    },
    {
      "commit": "e840dfe334b4791af07aadee1b2cf3c7c7363581",
      "tree": "b0f8336f578cb6d3e39399f6714b8ec811536225",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7",
        "a1f37788a6d8c037e7d92fe4a0fe9ec0d713b21e"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Mar 22 01:31:09 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Mar 22 01:31:09 2012 -0400"
      },
      "message": "Merge branch \u0027stable/for-x86-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into tboot\n"
    },
    {
      "commit": "b716ad953a2bc4a543143c1d9836b7007a4b182f",
      "tree": "99791c6c857b1ff7b922eaa0163ec3c912549009",
      "parents": [
        "f44d21985eb6af7361d3785e26923355172147bd"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:33:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: search from free_area_cache for the bigger size\n\nIf the required size is bigger than cached_hole_size it is better to\nsearch from free_area_cache - it is easier to get a free region,\nspecifically for the 64 bit process whose address space is large enough\n\nDo it just as hugetlb_get_unmapped_area_topdown() in arch/x86/mm/hugetlbpage.c\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a5a9906d4e8d1976b701f889d8f35d54b928f25",
      "tree": "e51912e725f224663a738045a4d0528d08da4572",
      "parents": [
        "31f6765266417c0d99f0e922fe82848a7c9c2ae9"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Mar 21 16:33:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:54 2012 -0700"
      },
      "message": "mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode\n\nIn some cases it may happen that pmd_none_or_clear_bad() is called with\nthe mmap_sem hold in read mode.  In those cases the huge page faults can\nallocate hugepmds under pmd_none_or_clear_bad() and that can trigger a\nfalse positive from pmd_bad() that will not like to see a pmd\nmaterializing as trans huge.\n\nIt\u0027s not khugepaged causing the problem, khugepaged holds the mmap_sem\nin write mode (and all those sites must hold the mmap_sem in read mode\nto prevent pagetables to go away from under them, during code review it\nseems vm86 mode on 32bit kernels requires that too unless it\u0027s\nrestricted to 1 thread per process or UP builds).  The race is only with\nthe huge pagefaults that can convert a pmd_none() into a\npmd_trans_huge().\n\nEffectively all these pmd_none_or_clear_bad() sites running with\nmmap_sem in read mode are somewhat speculative with the page faults, and\nthe result is always undefined when they run simultaneously.  This is\nprobably why it wasn\u0027t common to run into this.  For example if the\nmadvise(MADV_DONTNEED) runs zap_page_range() shortly before the page\nfault, the hugepage will not be zapped, if the page fault runs first it\nwill be zapped.\n\nAltering pmd_bad() not to error out if it finds hugepmds won\u0027t be enough\nto fix this, because zap_pmd_range would then proceed to call\nzap_pte_range (which would be incorrect if the pmd become a\npmd_trans_huge()).\n\nThe simplest way to fix this is to read the pmd in the local stack\n(regardless of what we read, no need of actual CPU barriers, only\ncompiler barrier needed), and be sure it is not changing under the code\nthat computes its value.  Even if the real pmd is changing under the\nvalue we hold on the stack, we don\u0027t care.  If we actually end up in\nzap_pte_range it means the pmd was not none already and it was not huge,\nand it can\u0027t become huge from under us (khugepaged locking explained\nabove).\n\nAll we need is to enforce that there is no way anymore that in a code\npath like below, pmd_trans_huge can be false, but pmd_none_or_clear_bad\ncan run into a hugepmd.  The overhead of a barrier() is just a compiler\ntweak and should not be measurable (I only added it for THP builds).  I\ndon\u0027t exclude different compiler versions may have prevented the race\ntoo by caching the value of *pmd on the stack (that hasn\u0027t been\nverified, but it wouldn\u0027t be impossible considering\npmd_none_or_clear_bad, pmd_bad, pmd_trans_huge, pmd_none are all inlines\nand there\u0027s no external function called in between pmd_trans_huge and\npmd_none_or_clear_bad).\n\n\t\tif (pmd_trans_huge(*pmd)) {\n\t\t\tif (next-addr !\u003d HPAGE_PMD_SIZE) {\n\t\t\t\tVM_BUG_ON(!rwsem_is_locked(\u0026tlb-\u003emm-\u003emmap_sem));\n\t\t\t\tsplit_huge_page_pmd(vma-\u003evm_mm, pmd);\n\t\t\t} else if (zap_huge_pmd(tlb, vma, pmd, addr))\n\t\t\t\tcontinue;\n\t\t\t/* fall through */\n\t\t}\n\t\tif (pmd_none_or_clear_bad(pmd))\n\nBecause this race condition could be exercised without special\nprivileges this was reported in CVE-2012-1179.\n\nThe race was identified and fully explained by Ulrich who debugged it.\nI\u0027m quoting his accurate explanation below, for reference.\n\n\u003d\u003d\u003d\u003d\u003d\u003d start quote \u003d\u003d\u003d\u003d\u003d\u003d\u003d\n      mapcount 0 page_mapcount 1\n      kernel BUG at mm/huge_memory.c:1384!\n\n    At some point prior to the panic, a \"bad pmd ...\" message similar to the\n    following is logged on the console:\n\n      mm/memory.c:145: bad pmd ffff8800376e1f98(80000000314000e7).\n\n    The \"bad pmd ...\" message is logged by pmd_clear_bad() before it clears\n    the page\u0027s PMD table entry.\n\n        143 void pmd_clear_bad(pmd_t *pmd)\n        144 {\n    -\u003e  145         pmd_ERROR(*pmd);\n        146         pmd_clear(pmd);\n        147 }\n\n    After the PMD table entry has been cleared, there is an inconsistency\n    between the actual number of PMD table entries that are mapping the page\n    and the page\u0027s map count (_mapcount field in struct page). When the page\n    is subsequently reclaimed, __split_huge_page() detects this inconsistency.\n\n       1381         if (mapcount !\u003d page_mapcount(page))\n       1382                 printk(KERN_ERR \"mapcount %d page_mapcount %d\\n\",\n       1383                        mapcount, page_mapcount(page));\n    -\u003e 1384         BUG_ON(mapcount !\u003d page_mapcount(page));\n\n    The root cause of the problem is a race of two threads in a multithreaded\n    process. Thread B incurs a page fault on a virtual address that has never\n    been accessed (PMD entry is zero) while Thread A is executing an madvise()\n    system call on a virtual address within the same 2 MB (huge page) range.\n\n               virtual address space\n              .---------------------.\n              |                     |\n              |                     |\n            .-|---------------------|\n            | |                     |\n            | |                     |\u003c-- B(fault)\n            | |                     |\n      2 MB  | |/////////////////////|-.\n      huge \u003c  |/////////////////////|  \u003e A(range)\n      page  | |/////////////////////|-\u0027\n            | |                     |\n            | |                     |\n            \u0027-|---------------------|\n              |                     |\n              |                     |\n              \u0027---------------------\u0027\n\n    - Thread A is executing an madvise(..., MADV_DONTNEED) system call\n      on the virtual address range \"A(range)\" shown in the picture.\n\n    sys_madvise\n      // Acquire the semaphore in shared mode.\n      down_read(\u0026current-\u003emm-\u003emmap_sem)\n      ...\n      madvise_vma\n        switch (behavior)\n        case MADV_DONTNEED:\n             madvise_dontneed\n               zap_page_range\n                 unmap_vmas\n                   unmap_page_range\n                     zap_pud_range\n                       zap_pmd_range\n                         //\n                         // Assume that this huge page has never been accessed.\n                         // I.e. content of the PMD entry is zero (not mapped).\n                         //\n                         if (pmd_trans_huge(*pmd)) {\n                             // We don\u0027t get here due to the above assumption.\n                         }\n                         //\n                         // Assume that Thread B incurred a page fault and\n             .---------\u003e // sneaks in here as shown below.\n             |           //\n             |           if (pmd_none_or_clear_bad(pmd))\n             |               {\n             |                 if (unlikely(pmd_bad(*pmd)))\n             |                     pmd_clear_bad\n             |                     {\n             |                       pmd_ERROR\n             |                         // Log \"bad pmd ...\" message here.\n             |                       pmd_clear\n             |                         // Clear the page\u0027s PMD entry.\n             |                         // Thread B incremented the map count\n             |                         // in page_add_new_anon_rmap(), but\n             |                         // now the page is no longer mapped\n             |                         // by a PMD entry (-\u003e inconsistency).\n             |                     }\n             |               }\n             |\n             v\n    - Thread B is handling a page fault on virtual address \"B(fault)\" shown\n      in the picture.\n\n    ...\n    do_page_fault\n      __do_page_fault\n        // Acquire the semaphore in shared mode.\n        down_read_trylock(\u0026mm-\u003emmap_sem)\n        ...\n        handle_mm_fault\n          if (pmd_none(*pmd) \u0026\u0026 transparent_hugepage_enabled(vma))\n              // We get here due to the above assumption (PMD entry is zero).\n              do_huge_pmd_anonymous_page\n                alloc_hugepage_vma\n                  // Allocate a new transparent huge page here.\n                ...\n                __do_huge_pmd_anonymous_page\n                  ...\n                  spin_lock(\u0026mm-\u003epage_table_lock)\n                  ...\n                  page_add_new_anon_rmap\n                    // Here we increment the page\u0027s map count (starts at -1).\n                    atomic_set(\u0026page-\u003e_mapcount, 0)\n                  set_pmd_at\n                    // Here we set the page\u0027s PMD entry which will be cleared\n                    // when Thread A calls pmd_clear_bad().\n                  ...\n                  spin_unlock(\u0026mm-\u003epage_table_lock)\n\n    The mmap_sem does not prevent the race because both threads are acquiring\n    it in shared mode (down_read).  Thread B holds the page_table_lock while\n    the page\u0027s map count and PMD table entry are updated.  However, Thread A\n    does not synchronize on that lock.\n\n\u003d\u003d\u003d\u003d\u003d\u003d end quote \u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n[akpm@linux-foundation.org: checkpatch fixes]\nReported-by: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[2.6.38+]\nCc: Mark Salter \u003cmsalter@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c207f3a43194e108dda43dc9a1ce507335cff6b9",
      "tree": "55880f8301e8546b1908f69947d0d41aaa044814",
      "parents": [
        "c7c66c0cb0c77b1a8edf09bca57d922312d58030",
        "e7cc3aca0f6a36b018934264ee20bee45dc13e29"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:27:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:27:19 2012 -0700"
      },
      "message": "Merge tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull irq_domain support for all architectures from Grant Likely:\n \"Generialize powerpc\u0027s irq_host as irq_domain\n\n  This branch takes the PowerPC irq_host infrastructure (reverse mapping\n  from Linux IRQ numbers to hardware irq numbering), generalizes it,\n  renames it to irq_domain, and makes it available to all architectures.\n\n  Originally the plan has been to create an all-new irq_domain\n  implementation which addresses some of the powerpc shortcomings such\n  as not handling 1:1 mappings well, but doing that proved to be far\n  more difficult and invasive than generalizing the working code and\n  refactoring it in-place.  So, this branch rips out the \u0027new\u0027\n  irq_domain and replaces it with the modified powerpc version (in a\n  fully bisectable way of course).  It converts all users over to the\n  new API and makes irq_domain selectable on any architecture.\n\n  No architecture is forced to enable irq_domain, but the infrastructure\n  is required for doing OpenFirmware style irq translations.  It will\n  even work on SPARC even though SPARC has it\u0027s own mechanism for\n  translating irqs at boot time.  MIPS, microblaze, embedded x86 and c6x\n  are converted too.\n\n  The resulting irq_domain code is probably still too verbose and can be\n  optimized more, but that can be done incrementally and is a task for\n  follow-on patches.\"\n\n* tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6: (31 commits)\n  dt: fix twl4030 for non-dt compile on x86\n  mfd: twl-core: Add IRQ_DOMAIN dependency\n  devicetree: Add empty of_platform_populate() for !CONFIG_OF_ADDRESS (sparc)\n  irq_domain: Centralize definition of irq_dispose_mapping()\n  irq_domain/mips: Allow irq_domain on MIPS\n  irq_domain/x86: Convert x86 (embedded) to use common irq_domain\n  ppc-6xx: fix build failure in flipper-pic.c and hlwd-pic.c\n  irq_domain/microblaze: Convert microblaze to use irq_domains\n  irq_domain/powerpc: Replace custom xlate functions with library functions\n  irq_domain/powerpc: constify irq_domain_ops\n  irq_domain/c6x: Use library of xlate functions\n  irq_domain/c6x: constify irq_domain structures\n  irq_domain/c6x: Convert c6x to use generic irq_domain support.\n  irq_domain: constify irq_domain_ops\n  irq_domain: Create common xlate functions that device drivers can use\n  irq_domain: Remove irq_domain_add_simple()\n  irq_domain: Remove \u0027new\u0027 irq_domain in favour of the ppc one\n  mfd: twl-core.c: Fix the number of interrupts managed by twl4030\n  of/address: add empty static inlines for !CONFIG_OF\n  irq_domain: Add support for base irq and hwirq in legacy mappings\n  ...\n"
    },
    {
      "commit": "c7c66c0cb0c77b1a8edf09bca57d922312d58030",
      "tree": "77277103c5f16aa4dee64978a060933d92e14776",
      "parents": [
        "9f3938346a5c1fa504647670edb5fea5756cfb00",
        "98e8bdafeb4728a6af7bbcbcc3984967d1cf2bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:15:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:15:51 2012 -0700"
      },
      "message": "Merge tag \u0027pm-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management updates for 3.4 from Rafael Wysocki:\n \"Assorted extensions and fixes including:\n\n  * Introduction of early/late suspend/hibernation device callbacks.\n  * Generic PM domains extensions and fixes.\n  * devfreq updates from Axel Lin and MyungJoo Ham.\n  * Device PM QoS updates.\n  * Fixes of concurrency problems with wakeup sources.\n  * System suspend and hibernation fixes.\"\n\n* tag \u0027pm-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (43 commits)\n  PM / Domains: Check domain status during hibernation restore of devices\n  PM / devfreq: add relation of recommended frequency.\n  PM / shmobile: Make MTU2 driver use pm_genpd_dev_always_on()\n  PM / shmobile: Make CMT driver use pm_genpd_dev_always_on()\n  PM / shmobile: Make TMU driver use pm_genpd_dev_always_on()\n  PM / Domains: Introduce \"always on\" device flag\n  PM / Domains: Fix hibernation restore of devices, v2\n  PM / Domains: Fix handling of wakeup devices during system resume\n  sh_mmcif / PM: Use PM QoS latency constraint\n  tmio_mmc / PM: Use PM QoS latency constraint\n  PM / QoS: Make it possible to expose PM QoS latency constraints\n  PM / Sleep: JBD and JBD2 missing set_freezable()\n  PM / Domains: Fix include for PM_GENERIC_DOMAINS\u003dn case\n  PM / Freezer: Remove references to TIF_FREEZE in comments\n  PM / Sleep: Add more wakeup source initialization routines\n  PM / Hibernate: Enable usermodehelpers in hibernate() error path\n  PM / Sleep: Make __pm_stay_awake() delete wakeup source timers\n  PM / Sleep: Fix race conditions related to wakeup source timer function\n  PM / Sleep: Fix possible infinite loop during wakeup source destruction\n  PM / Hibernate: print physical addresses consistently with other parts of kernel\n  ...\n"
    },
    {
      "commit": "9f3938346a5c1fa504647670edb5fea5756cfb00",
      "tree": "7cf6d24d6b076c8db8571494984924cac03703a2",
      "parents": [
        "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
        "317b6e128247f75976b0fc2b9fd8d2c20ef13b3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "message": "Merge branch \u0027kmap_atomic\u0027 of git://github.com/congwang/linux\n\nPull kmap_atomic cleanup from Cong Wang.\n\nIt\u0027s been in -next for a long time, and it gets rid of the (no longer\nused) second argument to k[un]map_atomic().\n\nFix up a few trivial conflicts in various drivers, and do an \"evil\nmerge\" to catch some new uses that have come in since Cong\u0027s tree.\n\n* \u0027kmap_atomic\u0027 of git://github.com/congwang/linux: (59 commits)\n  feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal\n  highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]\n  drbd: remove the second argument of k[un]map_atomic()\n  zcache: remove the second argument of k[un]map_atomic()\n  gma500: remove the second argument of k[un]map_atomic()\n  dm: remove the second argument of k[un]map_atomic()\n  tomoyo: remove the second argument of k[un]map_atomic()\n  sunrpc: remove the second argument of k[un]map_atomic()\n  rds: remove the second argument of k[un]map_atomic()\n  net: remove the second argument of k[un]map_atomic()\n  mm: remove the second argument of k[un]map_atomic()\n  lib: remove the second argument of k[un]map_atomic()\n  power: remove the second argument of k[un]map_atomic()\n  kdb: remove the second argument of k[un]map_atomic()\n  udf: remove the second argument of k[un]map_atomic()\n  ubifs: remove the second argument of k[un]map_atomic()\n  squashfs: remove the second argument of k[un]map_atomic()\n  reiserfs: remove the second argument of k[un]map_atomic()\n  ocfs2: remove the second argument of k[un]map_atomic()\n  ntfs: remove the second argument of k[un]map_atomic()\n  ...\n"
    },
    {
      "commit": "4a52246302f01596f0edf7b4a3e6425e23479192",
      "tree": "f384d86722d3ccfc875e3e5e8d8726e993a922ee",
      "parents": [
        "9f9d2760da8c7f94fae119fac3e13d5a1702f8f0",
        "adc80ae60eae24a43a357bf5b30fb496f34aa605"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:16:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:16:20 2012 -0700"
      },
      "message": "Merge tag \u0027driver-core-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nPull driver core patches for 3.4-rc1 from Greg KH:\n \"Here\u0027s the big driver core merge for 3.4-rc1.\n\n  Lots of various things here, sysfs fixes/tweaks (with the nlink\n  breakage reverted), dynamic debugging updates, w1 drivers, hyperv\n  driver updates, and a variety of other bits and pieces, full\n  information in the shortlog.\"\n\n* tag \u0027driver-core-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (78 commits)\n  Tools: hv: Support enumeration from all the pools\n  Tools: hv: Fully support the new KVP verbs in the user level daemon\n  Drivers: hv: Support the newly introduced KVP messages in the driver\n  Drivers: hv: Add new message types to enhance KVP\n  regulator: Support driver probe deferral\n  Revert \"sysfs: Kill nlink counting.\"\n  uevent: send events in correct order according to seqnum (v3)\n  driver core: minor comment formatting cleanups\n  driver core: move the deferred probe pointer into the private area\n  drivercore: Add driver probe deferral mechanism\n  DS2781 Maxim Stand-Alone Fuel Gauge battery and w1 slave drivers\n  w1_bq27000: Only one thread can access the bq27000 at a time.\n  w1_bq27000 - remove w1_bq27000_write\n  w1_bq27000: remove unnecessary NULL test.\n  sysfs: Fix memory leak in sysfs_sd_setsecdata().\n  intel_idle: Revert change of auto_demotion_disable_flags for Nehalem\n  w1: Fix w1_bq27000\n  driver-core: documentation: fix up Greg\u0027s email address\n  powernow-k6: Really enable auto-loading\n  powernow-k7: Fix CPU family number\n  ...\n"
    },
    {
      "commit": "161f7a7161191ab9c2e97f787829ef8dd2b95771",
      "tree": "9776d3f963c7f0d247b7fb324eab4811a1302f67",
      "parents": [
        "2ba68940c893c8f0bfc8573c041254251bb6aeab",
        "a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:32:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:32:09 2012 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer changes for v3.4 from Ingo Molnar\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)\n  ntp: Fix integer overflow when setting time\n  math: Introduce div64_long\n  cs5535-clockevt: Allow the MFGPT IRQ to be shared\n  cs5535-clockevt: Don\u0027t ignore MFGPT on SMP-capable kernels\n  x86/time: Eliminate unused irq0_irqs counter\n  clocksource: scx200_hrt: Fix the build\n  x86/tsc: Reduce the TSC sync check time for core-siblings\n  timer: Fix bad idle check on irq entry\n  nohz: Remove ts-\u003eEinidle checks before restarting the tick\n  nohz: Remove update_ts_time_stat from tick_nohz_start_idle\n  clockevents: Leave the broadcast device in shutdown mode when not needed\n  clocksource: Load the ACPI PM clocksource asynchronously\n  clocksource: scx200_hrt: Convert scx200 to use clocksource_register_hz\n  clocksource: Get rid of clocksource_calc_mult_shift()\n  clocksource: dbx500: convert to clocksource_register_hz()\n  clocksource: scx200_hrt:  use pr_\u003clevel\u003e instead of printk\n  time: Move common updates to a function\n  time: Reorder so the hot data is together\n  time: Remove most of xtime_lock usage in timekeeping.c\n  ntp: Add ntp_lock to replace xtime_locking\n  ...\n"
    },
    {
      "commit": "2ba68940c893c8f0bfc8573c041254251bb6aeab",
      "tree": "fa83ebb01d32abd98123fa28f9f6f0b3eaeee25d",
      "parents": [
        "9c2b957db1772ebf942ae7a9346b14eba6c8ca66",
        "600e145882802d6ccbfe2c4aea243d97caeb91a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:31:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:31:44 2012 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes for v3.4 from Ingo Molnar\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)\n  printk: Make it compile with !CONFIG_PRINTK\n  sched/x86: Fix overflow in cyc2ns_offset\n  sched: Fix nohz load accounting -- again!\n  sched: Update yield() docs\n  printk/sched: Introduce special printk_sched() for those awkward moments\n  sched/nohz: Correctly initialize \u0027next_balance\u0027 in \u0027nohz\u0027 idle balancer\n  sched: Cleanup cpu_active madness\n  sched: Fix load-balance wreckage\n  sched: Clean up parameter passing of proc_sched_autogroup_set_nice()\n  sched: Ditch per cgroup task lists for load-balancing\n  sched: Rename load-balancing fields\n  sched: Move load-balancing arguments into helper struct\n  sched/rt: Do not submit new work when PI-blocked\n  sched/rt: Prevent idle task boosting\n  sched/wait: Add __wake_up_all_locked() API\n  sched/rt: Document scheduler related skip-resched-check sites\n  sched/rt: Use schedule_preempt_disabled()\n  sched/rt: Add schedule_preempt_disabled()\n  sched/rt: Do not throttle when PI boosting\n  sched/rt: Keep period timer ticking when rt throttling is active\n  ...\n"
    },
    {
      "commit": "9c2b957db1772ebf942ae7a9346b14eba6c8ca66",
      "tree": "0dbb83e57260ea7fc0dc421f214d5f1b26262005",
      "parents": [
        "0bbfcaff9b2a69c71a95e6902253487ab30cb498",
        "bea95c152dee1791dd02cbc708afbb115bb00f9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:29:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:29:15 2012 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf events changes for v3.4 from Ingo Molnar:\n\n - New \"hardware based branch profiling\" feature both on the kernel and\n   the tooling side, on CPUs that support it.  (modern x86 Intel CPUs\n   with the \u0027LBR\u0027 hardware feature currently.)\n\n   This new feature is basically a sophisticated \u0027magnifying glass\u0027 for\n   branch execution - something that is pretty difficult to extract from\n   regular, function histogram centric profiles.\n\n   The simplest mode is activated via \u0027perf record -b\u0027, and the result\n   looks like this in perf report:\n\n\t$ perf record -b any_call,u -e cycles:u branchy\n\n\t$ perf report -b --sort\u003dsymbol\n\t    52.34%  [.] main                   [.] f1\n\t    24.04%  [.] f1                     [.] f3\n\t    23.60%  [.] f1                     [.] f2\n\t     0.01%  [k] _IO_new_file_xsputn    [k] _IO_file_overflow\n\t     0.01%  [k] _IO_vfprintf_internal  [k] _IO_new_file_xsputn\n\t     0.01%  [k] _IO_vfprintf_internal  [k] strchrnul\n\t     0.01%  [k] __printf               [k] _IO_vfprintf_internal\n\t     0.01%  [k] main                   [k] __printf\n\n   This output shows from/to branch columns and shows the highest\n   percentage (from,to) jump combinations - i.e.  the most likely taken\n   branches in the system.  \"branches\" can also include function calls\n   and any other synchronous and asynchronous transitions of the\n   instruction pointer that are not \u0027next instruction\u0027 - such as system\n   calls, traps, interrupts, etc.\n\n   This feature comes with (hopefully intuitive) flat ascii and TUI\n   support in perf report.\n\n - Various \u0027perf annotate\u0027 visual improvements for us assembly junkies.\n   It will now recognize function calls in the TUI and by hitting enter\n   you can follow the call (recursively) and back, amongst other\n   improvements.\n\n - Multiple threads/processes recording support in perf record, perf\n   stat, perf top - which is activated via a comma-list of PIDs:\n\n\tperf top -p 21483,21485\n\tperf stat -p 21483,21485 -ddd\n\tperf record -p 21483,21485\n\n - Support for per UID views, via the --uid paramter to perf top, perf\n   report, etc.  For example \u0027perf top --uid mingo\u0027 will only show the\n   tasks that I am running, excluding other users, root, etc.\n\n - Jump label restructurings and improvements - this includes the\n   factoring out of the (hopefully much clearer) include/linux/static_key.h\n   generic facility:\n\n\tstruct static_key key \u003d STATIC_KEY_INIT_FALSE;\n\n\t...\n\n\tif (static_key_false(\u0026key))\n\t        do unlikely code\n\telse\n\t        do likely code\n\n\t...\n\tstatic_key_slow_inc();\n\t...\n\tstatic_key_slow_inc();\n\t...\n\n   The static_key_false() branch will be generated into the code with as\n   little impact to the likely code path as possible.  the\n   static_key_slow_*() APIs flip the branch via live kernel code patching.\n\n   This facility can now be used more widely within the kernel to\n   micro-optimize hot branches whose likelihood matches the static-key\n   usage and fast/slow cost patterns.\n\n - SW function tracer improvements: perf support and filtering support.\n\n - Various hardenings of the perf.data ABI, to make older perf.data\u0027s\n   smoother on newer tool versions, to make new features integrate more\n   smoothly, to support cross-endian recording/analyzing workflows\n   better, etc.\n\n - Restructuring of the kprobes code, the splitting out of \u0027optprobes\u0027,\n   and a corner case bugfix.\n\n - Allow the tracing of kernel console output (printk).\n\n - Improvements/fixes to user-space RDPMC support, allowing user-space\n   self-profiling code to extract PMU counts without performing any\n   system calls, while playing nice with the kernel side.\n\n - \u0027perf bench\u0027 improvements\n\n - ... and lots of internal restructurings, cleanups and fixes that made\n   these features possible.  And, as usual this list is incomplete as\n   there were also lots of other improvements\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (120 commits)\n  perf report: Fix annotate double quit issue in branch view mode\n  perf report: Remove duplicate annotate choice in branch view mode\n  perf/x86: Prettify pmu config literals\n  perf report: Enable TUI in branch view mode\n  perf report: Auto-detect branch stack sampling mode\n  perf record: Add HEADER_BRANCH_STACK tag\n  perf record: Provide default branch stack sampling mode option\n  perf tools: Make perf able to read files from older ABIs\n  perf tools: Fix ABI compatibility bug in print_event_desc()\n  perf tools: Enable reading of perf.data files from different ABI rev\n  perf: Add ABI reference sizes\n  perf report: Add support for taken branch sampling\n  perf record: Add support for sampling taken branch\n  perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK\n  x86/kprobes: Split out optprobe related code to kprobes-opt.c\n  x86/kprobes: Fix a bug which can modify kernel code permanently\n  x86/kprobes: Fix instruction recovery on optimized path\n  perf: Add callback to flush branch_stack on context switch\n  perf: Disable PERF_SAMPLE_BRANCH_* when not supported\n  perf/x86: Add LBR software filter support for Intel CPUs\n  ...\n"
    },
    {
      "commit": "0bbfcaff9b2a69c71a95e6902253487ab30cb498",
      "tree": "f422bbfb8ba57909bf6e43f1d560b3f056cc3c61",
      "parents": [
        "5928a2b60cfdbad730f93696acab142d0b607280",
        "e04268b0effc0ceea366c50b3107baad9edadafa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:28:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:28:56 2012 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull irq/core changes for v3.4 from Ingo Molnar\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  genirq: Remove paranoid warnons and bogus fixups\n  genirq: Flush the irq thread on synchronization\n  genirq: Get rid of unnecessary IRQTF_DIED flag\n  genirq: No need to check IRQTF_DIED before stopping a thread handler\n  genirq: Get rid of unnecessary irqaction field in task_struct\n  genirq: Fix incorrect check for forced IRQ thread handler\n  softirq: Reduce invoke_softirq() code duplication\n  genirq: Fix long-term regression in genirq irq_set_irq_type() handling\n  x86-32/irq: Don\u0027t switch to irq stack for a user-mode irq\n"
    },
    {
      "commit": "8fd75e1216e0ba601a746177e6c102d5593b572f",
      "tree": "d9f8e867ccec9ecaa2b77616a01c1c3d0875d76e",
      "parents": [
        "91f2359396d87f24ea43d91ff77dec54847ad69a"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:17 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:15 2012 +0800"
      },
      "message": "x86: remove the second argument of k[un]map_atomic()\n\nAcked-by: Avi Kivity \u003cavi@redhat.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "b74f05d61b73af584d0c39121980171389ecfaaa",
      "tree": "1406185fb45430549b37ef3b4f62f9c5772ef139",
      "parents": [
        "9587190107d0c0cbaccbf7bf6b0245d29095a9ae"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Feb 13 11:07:27 2012 -0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Mar 20 12:37:45 2012 +0200"
      },
      "message": "x86: kvmclock: abstract save/restore sched_clock_state\n\nUpon resume from hibernation, CPU 0\u0027s hvclock area contains the old\nvalues for system_time and tsc_timestamp. It is necessary for the\nhypervisor to update these values with uptodate ones before the CPU uses\nthem.\n\nAbstract TSC\u0027s save/restore sched_clock_state functions and use\nrestore_state to write to KVM_SYSTEM_TIME MSR, forcing an update.\n\nAlso move restore_sched_clock_state before __restore_processor_state,\nsince the later calls CONFIG_LOCK_STAT\u0027s lockstat_clock (also for TSC).\nThanks to Igor Mammedov for tracking it down.\n\nFixes suspend-to-disk with kvmclock.\n\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "943bc7e110f269f88dc92bbf249adbd384d35f1c",
      "tree": "a8c77d2dd1926dfcefe9cff9273de3fe5489e4d7",
      "parents": [
        "928282e432ee584129a39da831ffa72c38e189b7"
      ],
      "author": {
        "name": "Steffen Persvold",
        "email": "sp@numascale.com",
        "time": "Thu Mar 15 12:16:28 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Mar 19 12:01:01 2012 +0100"
      },
      "message": "x86: Fix section warnings\n\nFix the following section warnings :\n\nWARNING: vmlinux.o(.text+0x49dbc): Section mismatch in reference\nfrom the function acpi_map_cpu2node() to the variable\n.cpuinit.data:__apicid_to_node The function acpi_map_cpu2node()\nreferences the variable __cpuinitdata __apicid_to_node. This is\noften because acpi_map_cpu2node lacks a __cpuinitdata\nannotation or the annotation of __apicid_to_node is wrong.\n\nWARNING: vmlinux.o(.text+0x49dc1): Section mismatch in reference\nfrom the function acpi_map_cpu2node() to the function\n.cpuinit.text:numa_set_node() The function acpi_map_cpu2node()\nreferences the function __cpuinit numa_set_node(). This is often\nbecause acpi_map_cpu2node lacks a __cpuinit  annotation or the\nannotation of numa_set_node is wrong.\n\nWARNING: vmlinux.o(.text+0x526e77): Section mismatch in\nreference from the function prealloc_protection_domains() to the\nfunction .init.text:alloc_passthrough_domain() The function\nprealloc_protection_domains() references the function __init\nalloc_passthrough_domain(). This is often because\nprealloc_protection_domains lacks a __init  annotation or the annotation of alloc_passthrough_domain is wrong.\n\nSigned-off-by: Steffen Persvold \u003csp@numascale.com\u003e\nLink: http://lkml.kernel.org/r/1331810188-24785-1-git-send-email-sp@numascale.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "641cc938815dfd09f8fa1ec72deb814f0938ac33",
      "tree": "8ced57a6b2d427bd34dcc30d3aebba3e0af45bb3",
      "parents": [
        "4a3d2d9bfb3b594b6e1f2b7eabfaf4e820a18c0e"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Mar 15 20:09:14 2012 +0100"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 16 14:06:06 2012 -0300"
      },
      "message": "perf: Adding sysfs group format attribute for pmu device\n\nAdding sysfs group \u0027format\u0027 attribute for pmu device that\ncontains a syntax description on how to construct raw events.\n\nThe event configuration is described in following\nstruct pefr_event_attr attributes:\n\n  config\n  config1\n  config2\n\nEach sysfs attribute within the format attribute group,\ndescribes mapping of name and bitfield definition within\none of above attributes.\n\neg:\n  \"/sys/...\u003cdev\u003e/format/event\" contains \"config:0-7\"\n  \"/sys/...\u003cdev\u003e/format/umask\" contains \"config:8-15\"\n  \"/sys/...\u003cdev\u003e/format/usr\"   contains \"config:16\"\n\nthe attribute value syntax is:\n\n  line:      config \u0027:\u0027 bits\n  config:    \u0027config\u0027 | \u0027config1\u0027 | \u0027config2\"\n  bits:      bits \u0027,\u0027 bit_term | bit_term\n  bit_term:  VALUE \u0027-\u0027 VALUE | VALUE\n\nAdding format attribute definitions for x86 cpu pmus.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLink: http://lkml.kernel.org/n/tip-vhdk5y2hyype9j63prymty36@git.kernel.org\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "57779dc2b3b75bee05ef5d1ada47f615f7a13932",
      "tree": "92ab03f63c9718e6f58fe201a2d8bde26517b3f9",
      "parents": [
        "4a649903f91232d02284d53724b0a45728111767"
      ],
      "author": {
        "name": "Alok Kataria",
        "email": "akataria@vmware.com",
        "time": "Tue Feb 21 18:19:55 2012 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Mar 15 18:23:11 2012 -0700"
      },
      "message": "x86, tsc: Skip refined tsc calibration on systems with reliable TSC\n\nWhile running the latest Linux as guest under VMware in highly\nover-committed situations, we have seen cases when the refined TSC\nalgorithm fails to get a valid tsc_start value in\ntsc_refine_calibration_work from multiple attempts. As a result the\nkernel keeps on scheduling the tsc_irqwork task for later. Subsequently\nafter several attempts when it gets a valid start value it goes through\nthe refined calibration and either bails out or uses the new results.\nGiven that the kernel originally read the TSC frequency from the\nplatform, which is the best it can get, I don\u0027t think there is much\nvalue in refining it.\n\nSo  for systems which get the TSC frequency from the platform we\nshould skip the refined tsc algorithm.\n\nWe can use the TSC_RELIABLE cpu cap flag to detect this, right now it is\nset only on VMware and for Moorestown Penwell both of which have there\nown TSC calibration methods.\n\nSigned-off-by: Alok N Kataria \u003cakataria@vmware.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Dirk Brandewie \u003cdirk.brandewie@gmail.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: stable@kernel.org\n[jstultz: Reworked to simply not schedule the refining work,\nrather then scheduling the work and bombing out later]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "2ab516575f2f273b19d95140d02c54612201e80a",
      "tree": "26db92249e65754d99759af21fd207507a81cec8",
      "parents": [
        "6c260d586343f7f78239d90aa9e2cfed02f74ff3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 28 19:46:04 2012 +0000"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Mar 15 18:17:58 2012 -0700"
      },
      "message": "x86: vdso: Use seqcount instead of seqlock\n\nThe update of the vdso data happens under xtime_lock, so adding a\nnested lock is pointless. Just use a seqcount to sync the readers.\n\nReviewed-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "6c260d586343f7f78239d90aa9e2cfed02f74ff3",
      "tree": "cd5fc9a28499a098185878bd186736091e965ab4",
      "parents": [
        "a4ca1298d8a0472a45624fa5fb99f90f0f367187"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 28 19:46:04 2012 +0000"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Mar 15 18:17:57 2012 -0700"
      },
      "message": "x86: vdso: Remove bogus locking in update_vsyscall_tz()\n\nChanging the sequence count in update_vsyscall_tz() is completely\npointless.\n\nThe vdso code copies the data unprotected. There is no point to change\nthis as sys_tz is nowhere protected at all. See sys_gettimeofday().\n\nReviewed-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "fa63030e9c79e37b4d4e63b39ffb09cfb7aa0fe4",
      "tree": "f02c5f84d7cece29680cab1dc02949a953b3ee20",
      "parents": [
        "c96a9876696d30783ad54399351a0bf3660db53f"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel@numascale-asia.com",
        "time": "Wed Mar 14 15:17:34 2012 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 14 09:49:48 2012 +0100"
      },
      "message": "x86/platform: Move APIC ID validity check into platform APIC code\n\nMove APIC ID validity check into platform APIC code, so it can\nbe overridden when needed. For NumaChip systems, always trust\nMADT, as it\u0027s constructed with high APIC IDs.\n\nBehaviour verifies on standard x86 systems and on NumaChip\nsystems with this, and compile-tested with allyesconfig.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel@numascale-asia.com\u003e\nReviewed-by: Steffen Persvold \u003csp@numascale.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/1331709454-27966-1-git-send-email-daniel@numascale-asia.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea281a9ebaba3287130dbe15bb0aad6f798bb06b",
      "tree": "cd365ac8eaa292df63ec183617c1f1c5128ebfca",
      "parents": [
        "cd593accdcc27ccbe6498d9ad1c2b6cc8e1d830d",
        "fadd85f16a8ec3fee8af599e79a209682dc52348"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 14 07:44:48 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 14 07:44:48 2012 +0100"
      },
      "message": "Merge tag \u0027mce-for-tip\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras into x86/mce\n\nApply two miscellaneous MCE fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd593accdcc27ccbe6498d9ad1c2b6cc8e1d830d",
      "tree": "9424d3ac86e753706cc6c3d7e6072d2a73711e29",
      "parents": [
        "11b91d6fe7272452c999573bab33c15c2f03dc31",
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 14 07:44:11 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 14 07:44:11 2012 +0100"
      },
      "message": "Merge tag \u0027v3.3-rc7\u0027 into x86/mce\n\nMerge reason: Update from an ancient -rc1 base to an almost-final stable kernel.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a1f37788a6d8c037e7d92fe4a0fe9ec0d713b21e",
      "tree": "ba35a1467511d8ef3d60499423558bbebd083bd8",
      "parents": [
        "09f98a825a821f7a3f1b162f9ed023f37213a63b"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Thu Dec 08 17:14:08 2011 +0800"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Mar 13 14:06:55 2012 -0400"
      },
      "message": "tboot: Add return values for tboot_sleep\n\n.. as appropiately. As tboot_sleep now returns values.\nremove tboot_sleep_wrapper.\n\nSuggested-and-Acked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Joseph Cihula \u003cjoseph.cihula@intel.com\u003e\n[v1: Return -1/0/+1 instead of ACPI_xx values]\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "09f98a825a821f7a3f1b162f9ed023f37213a63b",
      "tree": "37d83899ccac13fe6aa6069aecef8dd8e86d5d2a",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610"
      ],
      "author": {
        "name": "Tang Liang",
        "email": "liang.tang@oracle.com",
        "time": "Fri Dec 09 10:05:54 2011 +0800"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Mar 13 14:06:33 2012 -0400"
      },
      "message": "x86, acpi, tboot: Have a ACPI os prepare sleep instead of calling tboot_sleep.\n\nThe ACPI suspend path makes a call to tboot_sleep right before\nit writes the PM1A, PM1B values. We replace the direct call to\ntboot via an registration callback similar to __acpi_register_gsi.\n\nCC: Len Brown \u003clen.brown@intel.com\u003e\nAcked-by: Joseph Cihula \u003cjoseph.cihula@intel.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n[v1: Added __attribute__ ((unused))]\n[v2: Introduced a wrapper instead of changing tboot_sleep return values]\n[v3: Added return value AE_CTRL_SKIP for acpi_os_sleep_prepare]\nSigned-off-by: Tang Liang \u003cliang.tang@oracle.com\u003e\n[v1: Fix compile issues on IA64 and PPC64]\n[v2: Fix where __acpi_os_prepare_sleep\u003d\u003dNULL and did not go in sleep properly]\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "df8d291f28aa1e8437c8f7816328a6516379c71b",
      "tree": "26ae585aa259584ddd0d9088933547c065c37086",
      "parents": [
        "5234ffb9f74cfa8993d174782bc861dd9b7b5bfb",
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 13 16:34:48 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 13 16:35:16 2012 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/core\n\nReason: Get upstream fixes integrated before further modifications.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9993bc635d01a6ee7f6b833b4ee65ce7c06350b1",
      "tree": "9e40c69ef513fc0a57c03a05a68afc6711418ed8",
      "parents": [
        "47258cf3c4aa5d56e678bafe0dd0d03ddd980b88"
      ],
      "author": {
        "name": "Salman Qazi",
        "email": "sqazi@google.com",
        "time": "Fri Mar 09 16:41:01 2012 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 16:27:51 2012 +0100"
      },
      "message": "sched/x86: Fix overflow in cyc2ns_offset\n\nWhen a machine boots up, the TSC generally gets reset.  However,\nwhen kexec is used to boot into a kernel, the TSC value would be\ncarried over from the previous kernel.  The computation of\ncycns_offset in set_cyc2ns_scale is prone to an overflow, if the\nmachine has been up more than 208 days prior to the kexec.  The\noverflow happens when we multiply *scale, even though there is\nenough room to store the final answer.\n\nWe fix this issue by decomposing tsc_now into the quotient and\nremainder of division by CYC2NS_SCALE_FACTOR and then performing\nthe multiplication separately on the two components.\n\nRefactor code to share the calculation with the previous\nfix in __cycles_2_ns().\n\nSigned-off-by: Salman Qazi \u003csqazi@google.com\u003e\nAcked-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120310004027.19291.88460.stgit@dungbeetle.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "47258cf3c4aa5d56e678bafe0dd0d03ddd980b88",
      "tree": "4856f0fb1185ba97f320a7ed6fb63bf136708a42",
      "parents": [
        "c308b56b5398779cd3da0f62ab26b0453494c3d4",
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 16:26:52 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 16:26:52 2012 +0100"
      },
      "message": "Merge tag \u0027v3.3-rc7\u0027 into sched/core\n\nMerge reason: merge back final fixes, prepare for the merge window.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "51e7dc7011c99e1e5294658c7b551b92ca069985",
      "tree": "cef8f1aa1f9ef67e5e00e2a5346d5754791a81ac",
      "parents": [
        "e898c6706869fdcbd68b1e7fb0ac7461d98710fe"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Mon Mar 12 14:55:55 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 06:24:09 2012 +0100"
      },
      "message": "x86: Rename trap_no to trap_nr in thread_struct\n\nThere are precedences of trap number being referred to as\ntrap_nr. However thread struct refers trap number as trap_no.\nChange it to trap_nr.\n\nAlso use enum instead of left-over literals for trap values.\n\nThis is pure cleanup, no functional change intended.\n\nSuggested-by: Ingo Molnar \u003cmingo@eltu.hu\u003e\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120312092555.5379.942.sendpatchset@srdronam.in.ibm.com\n[ Fixed the math-emu build ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e898c6706869fdcbd68b1e7fb0ac7461d98710fe",
      "tree": "28054da88ddda324f78f27083b14328113941fbc",
      "parents": [
        "c94082656dac74257f63e91f78d5d458ac781fa5",
        "55283e2537714f9370c4ab847d170acf223daf90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 05:54:39 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 05:54:41 2012 +0100"
      },
      "message": "Merge branch \u0027x86/x32\u0027 into x86/cleanups\n\nMerge reason: We are going to merge a dependent patch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "73d63d038ee9f769f5e5b46792d227fe20e442c5",
      "tree": "8d595eccf1d62bc212ee6bf362e4ee2bf38bd3df",
      "parents": [
        "a5c2edf5765a6efedfd862bce6c616bfec46306a"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Mar 12 11:36:33 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 05:52:02 2012 +0100"
      },
      "message": "x86/ioapic: Add register level checks to detect bogus io-apic entries\n\nWith the recent changes to clear_IO_APIC_pin() which tries to\nclear remoteIRR bit explicitly, some of the users started to see\n\"Unable to reset IRR for apic ..\" messages.\n\nClose look shows that these are related to bogus IO-APIC entries\nwhich return\u0027s all 1\u0027s for their io-apic registers. And the\nabove mentioned error messages are benign. But kernel should\nhave ignored such io-apic\u0027s in the first place.\n\nCheck if register 0, 1, 2 of the listed io-apic are all 1\u0027s and\nignore such io-apic.\n\nReported-by: Álvaro Castillo \u003cmidgoon@gmail.com\u003e\nTested-by: Jon Dufresne \u003cjon@jondufresne.org\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: yinghai@kernel.org\nCc: kernel-team@fedoraproject.org\nCc: Josh Boyer \u003cjwboyer@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1331577393.31585.94.camel@sbsiddha-desk.sc.intel.com\n[ Performed minor cleanup of affected code. ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bea95c152dee1791dd02cbc708afbb115bb00f9a",
      "tree": "af9994c42c5fdd81ba3dadd7b812e2fa85273353",
      "parents": [
        "f9b4eeb809c6d031cc9561cc34dd691701cb2c2a",
        "24bff2dc0f77b1f186b7bdf30060caf3df191a68"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:46:35 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:47:05 2012 +0100"
      },
      "message": "Merge branch \u0027perf/hw-branch-sampling\u0027 into perf/core\n\nMerge reason: The \u0027perf record -b\u0027 hardware branch sampling feature is ready for upstream.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f9b4eeb809c6d031cc9561cc34dd691701cb2c2a",
      "tree": "3c0c5710faa38d4ba446c0ccdd473010e1f1262b",
      "parents": [
        "35239e23c66f1614c76739b62a299c3c92d6eb68"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Mar 12 12:44:35 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:44:54 2012 +0100"
      },
      "message": "perf/x86: Prettify pmu config literals\n\nI got somewhat tired of having to decode hex numbers..\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nLink: http://lkml.kernel.org/n/tip-0vsy1sgywc4uar3mu1szm0rg@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "35239e23c66f1614c76739b62a299c3c92d6eb68",
      "tree": "7b1e068df888ec9a00b43c1dd7517a6490da6a94",
      "parents": [
        "3f33ab1c0c741bfab2138c14ba1918a7905a1e8b",
        "87e24f4b67e68d9fd8df16e0bf9c66d1ad2a2533"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:44:07 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:44:11 2012 +0100"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: We are going to queue up a dependent patch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "87e24f4b67e68d9fd8df16e0bf9c66d1ad2a2533",
      "tree": "9cb1fd9da7f8a253d8e44941cbf8d594242e0478",
      "parents": [
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Mar 05 23:59:25 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:43:41 2012 +0100"
      },
      "message": "perf/x86: Fix local vs remote memory events for NHM/WSM\n\nVerified using the below proglet.. before:\n\n[root@westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 0\nremote write\n\n Performance counter stats for \u0027./numa 0\u0027:\n\n         2,101,554 node-stores\n         2,096,931 node-store-misses\n\n       5.021546079 seconds time elapsed\n\n[root@westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 1\nlocal write\n\n Performance counter stats for \u0027./numa 1\u0027:\n\n           501,137 node-stores\n               199 node-store-misses\n\n       5.124451068 seconds time elapsed\n\nAfter:\n\n[root@westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 0\nremote write\n\n Performance counter stats for \u0027./numa 0\u0027:\n\n         2,107,516 node-stores\n         2,097,187 node-store-misses\n\n       5.012755149 seconds time elapsed\n\n[root@westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 1\nlocal write\n\n Performance counter stats for \u0027./numa 1\u0027:\n\n         2,063,355 node-stores\n               165 node-store-misses\n\n       5.082091494 seconds time elapsed\n\n#define _GNU_SOURCE\n\n#include \u003csched.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cerrno.h\u003e\n#include \u003csys/mman.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003cdirent.h\u003e\n#include \u003csignal.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cnumaif.h\u003e\n#include \u003cstdlib.h\u003e\n\n#define SIZE (32*1024*1024)\n\nvolatile int done;\n\nvoid sig_done(int sig)\n{\n\tdone \u003d 1;\n}\n\nint main(int argc, char **argv)\n{\n\tcpu_set_t *mask, *mask2;\n\tsize_t size;\n\tint i, err, t;\n\tint nrcpus \u003d 1024;\n\tchar *mem;\n\tunsigned long nodemask \u003d 0x01; /* node 0 */\n\tDIR *node;\n\tstruct dirent *de;\n\tint read \u003d 0;\n\tint local \u003d 0;\n\n\tif (argc \u003c 2) {\n\t\tprintf(\"usage: %s [0-3]\\n\", argv[0]);\n\t\tprintf(\"  bit0 - local/remote\\n\");\n\t\tprintf(\"  bit1 - read/write\\n\");\n\t\texit(0);\n\t}\n\n\tswitch (atoi(argv[1])) {\n\tcase 0:\n\t\tprintf(\"remote write\\n\");\n\t\tbreak;\n\tcase 1:\n\t\tprintf(\"local write\\n\");\n\t\tlocal \u003d 1;\n\t\tbreak;\n\tcase 2:\n\t\tprintf(\"remote read\\n\");\n\t\tread \u003d 1;\n\t\tbreak;\n\tcase 3:\n\t\tprintf(\"local read\\n\");\n\t\tlocal \u003d 1;\n\t\tread \u003d 1;\n\t\tbreak;\n\t}\n\n\tmask \u003d CPU_ALLOC(nrcpus);\n\tsize \u003d CPU_ALLOC_SIZE(nrcpus);\n\tCPU_ZERO_S(size, mask);\n\n\tnode \u003d opendir(\"/sys/devices/system/node/node0/\");\n\tif (!node)\n\t\tperror(\"opendir\");\n\twhile ((de \u003d readdir(node))) {\n\t\tint cpu;\n\n\t\tif (sscanf(de-\u003ed_name, \"cpu%d\", \u0026cpu) \u003d\u003d 1)\n\t\t\tCPU_SET_S(cpu, size, mask);\n\t}\n\tclosedir(node);\n\n\tmask2 \u003d CPU_ALLOC(nrcpus);\n\tCPU_ZERO_S(size, mask2);\n\tfor (i \u003d 0; i \u003c size; i++)\n\t\tCPU_SET_S(i, size, mask2);\n\tCPU_XOR_S(size, mask2, mask2, mask); // invert\n\n\tif (!local)\n\t\tmask \u003d mask2;\n\n\terr \u003d sched_setaffinity(0, size, mask);\n\tif (err)\n\t\tperror(\"sched_setaffinity\");\n\n\tmem \u003d mmap(0, SIZE, PROT_READ|PROT_WRITE,\n\t\t\tMAP_PRIVATE|MAP_ANONYMOUS, -1, 0);\n\terr \u003d mbind(mem, SIZE, MPOL_BIND, \u0026nodemask, 8*sizeof(nodemask), MPOL_MF_MOVE);\n\tif (err)\n\t\tperror(\"mbind\");\n\n\tsignal(SIGALRM, sig_done);\n\talarm(5);\n\n\tif (!read) {\n\t\twhile (!done) {\n\t\t\tfor (i \u003d 0; i \u003c SIZE; i++)\n\t\t\t\tmem[i] \u003d 0x01;\n\t\t}\n\t} else {\n\t\twhile (!done) {\n\t\t\tfor (i \u003d 0; i \u003c SIZE; i++)\n\t\t\t\tt +\u003d *(volatile char *)(mem + i);\n\t\t}\n\t}\n\n\treturn 0;\n}\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/n/tip-tq73sxus35xmqpojf7ootxgs@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fbd036b552f633abb394a319f7c62a5c86a9cd7",
      "tree": "fa91474a6aac5ea4aef0d7afc72af27c32d611af",
      "parents": [
        "5d6523ebd2f67de9d23285aad7f3910e7b0aee83"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Dec 15 17:09:22 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:43:15 2012 +0100"
      },
      "message": "sched: Cleanup cpu_active madness\n\nStepan found:\n\nCPU0\t\tCPUn\n\n_cpu_up()\n  __cpu_up()\n\n\t\tboostrap()\n\t\t  notify_cpu_starting()\n\t\t  set_cpu_online()\n\t\t  while (!cpu_active())\n\t\t    cpu_relax()\n\n\u003cPREEMPT-out\u003e\n\nsmp_call_function(.wait\u003d1)\n  /* we find cpu_online() is true */\n  arch_send_call_function_ipi_mask()\n\n  /* wait-forever-more */\n\n\u003cPREEMPT-in\u003e\n\t\t  local_irq_enable()\n\n  cpu_notify(CPU_ONLINE)\n    sched_cpu_active()\n      set_cpu_active()\n\nNow the purpose of cpu_active is mostly with bringing down a cpu, where\nwe mark it !active to avoid the load-balancer from moving tasks to it\nwhile we tear down the cpu. This is required because we only update the\nsched_domain tree after we brought the cpu-down. And this is needed so\nthat some tasks can still run while we bring it down, we just don\u0027t want\nnew tasks to appear.\n\nOn cpu-up however the sched_domain tree doesn\u0027t yet include the new cpu,\nso its invisible to the load-balancer, regardless of the active state.\nSo instead of setting the active state after we boot the new cpu (and\nconsequently having to wait for it before enabling interrupts) set the\ncpu active before we set it online and avoid the whole mess.\n\nReported-by: Stepan Moskovchenko \u003cstepanm@codeaurora.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/1323965362.18942.71.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c94082656dac74257f63e91f78d5d458ac781fa5",
      "tree": "d6764c507274620b6a7189c6500e4663e2ed2577",
      "parents": [
        "192cfd58774b4d17b2fe8bdc77d89c2ef4e0591d"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Mar 09 16:07:10 2012 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Mar 09 16:47:54 2012 -0800"
      },
      "message": "x86: Use enum instead of literals for trap values\n\nThe traps are referred to by their numbers and it can be difficult to\nunderstand them while reading the code without context. This patch adds\nenumeration of the trap numbers and replaces the numbers with the correct\nenum for x86.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nLink: http://lkml.kernel.org/r/20120310000710.GA32667@www.outflux.net\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "263a5c8e16c34199ddf6de3f102e789ffa3ee26e",
      "tree": "4f049e339d522b2ab0ba3bed3ec217e4bbc83d35",
      "parents": [
        "54d20f006ceff1f2f1e69d0e54049b6c0765c039",
        "192cfd58774b4d17b2fe8bdc77d89c2ef4e0591d"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Mar 09 12:35:53 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Mar 09 12:35:53 2012 -0800"
      },
      "message": "Merge 3.3-rc6 into driver-core-next\n\nThis was done to resolve a conflict in the drivers/base/cpu.c file.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a240ada241dafe290e7532d1ddeb98fdf1419068",
      "tree": "1fa7cb911c324e2f36f7391971aada469b4ee93d",
      "parents": [
        "c7e23289a6aa95048a78b252b462f24ca6cf7f96"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Thu Mar 08 09:24:57 2012 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 08 10:57:35 2012 +0100"
      },
      "message": "x86: Include probe_roms.h in probe_roms.c\n\n... to ensure that declarations and definitions are in sync.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nLink: http://lkml.kernel.org/r/4F5888F902000078000770F1@nat28.tlf.novell.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7e23289a6aa95048a78b252b462f24ca6cf7f96",
      "tree": "413b16e31a8d7111e04d838f4550ffdb86739da0",
      "parents": [
        "0d2bf4899d04fcc7f3a280b0bc74c084badb4e04"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Thu Mar 08 09:23:14 2012 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 08 10:57:35 2012 +0100"
      },
      "message": "x86/32: Print control and debug registers for kerenel context\n\nWhile for a user mode register dump it may be reasonable to skip\nthose (albeit x86-64 doesn\u0027t do so), for kernel mode dumps these\nshould be printed to make sure all information possibly\nnecessary for analysis is available.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nLink: http://lkml.kernel.org/r/4F58889202000078000770E7@nat28.tlf.novell.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b11e3d782b9c065b3b2fb543bfb0d97801822dc0",
      "tree": "112982a761a816e3e07eea19ea3a5619341e1055",
      "parents": [
        "192cfd58774b4d17b2fe8bdc77d89c2ef4e0591d"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Wed Mar 07 11:44:29 2012 +0100"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Wed Mar 07 11:44:29 2012 +0100"
      },
      "message": "x86, mce: Fix rcu splat in drain_mce_log_buffer()\n\nWhile booting, the following message is seen:\n\n[   21.665087] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[   21.669439] [ INFO: suspicious RCU usage. ]\n[   21.673798] 3.2.0-0.0.0.28.36b5ec9-default #2 Not tainted\n[   21.681353] -------------------------------\n[   21.685864] arch/x86/kernel/cpu/mcheck/mce.c:194 suspicious rcu_dereference_index_check() usage!\n[   21.695013]\n[   21.695014] other info that might help us debug this:\n[   21.695016]\n[   21.703488]\n[   21.703489] rcu_scheduler_active \u003d 1, debug_locks \u003d 1\n[   21.710426] 3 locks held by modprobe/2139:\n[   21.714754]  #0:  (\u0026__lockdep_no_validate__){......}, at: [\u003cffffffff8133afd3\u003e] __driver_attach+0x53/0xa0\n[   21.725020]  #1:\n[   21.725323] ioatdma: Intel(R) QuickData Technology Driver 4.00\n[   21.733206]  (\u0026__lockdep_no_validate__){......}, at: [\u003cffffffff8133afe1\u003e] __driver_attach+0x61/0xa0\n[   21.743015]  #2:  (i7core_edac_lock){+.+.+.}, at: [\u003cffffffffa01cfa5f\u003e] i7core_probe+0x1f/0x5c0 [i7core_edac]\n[   21.753708]\n[   21.753709] stack backtrace:\n[   21.758429] Pid: 2139, comm: modprobe Not tainted 3.2.0-0.0.0.28.36b5ec9-default #2\n[   21.768253] Call Trace:\n[   21.770838]  [\u003cffffffff810977cd\u003e] lockdep_rcu_suspicious+0xcd/0x100\n[   21.777366]  [\u003cffffffff8101aa41\u003e] drain_mcelog_buffer+0x191/0x1b0\n[   21.783715]  [\u003cffffffff8101aa78\u003e] mce_register_decode_chain+0x18/0x20\n[   21.790430]  [\u003cffffffffa01cf8db\u003e] i7core_register_mci+0x2fb/0x3e4 [i7core_edac]\n[   21.798003]  [\u003cffffffffa01cfb14\u003e] i7core_probe+0xd4/0x5c0 [i7core_edac]\n[   21.804809]  [\u003cffffffff8129566b\u003e] local_pci_probe+0x5b/0xe0\n[   21.810631]  [\u003cffffffff812957c9\u003e] __pci_device_probe+0xd9/0xe0\n[   21.816650]  [\u003cffffffff813362e4\u003e] ? get_device+0x14/0x20\n[   21.822178]  [\u003cffffffff81296916\u003e] pci_device_probe+0x36/0x60\n[   21.828061]  [\u003cffffffff8133ac8a\u003e] really_probe+0x7a/0x2b0\n[   21.833676]  [\u003cffffffff8133af23\u003e] driver_probe_device+0x63/0xc0\n[   21.839868]  [\u003cffffffff8133b01b\u003e] __driver_attach+0x9b/0xa0\n[   21.845718]  [\u003cffffffff8133af80\u003e] ? driver_probe_device+0xc0/0xc0\n[   21.852027]  [\u003cffffffff81339168\u003e] bus_for_each_dev+0x68/0x90\n[   21.857876]  [\u003cffffffff8133aa3c\u003e] driver_attach+0x1c/0x20\n[   21.863462]  [\u003cffffffff8133a64d\u003e] bus_add_driver+0x16d/0x2b0\n[   21.869377]  [\u003cffffffff8133b6dc\u003e] driver_register+0x7c/0x160\n[   21.875220]  [\u003cffffffff81296bda\u003e] __pci_register_driver+0x6a/0xf0\n[   21.881494]  [\u003cffffffffa01fe000\u003e] ? 0xffffffffa01fdfff\n[   21.886846]  [\u003cffffffffa01fe047\u003e] i7core_init+0x47/0x1000 [i7core_edac]\n[   21.893737]  [\u003cffffffff810001ce\u003e] do_one_initcall+0x3e/0x180\n[   21.899670]  [\u003cffffffff810a9b95\u003e] sys_init_module+0xc5/0x220\n[   21.905542]  [\u003cffffffff8149bc39\u003e] system_call_fastpath+0x16/0x1b\n\nFix this by using ACCESS_ONCE() instead of rcu_dereference_check_mce()\nover mcelog.next. Since the access to each entry is controlled by the\n-\u003efinished field, ACCESS_ONCE() should work just fine. An rcu_dereference\nis unnecessary here.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSuggested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\n"
    },
    {
      "commit": "3f33ab1c0c741bfab2138c14ba1918a7905a1e8b",
      "tree": "a6f299846bf2345af4e43edc6659851e81ee58d5",
      "parents": [
        "464846888d9aad186cab3acdae6b654f9eb19772"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Mar 05 22:32:22 2012 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 06 09:49:49 2012 +0100"
      },
      "message": "x86/kprobes: Split out optprobe related code to kprobes-opt.c\n\nSplit out optprobe related code to arch/x86/kernel/kprobes-opt.c\nfor maintenanceability.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: yrl.pp-manager.tt@hitachi.com\nCc: systemtap@sourceware.org\nCc: anderson@redhat.com\nLink: http://lkml.kernel.org/r/20120305133222.5982.54794.stgit@localhost.localdomain\n[ Tidied up the code a tiny bit ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "464846888d9aad186cab3acdae6b654f9eb19772",
      "tree": "fdf0b98237845a7d9af8a01cdf4971b43a2a3063",
      "parents": [
        "86b4ce3156c0dc140907ad03639564000cde694f"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Mar 05 22:32:16 2012 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 06 09:49:49 2012 +0100"
      },
      "message": "x86/kprobes: Fix a bug which can modify kernel code permanently\n\nFix a bug in kprobes which can modify kernel code\npermanently at run-time. In the result, kernel can\ncrash when it executes the modified code.\n\nThis bug can happen when we put two probes enough near\nand the first probe is optimized. When the second probe\nis set up, it copies a byte which is already modified\nby the first probe, and executes it when the probe is hit.\nEven worse, the first probe and the second probe are removed\nrespectively, the second probe writes back the copied\n(modified) instruction.\n\nTo fix this bug, kprobes always recovers the original\ncode and copies the first byte from recovered instruction.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: yrl.pp-manager.tt@hitachi.com\nCc: systemtap@sourceware.org\nCc: anderson@redhat.com\nLink: http://lkml.kernel.org/r/20120305133215.5982.31991.stgit@localhost.localdomain\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "86b4ce3156c0dc140907ad03639564000cde694f",
      "tree": "b244e8f5ff005c4e186d8094f4aca7051231146a",
      "parents": [
        "262760894c60f0527b319327918dc41cb4b33df5"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Mar 05 22:32:09 2012 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 06 09:49:48 2012 +0100"
      },
      "message": "x86/kprobes: Fix instruction recovery on optimized path\n\nCurrent probed-instruction recovery expects that only breakpoint\ninstruction modifies instruction. However, since kprobes jump\noptimization can replace original instructions with a jump,\nthat expectation is not enough. And it may cause instruction\ndecoding failure on the function where an optimized probe\nalready exists.\n\nThis bug can reproduce easily as below:\n\n1) find a target function address (any kprobe-able function is OK)\n\n $ grep __secure_computing /proc/kallsyms\n   ffffffff810c19d0 T __secure_computing\n\n2) decode the function\n   $ objdump -d vmlinux --start-address\u003d0xffffffff810c19d0 --stop-address\u003d0xffffffff810c19eb\n\n  vmlinux:     file format elf64-x86-64\n\nDisassembly of section .text:\n\nffffffff810c19d0 \u003c__secure_computing\u003e:\nffffffff810c19d0:       55                      push   %rbp\nffffffff810c19d1:       48 89 e5                mov    %rsp,%rbp\nffffffff810c19d4:       e8 67 8f 72 00          callq\nffffffff817ea940 \u003cmcount\u003e\nffffffff810c19d9:       65 48 8b 04 25 40 b8    mov    %gs:0xb840,%rax\nffffffff810c19e0:       00 00\nffffffff810c19e2:       83 b8 88 05 00 00 01    cmpl $0x1,0x588(%rax)\nffffffff810c19e9:       74 05                   je     ffffffff810c19f0 \u003c__secure_computing+0x20\u003e\n\n3) put a kprobe-event at an optimize-able place, where no\n call/jump places within the 5 bytes.\n $ su -\n # cd /sys/kernel/debug/tracing\n # echo p __secure_computing+0x9 \u003e kprobe_events\n\n4) enable it and check it is optimized.\n # echo 1 \u003e events/kprobes/p___secure_computing_9/enable\n # cat ../kprobes/list\n ffffffff810c19d9  k  __secure_computing+0x9    [OPTIMIZED]\n\n5) put another kprobe on an instruction after previous probe in\n  the same function.\n # echo p __secure_computing+0x12 \u003e\u003e kprobe_events\n bash: echo: write error: Invalid argument\n # dmesg | tail -n 1\n [ 1666.500016] Probing address(0xffffffff810c19e2) is not an instruction boundary.\n\n6) however, if the kprobes optimization is disabled, it works.\n # echo 0 \u003e /proc/sys/debug/kprobes-optimization\n # cat ../kprobes/list\n ffffffff810c19d9  k  __secure_computing+0x9\n # echo p __secure_computing+0x12 \u003e\u003e kprobe_events\n (no error)\n\nThis is because kprobes doesn\u0027t recover the instruction\nwhich is overwritten with a relative jump by another kprobe\nwhen finding instruction boundary.\nIt only recovers the breakpoint instruction.\n\nThis patch fixes kprobes to recover such instructions.\n\nWith this fix:\n\n # echo p __secure_computing+0x9 \u003e kprobe_events\n # echo 1 \u003e events/kprobes/p___secure_computing_9/enable\n # cat ../kprobes/list\n ffffffff810c1aa9  k  __secure_computing+0x9    [OPTIMIZED]\n # echo p __secure_computing+0x12 \u003e\u003e kprobe_events\n # cat ../kprobes/list\n ffffffff810c1aa9  k  __secure_computing+0x9    [OPTIMIZED]\n ffffffff810c1ab2  k  __secure_computing+0x12    [DISABLED]\n\nChanges in v4:\n - Fix a bug to ensure optimized probe is really optimized\n   by jump.\n - Remove kprobe_optready() dependency.\n - Cleanup code for preparing optprobe separation.\n\nChanges in v3:\n - Fix a build error when CONFIG_OPTPROBE\u003dn. (Thanks, Ingo!)\n   To fix the error, split optprobe instruction recovering\n   path from kprobes path.\n - Cleanup comments/styles.\n\nChanges in v2:\n - Fix a bug to recover original instruction address in\n   RIP-relative instruction fixup.\n - Moved on tip/master.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: yrl.pp-manager.tt@hitachi.com\nCc: systemtap@sourceware.org\nCc: anderson@redhat.com\nLink: http://lkml.kernel.org/r/20120305133209.5982.36568.stgit@localhost.localdomain\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "55283e2537714f9370c4ab847d170acf223daf90",
      "tree": "e20a2212d4de9d91c4b986a2a8dba5197516213e",
      "parents": [
        "e7084fd52ed71249ab2ce7a7d89d601c9d1f904c"
      ],
      "author": {
        "name": "H.J. Lu",
        "email": "hjl.tools@gmail.com",
        "time": "Mon Mar 05 15:32:11 2012 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Mar 05 15:43:45 2012 -0800"
      },
      "message": "x32: Add ptrace for x32\n\nX32 ptrace is a hybrid of 64bit ptrace and compat ptrace with 32bit\naddress and longs.  It use 64bit ptrace to access the full 64bit\nregisters.  PTRACE_PEEKUSR and PTRACE_POKEUSR are only allowed to access\nsegment and debug registers.  PTRACE_PEEKUSR returns the lower 32bits\nand PTRACE_POKEUSR zero-extends 32bit value to 64bit.   It works since\nthe upper 32bits of segment and debug registers of x32 process are always\nzero.  GDB only uses PTRACE_PEEKUSR and PTRACE_POKEUSR to access\nsegment and debug registers.\n\n[ hpa: changed TIF_X32 test to use !is_ia32_task() instead, and moved\n  the system call number to the now-unused 521 slot. ]\n\nSigned-off-by: \"H.J. Lu\" \u003chjl.tools@gmail.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1329696488-16970-1-git-send-email-hpa@zytor.com\n"
    },
    {
      "commit": "d010b3326cf06b3406cdd88af16dcf4e4b6fec2e",
      "tree": "d0468d78582aeff6a603cb5d29b1a14310106896",
      "parents": [
        "2481c5fa6db0237e4f0168f88913178b2b495b7c"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:21:00 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:42 2012 +0100"
      },
      "message": "perf: Add callback to flush branch_stack on context switch\n\nWith branch stack sampling, it is possible to filter by priv levels.\n\nIn system-wide mode, that means it is possible to capture only user\nlevel branches. The builtin SW LBR filter needs to disassemble code\nbased on LBR captured addresses. For that, it needs to know the task\nthe addresses are associated with. Because of context switches, the\ncontent of the branch stack buffer may contain addresses from\ndifferent tasks.\n\nWe need a callback on context switch to either flush the branch stack\nor save it. This patch adds a new callback in struct pmu which is called\nduring context switches. The callback is called only when necessary.\nThat is when a system-wide context has, at least, one event which\nuses PERF_SAMPLE_BRANCH_STACK. The callback is never called for\nper-thread context.\n\nIn this version, the Intel x86 code simply flushes (resets) the LBR\non context switches (fills it with zeroes). Those zeroed branches are\nthen filtered out by the SW filter.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-11-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2481c5fa6db0237e4f0168f88913178b2b495b7c",
      "tree": "4d0e8e9616c8e83ca2a72abbc3ac94621adc49be",
      "parents": [
        "3e702ff6d1ea12dcf1c798ecb61e7f3a1579df42"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:59 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:42 2012 +0100"
      },
      "message": "perf: Disable PERF_SAMPLE_BRANCH_* when not supported\n\nPERF_SAMPLE_BRANCH_* is disabled for:\n\n - SW events (sw counters, tracepoints)\n - HW breakpoints\n - ALL but Intel x86 architecture\n - AMD64 processors\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-10-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e702ff6d1ea12dcf1c798ecb61e7f3a1579df42",
      "tree": "aa9afc6fcda680d0048a20203b76aede9a16de51",
      "parents": [
        "60ce0fbd072695866cb27b729690ab59dce705a5"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:58 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:42 2012 +0100"
      },
      "message": "perf/x86: Add LBR software filter support for Intel CPUs\n\nThis patch adds an internal sofware filter to complement\nthe (optional) LBR hardware filter.\n\nThe software filter is necessary:\n\n - as a substitute when there is no HW LBR filter (e.g., Atom, Core)\n - to complement HW LBR filter in case of errata (e.g., Nehalem/Westmere)\n - to provide finer grain filtering (e.g., all processors)\n\nSometimes the LBR HW filter cannot distinguish between two types\nof branches. For instance, to capture syscall as CALLS, it is necessary\nto enable the LBR_FAR filter which will also capture JMP instructions.\nThus, a second pass is necessary to filter those out, this is what the\nSW filter can do.\n\nThe SW filter is built on top of the internal x86 disassembler. It\nis a best effort filter especially for user level code. It is subject\nto the availability of the text page of the program.\n\nThe SW filter is enabled on all Intel processors. It is bypassed\nwhen the user is capturing all branches at all priv levels.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-9-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60ce0fbd072695866cb27b729690ab59dce705a5",
      "tree": "e11c2aa50129bbcbc4e9eb39bf00bbfd63891df3",
      "parents": [
        "88c9a65e13f393fd60d8b9e9c659a34f9e39967d"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:57 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:41 2012 +0100"
      },
      "message": "perf/x86: Implement PERF_SAMPLE_BRANCH for Intel CPUs\n\nThis patch implements PERF_SAMPLE_BRANCH support for Intel\nx86processors. It connects PERF_SAMPLE_BRANCH to the actual LBR.\n\nThe patch adds the hooks in the PMU irq handler to save the LBR\non counter overflow for both regular and PEBS modes.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-8-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "88c9a65e13f393fd60d8b9e9c659a34f9e39967d",
      "tree": "a609acb6ae06c162015d6d32b9c8a1d5313ec3e2",
      "parents": [
        "c5cc2cd906ea9fe73e3c93f9ad824996faa278cc"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:56 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:41 2012 +0100"
      },
      "message": "perf/x86: Disable LBR support for older Intel Atom processors\n\nThe patch adds a restriction for Intel Atom LBR support. Only\nsteppings 10 (PineView) and more recent are supported. Older models\ndo not have a functional LBR. Their LBR does not freeze on PMU\ninterrupt which makes LBR unusable in the context of perf_events.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-7-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5cc2cd906ea9fe73e3c93f9ad824996faa278cc",
      "tree": "c61d6ba7c7725409217ca288a010125cb1054792",
      "parents": [
        "ff3fb511ba377e8a0a7f553cc352237f70d08121"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:55 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:41 2012 +0100"
      },
      "message": "perf/x86: Add Intel LBR mappings for PERF_SAMPLE_BRANCH filters\n\nThis patch adds the mappings from the generic PERF_SAMPLE_BRANCH_*\nfilters to the actual Intel x86LBR filters, whenever they exist.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-6-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ff3fb511ba377e8a0a7f553cc352237f70d08121",
      "tree": "1395e265d7cf7f87565315a943334897886f7dda",
      "parents": [
        "b36817e8863090f1f24e538106ca50fa1d9e4003"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:54 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:40 2012 +0100"
      },
      "message": "perf/x86: Sync branch stack sampling with precise_sampling\n\nIf precise sampling is enabled on Intel x86 then perf_event uses PEBS.\nTo correct for the off-by-one error of PEBS, perf_event uses LBR when\nprecise_sample \u003e 1.\n\nOn Intel x86 PERF_SAMPLE_BRANCH_STACK is implemented using LBR,\ntherefore both features must be coordinated as they may not\nconfigure LBR the same way.\n\nFor PEBS, LBR needs to capture all branches at the priv level of\nthe associated event.\n\nThis patch checks that the branch type and priv level of BRANCH_STACK\nis compatible with that of the PEBS LBR requirement, thereby allowing:\n\n   $ perf record -b any,u -e instructions:upp ....\n\nBut:\n\n   $ perf record -b any_call,u -e instructions:upp\n\nIs not possible.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-5-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b36817e8863090f1f24e538106ca50fa1d9e4003",
      "tree": "9d92c33bfe3db80ca7b262f673ddee884974085f",
      "parents": [
        "225ce53910edc3c2322b1e4f2ed049a9196cd0b3"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:53 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:40 2012 +0100"
      },
      "message": "perf/x86: Add Intel LBR sharing logic\n\nThe Intel LBR on some recent processor is capable\nof filtering branches by type. The filter is configurable\nvia the LBR_SELECT MSR register.\n\nThere are limitation on how this register can be used.\n\nOn Nehalem/Westmere, the LBR_SELECT is shared by the two HT threads\nwhen HT is on. It is private to each core when HT is off.\n\nOn SandyBridge, the LBR_SELECT register is private to each thread\nwhen HT is on. It is private to each core when HT is off.\n\nThe kernel must manage the sharing of LBR_SELECT. It allows\nmultiple users on the same logical CPU to use LBR_SELECT as\nlong as they program it with the same value. Across sibling\nCPUs (HT threads), the same restriction applies on NHM/WSM.\n\nThis patch implements this sharing logic by leveraging the\nmechanism put in place for managing the offcore_response\nshared MSR.\n\nWe modify __intel_shared_reg_get_constraints() to cause\nx86_get_event_constraint() to be called because LBR may\nbe associated with events that may be counter constrained.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-4-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "225ce53910edc3c2322b1e4f2ed049a9196cd0b3",
      "tree": "add1a7795fd5120d17cef078e1d457199e5e3608",
      "parents": [
        "bce38cd53e5ddba9cb6d708c4ef3d04a4016ec7e"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:52 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:39 2012 +0100"
      },
      "message": "perf/x86: Add Intel LBR MSR definitions\n\nThis patch adds the LBR definitions for NHM/WSM/SNB and Core.\nIt also adds the definitions for the architected LBR MSR:\nLBR_SELECT, LBRT_TOS.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-3-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bce38cd53e5ddba9cb6d708c4ef3d04a4016ec7e",
      "tree": "8b42880d3ff9f250e246eb31bd80e6c36c99d8e1",
      "parents": [
        "737f24bda723fdf89ecaacb99fa2bf5683c32799"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Feb 09 23:20:51 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 14:55:39 2012 +0100"
      },
      "message": "perf: Add generic taken branch sampling support\n\nThis patch adds the ability to sample taken branches to the\nperf_event interface.\n\nThe ability to capture taken branches is very useful for all\nsorts of analysis. For instance, basic block profiling, call\ncounts, statistical call graph.\n\nThis new capability requires hardware assist and as such may\nnot be available on all HW platforms. On Intel x86 it is\nimplemented on top of the Last Branch Record (LBR) facility.\n\nTo enable taken branches sampling, the PERF_SAMPLE_BRANCH_STACK\nbit must be set in attr-\u003esample_type.\n\nSampled taken branches may be filtered by type and/or priv\nlevels.\n\nThe patch adds a new field, called branch_sample_type, to the\nperf_event_attr structure. It contains a bitmask of filters\nto apply to the sampled taken branches.\n\nFilters may be implemented in HW. If the HW filter does not exist\nor is not good enough, some arch may also implement a SW filter.\n\nThe following generic filters are currently defined:\n- PERF_SAMPLE_USER\n  only branches whose targets are at the user level\n\n- PERF_SAMPLE_KERNEL\n  only branches whose targets are at the kernel level\n\n- PERF_SAMPLE_HV\n  only branches whose targets are at the hypervisor level\n\n- PERF_SAMPLE_ANY\n  any type of branches (subject to priv levels filters)\n\n- PERF_SAMPLE_ANY_CALL\n  any call branches (may incl. syscall on some arch)\n\n- PERF_SAMPLE_ANY_RET\n  any return branches (may incl. syscall returns on some arch)\n\n- PERF_SAMPLE_IND_CALL\n  indirect call branches\n\nObviously filter may be combined. The priv level bits are optional.\nIf not provided, the priv level of the associated event are used. It\nis possible to collect branches at a priv level different from the\nassociated event. Use of kernel, hv priv levels is subject to permissions\nand availability (hv).\n\nThe number of taken branch records present in each sample may vary based\non HW, the type of sampled branches, the executed code. Therefore\neach sample contains the number of taken branches it contains.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1328826068-11713-2-git-send-email-eranian@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "df156f90a0f90649dd38b7667901ef85478f3d2b"
}
