Skip to content
This repository was archived by the owner on Apr 2, 2025. It is now read-only.

2 unwinders#13

Closed
unkadoug wants to merge 41 commits intoHPCToolkit:masterfrom
unkadoug:2_unwinders
Closed

2 unwinders#13
unkadoug wants to merge 41 commits intoHPCToolkit:masterfrom
unkadoug:2_unwinders

Conversation

@unkadoug
Copy link
Copy Markdown

@unkadoug unkadoug commented Sep 7, 2017

No description provided.

unkadoug added 30 commits June 8, 2017 16:47
…based, we

need two pools of free unwind-interval tree nodes, since they will be differently
sized for the different unwinders.  Define an enum to identify the two unwinders.
Define a struct to represent the global locks, free list, and allocator, and
have an array of 2 structs for the 2 unwinder types.  Also, have 2 thread-specific
free lists, since thread-specific variables can't be incorporated into a global
struct.  Manage the allocatation and freeing of unwind-interval tree nodes by referring
to an enumerant, and without passing allocator pointer functions around as much as
before.
…e some field, and the only

value ever passed in that argument is NULL, drop the argument and have the constructor supply
the NULL itself.
… native unwinding and

one for dwarf unwinding.  Pass an argument to uw_recipe_map_lookup to identify an unwinding type.
Conflicts:
	src/tool/hpcrun/unwind/x86-family/x86-and.c
	src/tool/hpcrun/unwind/x86-family/x86-build-intervals.c
	src/tool/hpcrun/unwind/x86-family/x86-canonical.c
	src/tool/hpcrun/unwind/x86-family/x86-lea.c
	src/tool/hpcrun/unwind/x86-family/x86-move.c
Conflicts:
	src/tool/hpcrun/unwind/x86-family/x86-build-intervals.c
into the common cursor, without actually having the native unwinder use
the libunwind parts.  Delete an enum that duplicted a libunwind enum.
Add an unwinder-type parameter to build_intervals, which is currently
ignored.
Conflicts:
	src/tool/hpcrun/unwind/x86-family/x86-unwind.c
…ils;

thereafter, initialize the cursor register fields and use native unwinding.
initialization after libunw failure.  Initialize the failure flag to false.
the map associated with the unwinder in use.
the libunwind register state from the x86 registers and then
resume unwinding with libunwind.
Conflicts:
	src/tool/hpcrun/unwind/generic-libunwind/libunw-unwind.c
Conflicts:
	src/tool/hpcrun/unwind/generic-libunwind/libunw-unwind.c
…ls, and doesn't try

to get back to libunwind later in the same unwinding.  Use (sp-1) for the ra_loc value.
unkadoug and others added 11 commits August 18, 2017 17:40
from copying the cursor and return address validation.
by copying the old cursor context, updating the PC, SP and BP regs
in the context with values from the native unwinder, and using
unw_init_local to reinitialize with the updated context.
to replace -1, 0 and 1.  Eliminate a redundant test and block.
Conflicts:
	src/tool/hpcrun/unwind/x86-family/x86-validate-retn-addr.c
Conflicts:
	src/tool/hpcrun/unwind/x86-family/x86-build-intervals.c
	src/tool/hpcrun/unwind/x86-family/x86-move.c
@unkadoug unkadoug closed this Oct 6, 2017
@laksono laksono mentioned this pull request Jan 18, 2018
vladaindjic pushed a commit to vladaindjic/hpctoolkit that referenced this pull request Nov 3, 2020
… cache is common for the packages

Currently cores within package that share the same L2 cache are grouped together.
The current logic behind this assumes that the L2 cache is always at deeper
(or the same) level than the package itself. In case when L2 cache is common
for all packages (and the packages are at deeper level than L2 cache) the whole of
the further topology discovery fails to find any computational units resulting in
following assertion:

Assertion failure at kmp_affinity.cpp(715): nActiveThreads == __kmp_avail_proc.
OMP: Error HPCToolkit#13: Assertion failure at kmp_affinity.cpp(715).

This patch adds a bit of a logic that prevents such situation from occurring.

Differential Revision: https://reviews.llvm.org/D61796



git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@360890 91177308-0d34-0410-b5e6-96231b3b80d8
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant