1. 23 Jul, 2015 9 commits
    • Lv Zheng's avatar
      ACPICA: Executer: Add interpreter tracing mode for method tracing facility · ab6c5733
      Lv Zheng authored
      ACPICA commit 07fffd02607685b655ed92ee15c160e6a810b60b
      
      The acpi_debug_trace() is the mechanism known as ACPI method tracing that is
      used by Linux as ACPICA debugging message reducer. This facility can be
      controlled through Linux ACPI subsystem - /sys/module/acpi/parameters.
      This facility requires CONFIG_ACPI_DEBUG to be enabled to see ACPICA trace
      logs in the kernel dmesg output.
      
      This patch enhances acpi_debug_trace() to make it not only a message reducer,
      but a real tracer to trace AML interpreter execution. Note that in addition
      to the AML tracer enabling, this patch also updates the facility with the
      following enhancements:
      1. Allow a full path to be specified by the acpi_debug_trace() API.
      2. Allow any method rather than just the entrance of acpi_evaluate_object()
         to be traced.
      3. All interpreter ACPI_LV_TRACE_POINT messages are collected for
         ACPI_EXECUTER layer.
      
      The Makefile of drivers/acpi/acpica is also updated to include exdebug.o
      and the duplicated stubs are removed after that.
      
      Note that since this patch has enhanced the method tracing facility, Linux
      need also be updated after applying this patch. Lv Zheng.
      
      Link: https://github.com/acpica/acpica/commit/07fffd02Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ab6c5733
    • Lv Zheng's avatar
      ACPICA: Dispatcher: Add trace support for interpreter · a616dc2f
      Lv Zheng authored
      ACPICA commit 71299ec8b49054daace0df50268e8e055654ca37
      
      This patch adds trace point at the following point:
       1. Begin/end of a control method execution;
       2. Begin/end of an opcode execution.
      
      The trace point feature can be enabled by defining ACPI_DEBUG_OUTPUT
      and specifying a debug level that includes ACPI_LV_TRACDE_POINT and the
      debug layers that include ACPI_PARSER and ACPI_DISPACTCHER.
      
      In order to make aml_op_name of union acpi_parse_object usable for tracer, it is
      enabled for ACPI_DEBUG_OUTPUT in this patch. Lv Zheng.
      
      Link: https://github.com/acpica/acpica/commit/71299ec8Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a616dc2f
    • Lv Zheng's avatar
      ACPICA: Dispatcher: Move stack traversal code to dispatcher · 0bac4295
      Lv Zheng authored
      ACPICA commit c8275e243b58fd4adfc0362bd704af41ed14bc75
      
      This patch moves parts of acpi_dm_dump_method_info() to the dispatcher
      component.
      
      This patch also makes the new function dependent on ACPI_DEBUG_OUTPUT
      compile-stage definition so that it can be used by the trace facility.
      
      acpi_dm_dump_method_info() traverses method stack when an exception is
      encountered. Such traversal is needed to support method tracing for the
      exceptions. When an exception is encountered, the end indications of the
      aborted methods should be logged in order not to break the user space
      analysis tool. Lv Zheng.
      
      Link: https://github.com/acpica/acpica/commit/c8275e24Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0bac4295
    • Lv Zheng's avatar
      ACPICA: Namespace: Add function to directly return normalized full path · d1e7ffe5
      Lv Zheng authored
      ACPICA commit 6e0229bb156d71675f2e07dc7960adb7ec0a60ea
      
      This patch adds functions to return normalized full path instead of
      "external path". The external path contains trailing "_" for each
      name segment while the normalized full path doesn't contain the
      trailing "_".
      
      Currently this function is used by the method tracing users to specify a
      none trailing "_" attached name path. Lv Zheng.
      
      Note that we need to validate and switch all Linux kernel acpi_get_name()
      users to use the new name type before removing the old name type from
      ACPICA.
      
      Link: https://github.com/acpica/acpica/commit/6e0229bbSigned-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Reviewed-by: default avatarRuiyi Zhang <ruiyi_zhang@hotmail.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d1e7ffe5
    • Lv Zheng's avatar
      ACPICA: Executer: Add back pointing reference of method operand · 07b9c912
      Lv Zheng authored
      ACPICA commit 9dcd124e914e87495fbd1786d9484b962e0823e0
      
      This patch adds back pointing reference of the namespace node for a method
      operand. The namespace node then can be used in
      acpi_ds_terminate_control_method() to obtain method full path to be used by
      tracing facilities. Lv Zheng.
      
      Link: https://github.com/acpica/acpica/commit/9dcd124eSigned-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      07b9c912
    • Lv Zheng's avatar
      ACPICA: Dispatcher: Cleanup union acpi_operand_object's AML address assignments · 62eb935b
      Lv Zheng authored
      ACPICA commit afb52611dbe7403551f93504d3798534f5c343f4
      
      This patch cleans up the code of assigning the AML address to the
      union acpi_operand_object.
      
      The idea behind this cleanup is:
      The AML address of the union acpi_operand_object should always be determined at
      the point where the object is encountered. It should be started from the
      first byte of the object. For example, the opcode of the object, the name
      string of the user_term object, or the first byte of the packaged object
      (where a pkg_length is prefixed). So it's not cleaner to have it assigned
      here and there in the entire ACPICA source tree.
      
      There are some special cases for the internal opcodes, before cleaning up
      the internal opcodes, we should also determine the rules for the AML
      addresses of the internal opcodes:
      1. INT_NAMEPATH_OP: the address of the first byte for the name_string.
      2. INT_METHODCALL_OP: the address of the first byte for the name_string.
      3. INT_BYTELIST_OP: the address of the first byte for the byte_data list.
      4. INT_EVAL_SUBTREE_OP: the address of the first byte for the
                              Region/Package/Buffer/bank_field/Field arguments.
      5. INT_NAMEDFIELD_OP: the address to the name_seg.
      6. INT_RESERVEDFIELD_OP: the address to the 0x00 prefix.
      7. INT_ACCESSFIELD_OP: the address to the 0x01 prefix.
      8. INT_CONNECTION_OP: the address to the 0x02 prefix.
      9: INT_EXTACCESSFIELD_OP: the address to the 0x03 prefix.
      10.INT_RETURN_VALUE_OP: the address of the replaced operand.
      11.computational_data: the address to the
                            Byte/Word/Dword/Qword/string_prefix.
      
      Before cleaning up the internal root scope of the aml_walk, turning it into
      the term_list, we need to remember the aml_start address as the "Aml"
      attribute for the union acpi_operand_object created by acpi_ps_create_scope_op().
      
      Finally, we can delete some redundant AML address assignment in psloop.c.
      
      Link: https://github.com/acpica/acpica/commit/afb52611Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      62eb935b
    • Lv Zheng's avatar
      ACPICA: Parser: Cleanup aml_offset in union acpi_operand_object · 950a429c
      Lv Zheng authored
      ACPICA commit 61b360074fde2bb8282722579410f5d1fb12f84d
      
      This patch converts aml_offset in union acpi_operand_object to AML address.
      
      AML offset is actually only used by the debugger, using AML address is more
      direct and efficient during the parsing stage so that we don't need to
      calculate the offset during the parsing stage and will not have
      difficulities in converting it into other offset attributes.
      
      Sometimes, aml_offset is not an indication of the offset from the table
      header but the offset from the entry of a list of terms, which requires
      additional efforts to convert it into an offset from the table header. By
      using AML address directly, there is no such difficulty.
      Thus this patch also deletes a logic in disassembler that is trying to
      convert the aml_offset from
        "offset from the start address of Method/Package/Buffer"
      into the
        "offset from the start address of the ACPI table"
      (Sample code deletion can be seen in acpi_dm_deferred_parse(), but the
      function is not in the Linux kernel). Lv Zheng.
      
      Link: https://github.com/acpica/acpica/commit/61b36007Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      950a429c
    • Lv Zheng's avatar
      ACPICA: Parser: Cleanup aml_offset in struct acpi_walk_state · 83482f75
      Lv Zheng authored
      ACPICA commit d254405814495058276c0c2f9d96794d15a6c91c
      
      This patch converts aml_offset in struct acpi_walk_state to AML address.
      
      AML offset is actually only used by the debugger, using AML address is more
      direct and efficient during the parsing stage so that we don't need to
      calculate it during the parsing stage.
      
      On the other hand, we can see several issues in the current parser logic
      around the aml_offset:
      1. union acpi_operand_object.Common.aml_offset is redundantly assigned in
         acpi_ps_parse_loop().
      2. aml_offset is not an indication of the offset from the table header but
         the offset from the entry of a list of objects. Sometimes, it indicates
         an entry for a Method/Package/Buffer, which makes it difficult to be
         reversely calculated to a table header offset.
      3. When being used with method tracers (for example, Linux function trace),
         it's better to have AML address logged instead of the AML offset because
         the address is the only attribute that can uniquely identify the opcode.
      This patch is required to solve the above issues. Lv Zheng.
      
      Link: https://github.com/acpica/acpica/commit/d2544058Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      83482f75
    • Lv Zheng's avatar
      ACPICA: Parser: Reduce parser/namespace divergences for tracer support · eb87a052
      Lv Zheng authored
      This patch reduces divergences in parser/namespace components so that the
      follow-up linuxized ACPICA upstream commits can be directly merged.
      Including the fix to an indent issue reported and fixed by Zhouyi Zhou.
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarZhouyi Zhou <yizhouzhou@ict.ac.cn>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      eb87a052
  2. 19 Jul, 2015 7 commits
  3. 18 Jul, 2015 8 commits
    • Olof Johansson's avatar
      Merge tag 'pxa-fixes-v4.2-rc2' of https://github.com/rjarzmik/linux into fixesD · 3eae03da
      Olof Johansson authored
      Merge "pxa fixes for v4.2" from Robert Jarzmik:
      
      ARM: pxa: fixes for v4.2-rc2
      
      This single fix reenables ethernet cards for several pxa boards,
      broken by regulator addition to dm9000 driver.
      
      * tag 'pxa-fixes-v4.2-rc2' of https://github.com/rjarzmik/linux:
        ARM: pxa: fix dm9000 platform data regression
      3eae03da
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 9d37e667
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "A small set of ARM fixes for -rc3, most of them not far off
        one-liners, with the exception of fixing the V7 cache invalidation for
        incoming SMP processors which was causing problems for SoCFPGA
        devices"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: fix __virt_to_idmap build error on !MMU
        ARM: invalidate L1 before enabling coherency
        ARM: 8404/1: dma-mapping: fix off-by-one error in bitmap size check
        ARM: 8402/1: perf: Don't use of_node after putting it
        ARM: 8400/1: use virt_to_idmap to get phys_reset address
      9d37e667
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0e1dbccd
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Two families of fixes:
      
         - Fix an FPU context related boot crash on newer x86 hardware with
           larger context sizes than what most people test.  To fix this
           without ugly kludges or extensive reverts we had to touch core task
           allocator, to allow x86 to determine the task size dynamically, at
           boot time.
      
           I've tested it on a number of x86 platforms, and I cross-built it
           to a handful of architectures:
      
                                              (warns)               (warns)
             testing     x86-64:  -git:  pass (    0),  -tip:  pass (    0)
             testing     x86-32:  -git:  pass (    0),  -tip:  pass (    0)
             testing        arm:  -git:  pass ( 1359),  -tip:  pass ( 1359)
             testing       cris:  -git:  pass ( 1031),  -tip:  pass ( 1031)
             testing       m32r:  -git:  pass ( 1135),  -tip:  pass ( 1135)
             testing       m68k:  -git:  pass ( 1471),  -tip:  pass ( 1471)
             testing       mips:  -git:  pass ( 1162),  -tip:  pass ( 1162)
             testing    mn10300:  -git:  pass ( 1058),  -tip:  pass ( 1058)
             testing     parisc:  -git:  pass ( 1846),  -tip:  pass ( 1846)
             testing      sparc:  -git:  pass ( 1185),  -tip:  pass ( 1185)
      
           ... so I hope the cross-arch impact 'none', as intended.
      
           (by Dave Hansen)
      
         - Fix various NMI handling related bugs unearthed by the big asm code
           rewrite and generally make the NMI code more robust and more
           maintainable while at it.  These changes are a bit late in the
           cycle, I hope they are still acceptable.
      
           (by Andy Lutomirski)"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86
        x86/fpu, sched: Dynamically allocate 'struct fpu'
        x86/entry/64, x86/nmi/64: Add CONFIG_DEBUG_ENTRY NMI testing code
        x86/nmi/64: Make the "NMI executing" variable more consistent
        x86/nmi/64: Minor asm simplification
        x86/nmi/64: Use DF to avoid userspace RSP confusing nested NMI detection
        x86/nmi/64: Reorder nested NMI checks
        x86/nmi/64: Improve nested NMI comments
        x86/nmi/64: Switch stacks on userspace NMI entry
        x86/nmi/64: Remove asm code that saves CR2
        x86/nmi: Enable nested do_nmi() handling for 64-bit kernels
      0e1dbccd
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dae57fb6
      Linus Torvalds authored
      Pull timer fix from Ingo Molnar:
       "Fix for a misplaced export that can cause build failures in certain
        (rare) Kconfig situations"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tick: Move the export of tick_broadcast_oneshot_control to the proper place
      dae57fb6
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d65b78f5
      Linus Torvalds authored
      Pull scheduler fix from Ingo Molnar:
       "A oneliner rq throttling fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Test list head instead of list entry in throttle_cfs_rq()
      d65b78f5
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f79a17bf
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Mostly tooling fixes, plus a static key fix fixing /sys/devices/cpu/rdpmc"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tools: Really allow to specify custom CC, AR or LD
        perf auxtrace: Fix misplaced check for HAVE_SYNC_COMPARE_AND_SWAP_SUPPORT
        perf hists browser: Take the --comm, --dsos, etc filters into account
        perf symbols: Store if there is a filter in place
        x86, perf: Fix static_key bug in load_mm_cr4()
        tools: Copy lib/hweight.c from the kernel sources
        perf tools: Fix the detached tarball wrt rbtree copy
        perf thread_map: Fix the sizeof() calculation for map entries
        tools lib: Improve clean target
        perf stat: Fix shadow declaration of close
        perf tools: Fix lockup using 32-bit compat vdso
      f79a17bf
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 59ee7621
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "Misc irq fixes:
      
         - two driver fixes
         - a Xen regression fix
         - a nested irq thread crash fix"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gicv3-its: Fix mapping of LPIs to collections
        genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD
        genirq: Revert sparse irq locking around __cpu_up() and move it to x86 for now
        gpio/davinci: Fix race in installing chained irq handler
      59ee7621
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 3a26a5b1
      Linus Torvalds authored
      Merge fixes from Andrew Morton:
       "25 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (25 commits)
        lib/decompress: set the compressor name to NULL on error
        mm/cma_debug: correct size input to bitmap function
        mm/cma_debug: fix debugging alloc/free interface
        mm/page_owner: set correct gfp_mask on page_owner
        mm/page_owner: fix possible access violation
        fsnotify: fix oops in fsnotify_clear_marks_by_group_flags()
        /proc/$PID/cmdline: fixup empty ARGV case
        dma-debug: skip debug_dma_assert_idle() when disabled
        hexdump: fix for non-aligned buffers
        checkpatch: fix long line messages about patch context
        mm: clean up per architecture MM hook header files
        MAINTAINERS: uclinux-h8-devel is moderated for non-subscribers
        mailmap: update Sudeep Holla's email id
        Update Viresh Kumar's email address
        mm, meminit: suppress unused memory variable warning
        configfs: fix kernel infoleak through user-controlled format string
        include, lib: add __printf attributes to several function prototypes
        s390/hugetlb: add hugepages_supported define
        mm: hugetlb: allow hugepages_supported to be architecture specific
        revert "s390/mm: make hugepages_supported a boot time decision"
        ...
      3a26a5b1
  4. 17 Jul, 2015 16 commits