1. 05 Oct, 2012 2 commits
    • Tang Chen's avatar
      sched: Ensure 'sched_domains_numa_levels' is safe to use in other functions · 5f7865f3
      Tang Chen authored
      We should temporarily reset 'sched_domains_numa_levels' to 0 after
      it is reset to 'level' in sched_init_numa(). If it fails to allocate
      memory for array sched_domains_numa_masks[][], the array will contain
      less then 'level' members. This could be dangerous when we use it to
      iterate array sched_domains_numa_masks[][] in other functions.
      
      This patch set sched_domains_numa_levels to 0 before initializing
      array sched_domains_numa_masks[][], and reset it to 'level' when
      sched_domains_numa_masks[][] is fully initialized.
      Signed-off-by: default avatarTang Chen <tangchen@cn.fujitsu.com>
      Signed-off-by: default avatarWen Congyang <wency@cn.fujitsu.com>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1348578751-16904-2-git-send-email-tangchen@cn.fujitsu.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      5f7865f3
    • Frederic Weisbecker's avatar
      nohz: Fix one jiffy count too far in idle cputime · 2b17c545
      Frederic Weisbecker authored
      When we stop the tick in idle, we save the current jiffies value
      in ts->idle_jiffies. This snapshot is substracted from the later
      value of jiffies when the tick is restarted and the resulting
      delta is accounted as idle cputime. This is how we handle the
      idle cputime accounting without the tick.
      
      But sometimes we need to schedule the next tick to some time in
      the future instead of completely stopping it. In this case, a
      tick may happen before we restart the periodic behaviour and
      from that tick we account one jiffy to idle cputime as usual but
      we also increment the ts->idle_jiffies snapshot by one so that
      when we compute the delta to account, we substract the one jiffy
      we just accounted.
      
      To prepare for stopping the tick outside idle, we introduced a
      check that prevents from fixing up that ts->idle_jiffies if we
      are not running the idle task. But we use idle_cpu() for that
      and this is a problem if we run the tick while another CPU
      remotely enqueues a ttwu to our runqueue:
      
      CPU 0:                            CPU 1:
      
      tick_sched_timer() {              ttwu_queue_remote()
             if (idle_cpu(CPU 0))
                 ts->idle_jiffies++;
      }
      
      Here, idle_cpu() notes that &rq->wake_list is not empty and
      hence won't consider the CPU as idle. As a result,
      ts->idle_jiffies won't be incremented. But this is wrong because
      we actually account the current jiffy to idle cputime. And that
      jiffy won't get substracted from the nohz time delta. So in the
      end, this jiffy is accounted twice.
      
      Fix this by changing idle_cpu(smp_processor_id()) with
      is_idle_task(current). This way the jiffy is substracted
      correctly even if a ttwu operation is enqueued on the CPU.
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: <stable@vger.kernel.org> # 3.5+
      Link: http://lkml.kernel.org/r/1349308004-3482-1-git-send-email-fweisbec@gmail.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      2b17c545
  2. 01 Oct, 2012 36 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b3eda8d0
      Linus Torvalds authored
      Pull x86/microcode changes from Ingo Molnar:
       "The biggest changes are to AMD microcode patching: add code for
        caching all microcode patches which belong to the current family on
        which we're running, in the kernel.
      
        We look up the patch needed for each core from the cache at
        patch-application time instead of holding a single patch per-system"
      
      * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, microcode, AMD: Fix use after free in free_cache()
        x86, microcode, AMD: Rewrite patch application procedure
        x86, microcode, AMD: Add a small, per-family patches cache
        x86, microcode, AMD: Add reverse equiv table search
        x86, microcode: Add a refresh firmware flag to ->request_microcode_fw
        x86, microcode, AMD: Read CPUID(1).EAX on the correct cpu
        x86, microcode, AMD: Check before applying a patch
        x86, microcode, AMD: Remove useless get_ucode_data wrapper
        x86, microcode: Straighten out Kconfig text
        x86, microcode: Cleanup cpu hotplug notifier callback
        x86, microcode: Drop uci->mc check on resume path
        x86, microcode: Save an indentation level in reload_for_cpu
      b3eda8d0
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a5fa7b7d
      Linus Torvalds authored
      Pull x86/platform changes from Ingo Molnar:
       "This cleans up some Xen-induced pagetable init code uglies, by
        generalizing new platform callbacks and state: x86_init.paging.*"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Document x86_init.paging.pagetable_init()
        x86: xen: Cleanup and remove x86_init.paging.pagetable_setup_done()
        x86: Move paging_init() call to x86_init.paging.pagetable_init()
        x86: Rename pagetable_setup_start() to pagetable_init()
        x86: Remove base argument from x86_init.paging.pagetable_setup_start
      a5fa7b7d
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 22999300
      Linus Torvalds authored
      Pull x86/mm changes from Ingo Molnar:
       "The biggest change is new TLB partial flushing code for AMD CPUs.
        (The v3.6 kernel had the Intel CPU side code, see commits
        e0ba94f1..effee4b9.)
      
        There's also various other refinements around the TLB flush code"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Distinguish TLB shootdown interrupts from other functions call interrupts
        x86/mm: Fix range check in tlbflush debugfs interface
        x86, cpu: Preset default tlb_flushall_shift on AMD
        x86, cpu: Add AMD TLB size detection
        x86, cpu: Push TLB detection CPUID check down
        x86, cpu: Fixup tlb_flushall_shift formatting
      22999300
    • Linus Torvalds's avatar
      Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7687b80a
      Linus Torvalds authored
      Pull x86/MCE update from Ingo Molnar:
       "Various MCE robustness enhancements.
      
        One of the changes adds CMCI (Corrected Machine Check Interrupt) poll
        mode on Intel Nehalem+ CPUs, which mode is automatically entered when
        the rate of messages is too high - and exited once the storm is over.
      
        An MCE events storm will roughly look like this:
      
         [ 5342.740616] mce: [Hardware Error]: Machine check events logged
         [ 5342.746501] mce: [Hardware Error]: Machine check events logged
         [ 5342.757971] CMCI storm detected: switching to poll mode
         [ 5372.674957] CMCI storm subsided: switching to interrupt mode
      
        This should make such events more survivable"
      
      * 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Provide boot argument to honour bios-set CMCI threshold
        x86, MCE: Remove unused defines
        x86, mce: Enable MCA support by default
        x86/mce: Add CMCI poll mode
        x86/mce: Make cmci_discover() quiet
        x86: mce: Remove the frozen cases in the hotplug code
        x86: mce: Split timer init
        x86: mce: Serialize mce injection
        x86: mce: Disable preemption when calling raise_local()
      7687b80a
    • Linus Torvalds's avatar
      Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ac07f5c3
      Linus Torvalds authored
      Pull x86/fpu update from Ingo Molnar:
       "The biggest change is the addition of the non-lazy (eager) FPU saving
        support model and enabling it on CPUs with optimized xsaveopt/xrstor
        FPU state saving instructions.
      
        There are also various Sparse fixes"
      
      Fix up trivial add-add conflict in arch/x86/kernel/traps.c
      
      * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, kvm: fix kvm's usage of kernel_fpu_begin/end()
        x86, fpu: remove cpu_has_xmm check in the fx_finit()
        x86, fpu: make eagerfpu= boot param tri-state
        x86, fpu: enable eagerfpu by default for xsaveopt
        x86, fpu: decouple non-lazy/eager fpu restore from xsave
        x86, fpu: use non-lazy fpu restore for processors supporting xsave
        lguest, x86: handle guest TS bit for lazy/non-lazy fpu host models
        x86, fpu: always use kernel_fpu_begin/end() for in-kernel FPU usage
        x86, kvm: use kernel_fpu_begin/end() in kvm_load/put_guest_fpu()
        x86, fpu: remove unnecessary user_fpu_end() in save_xstate_sig()
        x86, fpu: drop_fpu() before restoring new state from sigframe
        x86, fpu: Unify signal handling code paths for x86 and x86_64 kernels
        x86, fpu: Consolidate inline asm routines for saving/restoring fpu state
        x86, signal: Cleanup ifdefs and is_ia32, is_x32
      ac07f5c3
    • Linus Torvalds's avatar
      Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3b29b03a
      Linus Torvalds authored
      Pull x86/EFI changes from Ingo Molnar:
       "EFI loader robustness enhancements plus smaller fixes"
      
      * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: Fix the ACPI BGRT driver for images located in EFI boot services memory
        efi: Add a function to look up existing IO memory mappings
        efi: Defer freeing boot services memory until after ACPI init
        x86, EFI: Calculate the EFI framebuffer size instead of trusting the firmware
        efifb: Skip DMI checks if the bootloader knows what it's doing
        efi: initialize efi.runtime_version to make query_variable_info/update_capsule workable
        efi: Build EFI stub with EFI-appropriate options
        X86: Improve GOP detection in the EFI boot stub
      3b29b03a
    • Linus Torvalds's avatar
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 58ae9c0d
      Linus Torvalds authored
      Pull x86 debug update from Ingo Molnar:
       "Various small enhancements"
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/debug: Dump family, model, stepping of the boot CPU
        x86/iommu: Use NULL instead of plain 0 for __IOMMU_INIT
        x86/iommu: Drop duplicate const in __IOMMU_INIT
        x86/fpu/xsave: Keep __user annotation in casts
        x86/pci/probe_roms: Add missing __iomem annotation to pci_map_biosrom()
        x86/signals: ia32_signal.c: add __user casts to fix sparse warnings
        x86/vdso: Add __user annotation to VDSO32_SYMBOL
        x86: Fix __user annotations in asm/sys_ia32.h
      58ae9c0d
    • Linus Torvalds's avatar
      Merge branches 'x86-cpu-for-linus' and 'x86-cpufeature-for-linus' of... · 4a553e14
      Linus Torvalds authored
      Merge branches 'x86-cpu-for-linus' and 'x86-cpufeature-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull x86/cpu and x86/cpufeature from Ingo Molnar:
       "One tiny cleanup, and prepare for SMAP (Supervisor Mode Access
        Prevention) support on x86"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Remove the useless branch in c_start()
      
      * 'x86-cpufeature-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, cpufeature: Add feature bit for SMAP
      4a553e14
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 08815bc2
      Linus Torvalds authored
      Pull x86/cleanups from Ingo Molnar:
       "Smaller cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        arch/x86: Remove unecessary semicolons
        x86, boot: Remove obsolete and unused constant RAMDISK
      08815bc2
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 67b1f348
      Linus Torvalds authored
      Pull x86/build changes from Ingo Molnar:
       "defconfig and kconfig cleanups/fixes"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/Kconfig: Clean up Kconfig defaults
        x86/Kconfig: Turn off DEBUG_NX_TEST module in defconfigs
        x86/Kconfig: Turn off CONFIG_BLK_DEV_RAM
        x86/Kconfig: Disable CONFIG_CRC_T10DIF in defconfigs
        x86/Kconfig: Switch to ext4 in defconfigs
        x86/Kconfig: Update defconfigs to current results of "make savedefconfig"
      67b1f348
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · da834796
      Linus Torvalds authored
      Pull x86/asm changes from Ingo Molnar:
       "The one change that stands out is the alternatives patching change
        that prevents us from ever patching back instructions from SMP to UP:
        this simplifies things and speeds up CPU hotplug.
      
        Other than that it's smaller fixes, cleanups and improvements."
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Unspaghettize do_trap()
        x86_64: Work around old GAS bug
        x86: Use REP BSF unconditionally
        x86: Prefer TZCNT over BFS
        x86/64: Adjust types of temporaries used by ffs()/fls()/fls64()
        x86: Drop unnecessary kernel_eflags variable on 64-bit
        x86/smp: Don't ever patch back to UP if we unplug cpus
      da834796
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 80749df4
      Linus Torvalds authored
      Pull x86/apic changes from Ingo Molnar:
       "Smaller fixes and cleanups"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/api: Rename mp_register_lapic in a comment
        x86/irq/i8259: Fix incorrect comment
        x86: dt: Use linear irq domain for ioapic(s)
      80749df4
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2fff5664
      Linus Torvalds authored
      Pull timer changes from Ingo Molnar:
       "Timer enhancements, generalizations and cleanups from Tejun Heo, in
        preparation for workqueue facility enhancements."
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timer: Implement TIMER_IRQSAFE
        timer: Clean up timer initializers
        timer: Relocate declarations of init_timer_on_stack_key()
        timer: Generalize timer->base flags handling
      2fff5664
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0b981cb9
      Linus Torvalds authored
      Pull scheduler changes from Ingo Molnar:
       "Continued quest to clean up and enhance the cputime code by Frederic
        Weisbecker, in preparation for future tickless kernel features.
      
        Other than that, smallish changes."
      
      Fix up trivial conflicts due to additions next to each other in arch/{x86/}Kconfig
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        cputime: Make finegrained irqtime accounting generally available
        cputime: Gather time/stats accounting config options into a single menu
        ia64: Reuse system and user vtime accounting functions on task switch
        ia64: Consolidate user vtime accounting
        vtime: Consolidate system/idle context detection
        cputime: Use a proper subsystem naming for vtime related APIs
        sched: cpu_power: enable ARCH_POWER
        sched/nohz: Clean up select_nohz_load_balancer()
        sched: Fix load avg vs. cpu-hotplug
        sched: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW
        sched: Fix nohz_idle_balance()
        sched: Remove useless code in yield_to()
        sched: Add time unit suffix to sched sysctl knobs
        sched/debug: Limit sd->*_idx range on sysctl
        sched: Remove AFFINE_WAKEUPS feature flag
        s390: Remove leftover account_tick_vtime() header
        cputime: Consolidate vtime handling on context switch
        sched: Move cputime code to its own file
        cputime: Generalize CONFIG_VIRT_CPU_ACCOUNTING
        tile: Remove SD_PREFER_LOCAL leftover
        ...
      0b981cb9
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4cba3335
      Linus Torvalds authored
      Pull perf fix from Ingo Molnar:
       "Leftover perf/urgent fix from the v3.6 cycle"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86: Fix typo in uncore_pmu_to_box
      4cba3335
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7e92daae
      Linus Torvalds authored
      Pull perf update from Ingo Molnar:
       "Lots of changes in this cycle as well, with hundreds of commits from
        over 30 contributors.  Most of the activity was on the tooling side.
      
        Higher level changes:
      
         - New 'perf kvm' analysis tool, from Xiao Guangrong.
      
         - New 'perf trace' system-wide tracing tool
      
         - uprobes fixes + cleanups from Oleg Nesterov.
      
         - Lots of patches to make perf build on Android out of box, from
           Irina Tirdea
      
         - Extend ftrace function tracing utility to be more dynamic for its
           users.  It allows for data passing to the callback functions, as
           well as reading regs as if a breakpoint were to trigger at function
           entry.
      
           The main goal of this patch series was to allow kprobes to use
           ftrace as an optimized probe point when a probe is placed on an
           ftrace nop.  With lots of help from Masami Hiramatsu, and going
           through lots of iterations, we finally came up with a good
           solution.
      
         - Add cpumask for uncore pmu, use it in 'stat', from Yan, Zheng.
      
         - Various tracing updates from Steve Rostedt
      
         - Clean up and improve 'perf sched' performance by elliminating lots
           of needless calls to libtraceevent.
      
         - Event group parsing support, from Jiri Olsa
      
         - UI/gtk refactorings and improvements from Namhyung Kim
      
         - Add support for non-tracepoint events in perf script python, from
           Feng Tang
      
         - Add --symbols to 'script', similar to the one in 'report', from
           Feng Tang.
      
        Infrastructure enhancements and fixes:
      
         - Convert the trace builtins to use the growing evsel/evlist
           tracepoint infrastructure, removing several open coded constructs
           like switch like series of strcmp to dispatch events, etc.
           Basically what had already been showcased in 'perf sched'.
      
         - Add evsel constructor for tracepoints, that uses libtraceevent just
           to parse the /format events file, use it in a new 'perf test' to
           make sure the libtraceevent format parsing regressions can be more
           readily caught.
      
         - Some strange errors were happening in some builds, but not on the
           next, reported by several people, problem was some parser related
           files, generated during the build, didn't had proper make deps, fix
           from Eric Sandeen.
      
         - Introduce struct and cache information about the environment where
           a perf.data file was captured, from Namhyung Kim.
      
         - Fix handling of unresolved samples when --symbols is used in
           'report', from Feng Tang.
      
         - Add union member access support to 'probe', from Hyeoncheol Lee.
      
         - Fixups to die() removal, from Namhyung Kim.
      
         - Render fixes for the TUI, from Namhyung Kim.
      
         - Don't enable annotation in non symbolic view, from Namhyung Kim.
      
         - Fix pipe mode in 'report', from Namhyung Kim.
      
         - Move related stats code from stat to util/, will be used by the
           'stat' kvm tool, from Xiao Guangrong.
      
         - Remove die()/exit() calls from several tools.
      
         - Resolve vdso callchains, from Jiri Olsa
      
         - Don't pass const char pointers to basename, so that we can
           unconditionally use libgen.h and thus avoid ifdef BIONIC lines,
           from David Ahern
      
         - Refactor hist formatting so that it can be reused with the GTK
           browser, From Namhyung Kim
      
         - Fix build for another rbtree.c change, from Adrian Hunter.
      
         - Make 'perf diff' command work with evsel hists, from Jiri Olsa.
      
         - Use the only field_sep var that is set up: symbol_conf.field_sep,
           fix from Jiri Olsa.
      
         - .gitignore compiled python binaries, from Namhyung Kim.
      
         - Get rid of die() in more libtraceevent places, from Namhyung Kim.
      
         - Rename libtraceevent 'private' struct member to 'priv' so that it
           works in C++, from Steven Rostedt
      
         - Remove lots of exit()/die() calls from tools so that the main perf
           exit routine can take place, from David Ahern
      
         - Fix x86 build on x86-64, from David Ahern.
      
         - {int,str,rb}list fixes from Suzuki K Poulose
      
         - perf.data header fixes from Namhyung Kim
      
         - Allow user to indicate objdump path, needed in cross environments,
           from Maciek Borzecki
      
         - Fix hardware cache event name generation, fix from Jiri Olsa
      
         - Add round trip test for sw, hw and cache event names, catching the
           problem Jiri fixed, after Jiri's patch, the test passes
           successfully.
      
         - Clean target should do clean for lib/traceevent too, fix from David
           Ahern
      
         - Check the right variable for allocation failure, fix from Namhyung
           Kim
      
         - Set up evsel->tp_format regardless of evsel->name being set
           already, fix from Namhyung Kim
      
         - Oprofile fixes from Robert Richter.
      
         - Remove perf_event_attr needless version inflation, from Jiri Olsa
      
         - Introduce libtraceevent strerror like error reporting facility,
           from Namhyung Kim
      
         - Add pmu mappings to perf.data header and use event names from cmd
           line, from Robert Richter
      
         - Fix include order for bison/flex-generated C files, from Ben
           Hutchings
      
         - Build fixes and documentation corrections from David Ahern
      
         - Assorted cleanups from Robert Richter
      
         - Let O= makes handle relative paths, from Steven Rostedt
      
         - perf script python fixes, from Feng Tang.
      
         - Initial bash completion support, from Frederic Weisbecker
      
         - Allow building without libelf, from Namhyung Kim.
      
         - Support DWARF CFI based unwind to have callchains when %bp based
           unwinding is not possible, from Jiri Olsa.
      
         - Symbol resolution fixes, while fixing support PPC64 files with an
           .opt ELF section was the end goal, several fixes for code that
           handles all architectures and cleanups are included, from Cody
           Schafer.
      
         - Assorted fixes for Documentation and build in 32 bit, from Robert
           Richter
      
         - Cache the libtraceevent event_format associated to each evsel
           early, so that we avoid relookups, i.e.  calling pevent_find_event
           repeatedly when processing tracepoint events.
      
           [ This is to reduce the surface contact with libtraceevents and
              make clear what is that the perf tools needs from that lib: so
              far parsing the common and per event fields.  ]
      
         - Don't stop the build if the audit libraries are not installed, fix
           from Namhyung Kim.
      
         - Fix bfd.h/libbfd detection with recent binutils, from Markus
           Trippelsdorf.
      
         - Improve warning message when libunwind devel packages not present,
           from Jiri Olsa"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (282 commits)
        perf trace: Add aliases for some syscalls
        perf probe: Print an enum type variable in "enum variable-name" format when showing accessible variables
        perf tools: Check libaudit availability for perf-trace builtin
        perf hists: Add missing period_* fields when collapsing a hist entry
        perf trace: New tool
        perf evsel: Export the event_format constructor
        perf evsel: Introduce rawptr() method
        perf tools: Use perf_evsel__newtp in the event parser
        perf evsel: The tracepoint constructor should store sys:name
        perf evlist: Introduce set_filter() method
        perf evlist: Renane set_filters method to apply_filters
        perf test: Add test to check we correctly parse and match syscall open parms
        perf evsel: Handle endianity in intval method
        perf evsel: Know if byte swap is needed
        perf tools: Allow handling a NULL cpu_map as meaning "all cpus"
        perf evsel: Improve tracepoint constructor setup
        tools lib traceevent: Fix error path on pevent_parse_event
        perf test: Fix build failure
        trace: Move trace event enable from fs_initcall to core_initcall
        tracing: Add an option for disabling markers
        ...
      7e92daae
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7a682942
      Linus Torvalds authored
      Pull trivial irq core update from Ingo Molnar:
       "Two symbol exports for modular irq-chip drivers"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Export dummy_irq_chip
        genirq: Export irq_set_chip_and_handler_name()
      7a682942
    • Linus Torvalds's avatar
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 627312b9
      Linus Torvalds authored
      Pull core locking changes from Ingo Molnar:
       "It includes a lockdep improvement plus a spinlock inlining Kconfig
        cleanup."
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking: Adjust spin lock inlining Kconfig options
        lockdep: Check if nested lock is actually held
      627312b9
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 94095a1f
      Linus Torvalds authored
      Pull core kernel fixes from Ingo Molnar:
       "This is a complex task_work series from Oleg that fixes the bug that
        this VFS commit tried to fix:
      
          d35abdb2 hold task_lock around checks in keyctl
      
        but solves the problem without the lockup regression that d35abdb2
        introduced in v3.6.
      
        This series came late in v3.6 and I did not feel confident about it so
        late in the cycle.  Might be worth backporting to -stable if it proves
        itself upstream."
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        task_work: Simplify the usage in ptrace_notify() and get_signal_to_deliver()
        task_work: Revert "hold task_lock around checks in keyctl"
        task_work: task_work_add() should not succeed after exit_task_work()
        task_work: Make task_work_add() lockless
      94095a1f
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 620e7753
      Linus Torvalds authored
      Pull RCU changes from Ingo Molnar:
      
       0. 'idle RCU':
      
           Adds RCU APIs that allow non-idle tasks to enter RCU idle mode and
           provides x86 code to make use of them, allowing RCU to treat
           user-mode execution as an extended quiescent state when the new
           RCU_USER_QS kernel configuration parameter is specified.  (Work is
           in progress to port this to a few other architectures, but is not
           part of this series.)
      
       1.  A fix for a latent bug that has been in RCU ever since the addition
           of CPU stall warnings.  This bug results in false-positive stall
           warnings, but thus far only on embedded systems with severely
           cut-down userspace configurations.
      
       2.  Further reductions in latency spikes for huge systems, along with
           additional boot-time adaptation to the actual hardware.
      
           This is a large change, as it moves RCU grace-period initialization
           and cleanup, along with quiescent-state forcing, from softirq to a
           kthread.  However, it appears to be in quite good shape (famous
           last words).
      
       3.  Updates to documentation and rcutorture, the latter category
           including keeping statistics on CPU-hotplug latencies and fixing
           some initialization-time races.
      
       4.  CPU-hotplug fixes and improvements.
      
       5.  Idle-loop fixes that were omitted on an earlier submission.
      
       6.  Miscellaneous fixes and improvements
      
      In certain RCU configurations new kernel threads will show up (rcu_bh,
      rcu_sched), showing RCU processing overhead.
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (90 commits)
        rcu: Apply micro-optimization and int/bool fixes to RCU's idle handling
        rcu: Userspace RCU extended QS selftest
        x86: Exit RCU extended QS on notify resume
        x86: Use the new schedule_user API on userspace preemption
        rcu: Exit RCU extended QS on user preemption
        rcu: Exit RCU extended QS on kernel preemption after irq/exception
        x86: Exception hooks for userspace RCU extended QS
        x86: Unspaghettize do_general_protection()
        x86: Syscall hooks for userspace RCU extended QS
        rcu: Switch task's syscall hooks on context switch
        rcu: Ignore userspace extended quiescent state by default
        rcu: Allow rcu_user_enter()/exit() to nest
        rcu: Settle config for userspace extended quiescent state
        rcu: Make RCU_FAST_NO_HZ handle adaptive ticks
        rcu: New rcu_user_enter_after_irq() and rcu_user_exit_after_irq() APIs
        rcu: New rcu_user_enter() and rcu_user_exit() APIs
        ia64: Add missing RCU idle APIs on idle loop
        xtensa: Add missing RCU idle APIs on idle loop
        score: Add missing RCU idle APIs on idle loop
        parisc: Add missing RCU idle APIs on idle loop
        ...
      620e7753
    • Linus Torvalds's avatar
      Merge tag 'ktest-v3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · 6977b4c7
      Linus Torvalds authored
      Pull ktest fix from Steven Rostedt:
       "ktest has one fix needed for this merge window - fix parsing of ELSE
        IF in reading config file"
      
      * tag 'ktest-v3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest: Fix ELSE IF statements
      6977b4c7
    • Linus Torvalds's avatar
      Merge tag 'localmodconfig-v3.7-2' of... · 69e9576b
      Linus Torvalds authored
      Merge tag 'localmodconfig-v3.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig
      
      Pull localmodconfig fixes from Steven Rostedt:
       "Bill Pemberton added some changes to make streamline-config.pl work
        again as a stand-alone tool (outside of make localmodconfig).
      
        Also, he added a couple of updates to make the code be more "Perl
        proper".
      
        Added last minute fix to localyesconfig, that was the same as
        localmodconfig since v3.2, due to a change in the makefiles."
      
      * tag 'localmodconfig-v3.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig:
        localmodconfig: Fix localyesconfig to set to 'y' not 'm'
        localmodconfig: Use my variable for loop in streamline_config.pl
        localmodconfig: Use 3 parameter open in streamline_config.pl
        localmodconfig: Rework find_config in streamline_config.pl
        localmodconfig: Set default value for ksource in streamline_config.pl
      69e9576b
    • Yuta Ando's avatar
      localmodconfig: Fix localyesconfig to set to 'y' not 'm' · 4eae518d
      Yuta Ando authored
      The kbuild target 'localyesconfig' has been same as 'localmodconfig'
      since the commit 50bce3e8 "kconfig/streamline_config.pl: merge
      local{mod,yes}config". The commit expects this script generates
      different configure depending on target, but it was not yet implemented.
      
      So I added code that sets to 'yes' when target is 'localyesconfig'.
      
      Link: http://lkml.kernel.org/r/1349101470-12243-1-git-send-email-yuta.and@gmail.com
      
      Cc: stable@vger.kernel.org # v3.2
      Cc: linux-kbuild@vger.kernel.org
      Signed-off-by: default avatarYuta Ando <yuta.and@gmail.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@rostedt.homelinux.com>
      4eae518d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 9fa40a11
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       1) Patchset from Henrik Rydberg which substantially reduces irqsoff
          latency for all input devices.  In addition to that, Henrik reworked
          multitouch handling in order to reduce runtime memory consumption.
      
          This patchset touches code in Input subsystem as well.  All the
          changes have been Acked by Dmitry, and we agreed to do it this way
          due to inter-dependencies between the patchset and subsequent
          changes in HID subsystem.
      
       2) Rework, clenaups and a lot of fixes to picolcd driver by Bruno
          Prémont.
      
       3) Core report descriptor handling fix which fixes resume issue on some
          devices, by Kevin Daughtridge
      
       4) hidraw fixes by Alexey Khoroshilov and Ratan Nalumasu
      
       5) wiimote driver now supports balance board, by David Herrmann.
      
       6) Other smaller fixes and new device id additions all over the place.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (79 commits)
        HID: hidraw: don't deallocate memory when it is in use
        HID: picoLCD: optimize for inactive debugfs
        HID: multitouch: add support for GeneralTouch multi-touchscreen
        HID: Add support for Sony PS3 BD Remote Control
        HID: keep dev_rdesc unmodified and use it for comparisons
        HID: lg4ff: Minor coding style fixes in lg4ff and hid-lg
        HID: hid-lg4ff: Set absolute axes parametes on DFP
        HID: hid-lg4ff: Adjust X axis input value accordingly to selected range.
        HID: hid-lg4ff: Minor code cleanup to improve readability
        HID: ntrig: change default value of logical/physical width/height to 1
        HID: picoLCD: bounds check in dump_buff_as_hex()
        Input: bcm5974 - Convert to MT-B
        Input: bcm5974 - Drop the logical dimensions
        Input: bcm5974 - Preparatory renames
        Input: bcm5974 - only setup button urb for TYPE1 devices
        HID: hid-multitouch: Add Flatfrog support
        HID: hid-multitouch: Fix contact count on 3M panels
        HID: hid-multitouch: Remove the redundant touch state
        HID: hid-multitouch: Simplify setup and frame synchronization
        HID: Allow more fields in the hid report
        ...
      9fa40a11
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 99dbb163
      Linus Torvalds authored
      Pull the trivial tree from Jiri Kosina:
       "Tiny usual fixes all over the place"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
        doc: fix old config name of kprobetrace
        fs/fs-writeback.c: cleanup riteback_sb_inodes kerneldoc
        btrfs: fix the commment for the action flags in delayed-ref.h
        btrfs: fix trivial typo for the comment of BTRFS_FREE_INO_OBJECTID
        vfs: fix kerneldoc for generic_fh_to_parent()
        treewide: fix comment/printk/variable typos
        ipr: fix small coding style issues
        doc: fix broken utf8 encoding
        nfs: comment fix
        platform/x86: fix asus_laptop.wled_type module parameter
        mfd: printk/comment fixes
        doc: getdelays.c: remember to close() socket on error in create_nl_socket()
        doc: aliasing-test: close fd on write error
        mmc: fix comment typos
        dma: fix comments
        spi: fix comment/printk typos in spi
        Coccinelle: fix typo in memdup_user.cocci
        tmiofb: missing NULL pointer checks
        tools: perf: Fix typo in tools/perf
        tools/testing: fix comment / output typos
        ...
      99dbb163
    • Linus Torvalds's avatar
      Merge tag 'regulator-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · aae6f989
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       - Support for putting regulators into bypass mode where they simply
         switch their input to the output (mainly used for low power
         retention).
       - A new API for setting voltages based on a voltage plus tolerance
         rather than an explicit voltage range.
       - Lots of cleanups and API updates from Axel Lin.
       - New driver for MAX8907.
      
      * tag 'regulator-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (71 commits)
        regulator: arizona-ldo: Remove top voltage
        regulator: tps6586x: remove regulator-compatible from DT docs
        regulator: tps65217.txt: remove regulator-compatible from DT docs
        regulator: deprecate regulator-compatible DT property
        regulator: fan53555: remove vsel_max not used
        regulator: aat2870: Don't explicitly initialise the first field
        extcon: arizona: Use bypass mode for MICVDD
        regulator: wm831x-ldo: Add bypass support
        regulator: arizona-micsupp: Support get/set bypass
        regulator: arizona-ldo: Support get/set bypass
        regulator: core: Provide regmap get/set bypass operations
        regulator: core: Support bypass mode
        regulator: Fairchild fan53555 support
        regulator: twl: Remove another unused variable warning
        regulator: core: Try using the parent device for the default regmap
        regulator: core: Fast path non-deferred disables
        regulator: core: Report microvolts in sysfs even with only list_voltage()
        regulator: tps6586x: add support for SYS rail
        regulator: lp872x: remove unnecessary function
        regulator: lp872x: fix NULL pointer access problem
        ...
      aae6f989
    • Linus Torvalds's avatar
      Merge tag 'regmap-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · b34e5f55
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "A quiet release for the regmap core, essentially all the activity is
        in the shared interrupt controller which is being more and more widely
        used and has been enhanced to support a wider range of masking types
        and wake handling methods, plus integration with runtime PM for
        devices making aggressive use of that."
      
      * tag 'regmap-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: no need primary handler for nested irq
        regmap: irq: Add mask invert flag for enable register
        mfd: wm8994: Flag the interrupt block as requiring runtime PM be enabled
        regmap: irq: Enable devices for runtime PM while handling interrupts
        regmap: irq: initialize all irqs to wake disabled
        regmap: set MASK_ON_SUSPEND/SKIP_SET_WAKE if no wake_base
        regmap: name irq_chip based on regmap_irq_chip's name
        regmap: store irq_chip inside regmap_irq_chip_data
        regmap: irq: Only update mask bits when doing initial mask
        regmap: fix some error messages to take account of irq_reg_stride
        regmap: Don't lock in regmap_reinit_cache()
      b34e5f55
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · e151960a
      Linus Torvalds authored
      Pull GFS2 updates from Steven Whitehouse:
       "The major feature this time is the "rbm" conversion in the resource
        group code.  The new struct gfs2_rbm specifies the location of an
        allocatable block in (resource group, bitmap, offset) form.  There are
        a number of added helper functions, and later patches then rewrite
        some of the resource group code in terms of this new structure.  Not
        only does this give us a nice code clean up, but it also removes some
        of the previous restrictions where extents could not cross bitmap
        boundaries, for example.
      
        In addition to that, there are a few bug fixes and clean ups, but the
        rbm work is by far the majority of this patch set in terms of number
        of changed lines."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw: (27 commits)
        GFS2: Write out dirty inode metadata in delayed deletes
        GFS2: fix s_writers.counter imbalance in gfs2_ail_empty_gl
        GFS2: Fix infinite loop in rbm_find
        GFS2: Consolidate free block searching functions
        GFS2: Get rid of I_MUTEX_QUOTA usage
        GFS2: Stop block extents at the end of bitmaps
        GFS2: Fix unclaimed_blocks() wrapping bug and clean up
        GFS2: Improve block reservation tracing
        GFS2: Fall back to ignoring reservations, if there are no other blocks left
        GFS2: Fix ->show_options() for statfs slow
        GFS2: Use rbm for gfs2_setbit()
        GFS2: Use rbm for gfs2_testbit()
        GFS2: Eliminate unnecessary check for state > 3 in bitfit
        GFS2: Eliminate redundant calls to may_grant
        GFS2: Combine functions gfs2_glock_dq_wait and wait_on_demote
        GFS2: Combine functions gfs2_glock_wait and wait_on_holder
        GFS2: inline __gfs2_glock_schedule_for_reclaim
        GFS2: change function gfs2_direct_IO to use a normal gfs2_glock_dq
        GFS2: rbm code cleanup
        GFS2: Fix case where reservation finished at end of rgrp
        ...
      e151960a
    • Jiri Kosina's avatar
      Merge branch 'multitouch' into for-linus · cdcd3ac4
      Jiri Kosina authored
      Conflicts:
      	drivers/hid/hid-multitouch.c
      cdcd3ac4
    • Jiri Kosina's avatar
      Merge branch 'upstream' into for-linus · a3cbe10e
      Jiri Kosina authored
      Conflicts:
      	drivers/hid/usbhid/hid-quirks.c
      a3cbe10e
    • Jiri Kosina's avatar
      Merge branches 'from-henrik', 'hidraw', 'logitech', 'picolcd', 'ps3',... · fa2bd301
      Jiri Kosina authored
      Merge branches 'from-henrik', 'hidraw', 'logitech', 'picolcd', 'ps3', 'uclogic', 'wacom' and 'wiimote' into for-linus
      fa2bd301
    • Ratan Nalumasu's avatar
      HID: hidraw: don't deallocate memory when it is in use · 4fe9f8e2
      Ratan Nalumasu authored
      When a device is unplugged, wait for all processes that have opened the device
      to close before deallocating the device.
      Signed-off-by: default avatarRatan Nalumasu <ratan@google.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      4fe9f8e2
    • Bruno Prémont's avatar
      HID: picoLCD: optimize for inactive debugfs · 56fa9441
      Bruno Prémont authored
      Matthieu CASTET adjusted picolcd_debug_out_report() to only operate when
      there is an active listener on debugfs for events.
      
      His change got lost while splitting hid_picolcd.c, restore it.
      Signed-off-by: default avatarBruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      56fa9441
    • Xianhan Yu's avatar
      HID: multitouch: add support for GeneralTouch multi-touchscreen · f5ff4e1e
      Xianhan Yu authored
      Fix the touch-up no response problem on GeneralTouch twofingers touchscreen and
      modify the driver for new GeneralTouch PWT touchscreen.
      Signed-off-by: default avatarXianhan Yu <aroundight77@gmail.com>
      Reviewed-by Benjamin Tissoires <benjamin.tissoires@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      f5ff4e1e
    • David Dillow's avatar
      HID: Add support for Sony PS3 BD Remote Control · 5844c1cd
      David Dillow authored
      The Sony PS3 Blue-ray Disc Remote Control used to be supported by the
      BlueZ project's user space, but the code that handled it was recently
      removed as its functionality conflicted with a real HSP implementation
      and the mapping was thought to be better handled in the kernel. This is
      a port of the mapping logic from the fakehid driver by Marcel Holtmann
      to the in-kernel HID layer.
      
      We also add support for the Logitech Harmony Adapter for PS3, which
      emulates the BD Remote.
      Signed-off-by: default avatarDavid Dillow <dave@thedillows.org>
      Signed-off-by: default avatarAntonio Ospite <ospite@studenti.unina.it>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      5844c1cd
    • Kevin Daughtridge's avatar
      HID: keep dev_rdesc unmodified and use it for comparisons · 86e6b77e
      Kevin Daughtridge authored
      The dev_rdesc member of the hid_device structure is meant to store the original
      report descriptor received from the device, but it is currently passed to any
      report_fixup method before it is copied to the rdesc member. This patch uses a
      temporary buffer to shield dev_rdesc from the side effects of many HID drivers'
      report_fixup implementations.
      
      usbhid's hid_post_reset checks the report descriptor currently returned by the
      device against a descriptor that may have been modified by a driver's
      report_fixup method. That leaves some devices nonfunctional after a resume, with
      a "reset_resume error 1" reported. This patch checks the new descriptor against
      the unmodified dev_rdesc instead and uses the original, instead of modified,
      report size.
      
      BugLink: http://bugs.launchpad.net/bugs/1049623Signed-off-by: default avatarKevin Daughtridge <kevin@kdau.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      86e6b77e
  3. 30 Sep, 2012 2 commits
    • Linus Torvalds's avatar
      Linux 3.6 · a0d271cb
      Linus Torvalds authored
      a0d271cb
    • Miklos Szeredi's avatar
      vfs: dcache: fix deadlock in tree traversal · 8110e16d
      Miklos Szeredi authored
      IBM reported a deadlock in select_parent().  This was found to be caused
      by taking rename_lock when already locked when restarting the tree
      traversal.
      
      There are two cases when the traversal needs to be restarted:
      
       1) concurrent d_move(); this can only happen when not already locked,
          since taking rename_lock protects against concurrent d_move().
      
       2) racing with final d_put() on child just at the moment of ascending
          to parent; rename_lock doesn't protect against this rare race, so it
          can happen when already locked.
      
      Because of case 2, we need to be able to handle restarting the traversal
      when rename_lock is already held.  This patch fixes all three callers of
      try_to_ascend().
      
      IBM reported that the deadlock is gone with this patch.
      
      [ I rewrote the patch to be smaller and just do the "goto again" if the
        lock was already held, but credit goes to Miklos for the real work.
         - Linus ]
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8110e16d