History log of /external/libunwind/include/tdep-x86_64/libunwind_i.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f4a8df5f4f338f1a12c25213227e98b34b42447f 08-Mar-2014 Christopher Ferris <cferris@google.com> Fix maps caching for local processes.

It is possible for the map to change while running libunwind. For example,
if lots of threads are doing local unwinds at the same time. Allow the
cached map to regenerate when it detects this case.

Included in this change is a refactor of all of the os code so that it can
also be used to do caching. This is a prelude to being able to attempt to
push the code upstream.

Also, this moves the code back closer to the original upstream code.
Hopefully, this will allow me to upstream all of these changes.

Change-Id: Ia219fa61e16e36416133bc95b1dd2161bd5b8ff7
/external/libunwind/include/tdep-x86_64/libunwind_i.h
16b95a68caaa7e021209e2cd6a877ae1e558f740 23-Jan-2014 Christopher Ferris <cferris@google.com> Add speed-ups to libunwind.

Add caching of /proc/self/maps data structures.

Add caching of elf image maps attached to the maps data structure.

Add a set of new map api functions to handle creation/destruction of the
maps by external code.

Remove the creation of the maps data structure in the local address space
init.

Change-Id: I0adae397d433fc3902f83a6f377f6889161937e5
/external/libunwind/include/tdep-x86_64/libunwind_i.h
7d46a21e0a2cb561e4cad57b101a7137e01023dc 14-Nov-2013 Christopher Ferris <cferris@google.com> For current process, check memory accesses.

When attempting to unwind the current process, the library simple reads and
writes to memory for memory accesses. Unfortunately, if an unwind winds up
with invalid data, then the process can segfault. Add a guard to all memory
accesses that verifies that reads/writes are valid before attempting them.

For now, this guard is a nop on all systems except linux systems.

Also, modify the adjust_ip function to use the access_mem function
so that all reads go through the right function.

Bug: 11652982
Change-Id: I9d1feacae585374f6bf1d899f8a006ec9ecb47c4
/external/libunwind/include/tdep-x86_64/libunwind_i.h
5d0f376b08126b51a001d7cdfba1ec4e0d644f54 21-Sep-2012 Tommi Rantala <tt.rantala@gmail.com> Invert tdep_init() flag logic

Invert the flag that signals that tdep_init() was called, to move the
symbol from data to BSS.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
d93d96ad833390519ea68a2df22dd55dd26a3214 22-May-2012 Martin Milata <mmilata@redhat.com> Fix compilation on IA64

- Add tdep macro for {dwarf,ia64}_find_unwind_table so that ia64
doesn't try to use dwarf code.
- Fix extraneous #if.
- Fix mistyped filename in Makefile.am.
- Link ia64-specific tests with correct libraries.

Signed-off-by: Martin Milata <mmilata@redhat.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
ae5c1f2adf4da04235d87d024d4d942c01b2b447 18-Apr-2011 Lassi Tuura <lat@cern.ch> Performance optimisations for fast trace.

Insert static branch prediction predicates in useful places and avoid
unnecessary code in the hottest paths. Bypass unnecessary indirect
calls, in particular to access_mem(), when known to be safe.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
e2962af9d31266761700b431da894421c0d757ec 06-Apr-2011 Arun Sharma <asharma@fb.com> Implement a cheaper getcontext()

Since the fast unwinding code path doesn't need the full context,
a faster target dependent getcontext is implemented.

Signed-off-by: Lassi Tuura <lat@cern.ch>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
5f38f35d5d6c78aafa6da20845d9ceff74af00f8 01-Apr-2011 Lassi Tuura <lat@cern.ch> Drop a call frame in tdep_trace and avoid a call to unw_step.

Dropping the extra frame for unw_backtrace itself using unw_step is
approximately 15% slower than skipping the frame in tdep_trace. So
drop the frame in the latter, and make the function a private
implementation detail for libunwind, not an exported interface.

Also moves unw_getcontext call back into unw_backtrace to avoid an
extra call frame in case slow_backtrace does not get inlined into
unw_backtrace.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
9e98f15e9aee12e67cd5956d06ccb559f6a06213 19-Mar-2011 Lassi Tuura <lat@iki.fi> Fast back-trace for x86_64 for only collecting the call stack.

Adds new function to perform a pure stack walk without unwinding,
functionally similar to backtrace() but accelerated by an address
attribute cache the caller maintains across calls.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
28f33c8ce0b654cf31d6beda9a612870662f3c56 22-Mar-2011 Lassi Tuura <lat@cern.ch> Auto-detect whether to use msync() or mincore() for address validation.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
1787a2fd284a786b409af74047a12de02c644cd1 15-May-2010 Arun Sharma <arun@sharma-home.net> Add path and pathlen arguments to tdep_get_elf_image()

Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
dac2d001afb1fa7040ca7d8ae57032f684d7023e 20-Apr-2010 Lassi Tuura <lat@cern.ch> Identify signal frames by augmentation attribute.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
752ce15c4fbe0e08c2d19df18caa86887732b3c8 08-Mar-2010 Konstantin Belousov <kostik@pooma.home> Preliminary version of freebsd syscall unwinder
/external/libunwind/include/tdep-x86_64/libunwind_i.h
c64723835c0c855fde5bec3d7528db64fe539015 07-Mar-2010 Konstantin Belousov <kostik@pooma.home> Support walk over freebsd sigframes
/external/libunwind/include/tdep-x86_64/libunwind_i.h
649f1fb3449a65dd0626a709432d8b02a7c56bbc 16-Jun-2008 Arun Sharma <arun.sharma@google.com> [X86-64] For local unwinding, we have a defence mechanism against
bad/missing unwind information, which could result in libunwind
dereferencing bad pointers. This mechanism is based on msync(2) system
call and significantly reduces the chances of a bad pointer
dereference in libunwind.

The original idea was to turn this mechanism on only when necessary
i.e. libunwind didn't find proper unwind information for a IP.

There are a couple of problems in the current implementation.

* The flag is global and is modified without locking
* The flag isn't reset when starting a new unwind

The attached patch makes ->validate a per-thread setting by moving it
into struct cursor from unw_local_addr_space and resets it to false
when starting a new unwind. As a result, cursor->as_arg points to the
cursor itself instead of the ucontext (for the local case).

This was found to reduce the number of msync() system calls from an
application using libunwind significantly.

Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
Signed-off-by: Arun Sharma <arun.sharma@google.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
3842dac7333e42aa44531eda34ba55200b99ccf8 05-Feb-2008 Daniel Jacobowitz <drow@false.org> Add initial ARM and MIPS support. To support this, also enable the
reading of .debug_frame sections (used in lieu of .eh_frame sections
when they're not available).
/external/libunwind/include/tdep-x86_64/libunwind_i.h
795529eee394ce1c0c80ee364217cdd679e5eda3 03-Aug-2006 Arun Sharma (अरुण) <arun.sharma@google.com> [x86-64] Add a known good address cache.

This improves the performance of Lperf-simple from 500ns to 195ns
on the avg.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
1fdb08e5fc427b54b54214e3b3fbdda73d369f4d 27-Jul-2006 David Mosberger-Tang <davidm@koala.localdomain> Various fixes to get x86 to compile and work again.

include/dwarf.h: Declare dwarf_reg_state_pool and dwarf_cie_info_pool.
include/dwarf_i.h: Include libunwind_i.h instead of tdep.h.
Make dwarf_to_unw_regnum() a macro so it doesn't get compiled
into an object file merely because it include dwarf_i.h (important
when optimization is turned off).
(dwarf_read_encoded_pointer_inlined): New function.
include/tdep-x86/libunwind_i.h: Add include of "mempool.h".
include/tdep-x86_64/libunwind_i.h: Add include of "mempool.h".
/external/libunwind/include/tdep-x86_64/libunwind_i.h
8cdd8bfed8f21bb632faf69cca023c9762d78ab1 27-Jul-2006 Arun Sharma <aruns@sharma.corp.google.com> [x86-64] Make even UNW_LOCAL_ONLY accessors go through validation.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
00db7f752ac26c5aab6b4ca03531a2c3e212b135 27-Jul-2006 Arun Sharma <aruns@sharma.corp.google.com> Implement a ip -> dwarf_reg_state cache.

Signed-off-by: Arun Sharma <arun.sharma@google.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
37be21c01ebe23402d4b5f1391e7a83da34e8c32 26-Jul-2006 David Mosberger-Tang <davidm@koala.localdomain> Restore more files wiped out by Bitkeeper->CVS->GIT transition.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
180a1ececa292bf92cf665ab6253fb68727d576a 20-May-2005 hp.com!davidm <hp.com!davidm> Initial revision
/external/libunwind/include/tdep-x86_64/libunwind_i.h
bea50a5d413b31418dba16c9a2a28e31e0459468 20-May-2005 hp.com!davidm <hp.com!davidm> Adjust for renaming of file.
(tdep_put_unwind_info): Adjust for change of arguments.

2005/05/19 07:42:45-07:00 hp.com!davidm
Rename: include/tdep-x86_64.h -> include/tdep-x86_64/libunwind_i.h

(Logical change 1.294)
/external/libunwind/include/tdep-x86_64/libunwind_i.h