Likwid stands for Like I knew what I am doing. This project contributes easy to use command line tools for Linux to support programmers in developing high performance multi threaded programs. It contains the following tools: likwid-topology: Show the thread and cache topology likwid-perfctr: Measure hardware performance counters on Intel and AMD processors likwid-features: Show and Toggle hardware prefetch control bits on Intel Core 2 processors likwid-pin: Pin your threaded application without touching your code (supports pthreads, Intel OpenMP and gcc OpenMP) likwid-bench: Benchmarking framework allowing rapid prototyping of threaded assembly kernels likwid-mpirun: Script enabling simple and flexible pinning of MPI and MPI/threaded hybrid applications likwid-perfscope: Frontend for likwid-perfctr timeline mode. Allows live plotting of performance metrics. Likwid stands out because: No kernel patching, any vanilla linux 2.6 kernel works Transparent, always clear which events are chosen, event tags have the same naming as in documentation Lightweight, LIKWID tries to add no overhead and keeps out of your way. Easy to use, simple to build, no need to touch your code, configurable from outside. Clear CLI interface. Multiplatform, likwid supports Intel and AMD processors Up to date, likwid tries to fully support new processors as soon as possible Extensible, you can add functionality by means of simple text files Reproducible: Always
Created attachment 278717 [details] likwid-2.2.1 ebuild
Created attachment 308089 [details] likwid-2.3.0.ebuild Added ebuild for version 2.3.0 with more USE flags and dependencies
ebuild needs some work and cleanup as part of a bump to 3.1.3 I will do this.
Created attachment 398002 [details] likwid-3.1.3.ebuild New ebuild for likwid 3.1.3 I need to update patches as well. A lot has changed. Lot's of the previous use flags don't apply or should not be exposed anymore.
Created attachment 398004 [details, diff] likwid-3.1.3-accessClient.patch This patch fix's the client apps path to "likwid-accessD". Its hard coded in each app. Sets the correct path to the likwid-accessD. With out this the client apps end up with a garbage path and causing them to fail.
Created attachment 398006 [details, diff] likwid-3.1.3-include_GCC.patch This adds "-Wa,--noexecstack" to the CFLAGS. Not sure this is the best way to solve this. Using "flag-o-matic" did not get me the desired outcome.
Created attachment 398008 [details, diff] likwid-3.1.3-Makefile.patch Remove old "/usr/man" man page install. Used one SED line to update the man pages. (for date and version strings) This is now taken care of by "doman" inside the ebuild.
Asking for version bump to 3.1.3 and to be entered into the portage tree. Assuming all is ok :)
Created attachment 398010 [details] likwid-3.1.3.ebuild woops, had a ARCH error
Created attachment 398108 [details] likwid-3.1.3.ebuild refined I slightly refine the ebuild although a few changes are really minor 1) explicitly put sys-apps/sed into DEPEND 2) call "|| die" if using external app (not bash) 3) convert simple patch to sed operations (slightly reduce the patchset) 4) fix multilib restrict err, call $(get_libdir) still with USE=fortran enabled, I got this err, also one warning ===> INSTALL man pages ===> INSTALL libraries to /var/tmp/portage/sys-apps/likwid-3.1.3-r1/image//usr/lib ===> INSTALL filters to /var/tmp/portage/sys-apps/likwid-3.1.3-r1/image/usr/share/likwid install: cannot stat ‘likwid.mod’: No such file or directory !!! doins: likwid.mod does not exist * ERROR: sys-apps/likwid-3.1.3-r1::gentoo failed (install phase): * doins failed * * QA Notice: The following files contain writable and executable sections * Files with such sections will not work properly (or at all!) on some * architectures/operating systems. A bug should be filed at * http://bugs.gentoo.org/ to make sure the issue is fixed. * For more information, see http://hardened.gentoo.org/gnu-stack.xml * Please include the following list of files in your report: * Note: Bugs should be filed for the respective maintainers * of the package in question and not hardened@g.o. * !WX --- --- usr/lib64/liblikwid.a:loadData.o * RWX --- --- usr/bin/likwid-bench * RWX --- --- usr/bin/likwid-pin * RWX --- --- usr/bin/likwid-genCfg * RWX --- --- usr/bin/likwid-topology * RWX --- --- usr/bin/likwid-memsweeper * RWX --- --- usr/bin/likwid-powermeter * RWX --- --- usr/bin/likwid-features * RWX --- --- usr/bin/likwid-perfctr
(In reply to Yixun Lan from comment #10) > Created attachment 398108 [details] > likwid-3.1.3.ebuild refined > > I slightly refine the ebuild although a few changes are really minor > 1) explicitly put sys-apps/sed into DEPEND > 2) call "|| die" if using external app (not bash) > 3) convert simple patch to sed operations (slightly reduce the patchset) > 4) fix multilib restrict err, call $(get_libdir) > > > still with USE=fortran enabled, I got this err, also one warning > > ===> INSTALL man pages > ===> INSTALL libraries to > /var/tmp/portage/sys-apps/likwid-3.1.3-r1/image//usr/lib > ===> INSTALL filters to > /var/tmp/portage/sys-apps/likwid-3.1.3-r1/image/usr/share/likwid > install: cannot stat ‘likwid.mod’: No such file or directory > !!! doins: likwid.mod does not exist > * ERROR: sys-apps/likwid-3.1.3-r1::gentoo failed (install phase): > * doins failed > * > > * QA Notice: The following files contain writable and executable sections > * Files with such sections will not work properly (or at all!) on some > * architectures/operating systems. A bug should be filed at > * http://bugs.gentoo.org/ to make sure the issue is fixed. > * For more information, see http://hardened.gentoo.org/gnu-stack.xml > * Please include the following list of files in your report: > * Note: Bugs should be filed for the respective maintainers > * of the package in question and not hardened@g.o. > * !WX --- --- usr/lib64/liblikwid.a:loadData.o > * RWX --- --- usr/bin/likwid-bench > * RWX --- --- usr/bin/likwid-pin > * RWX --- --- usr/bin/likwid-genCfg > * RWX --- --- usr/bin/likwid-topology > * RWX --- --- usr/bin/likwid-memsweeper > * RWX --- --- usr/bin/likwid-powermeter > * RWX --- --- usr/bin/likwid-features > * RWX --- --- usr/bin/likwid-perfctr Wow thank you Yixun Lan! I will try fix the Fortran issue. Not sure about the QA warnings, I've added "-Wa,--noexecstack" in the build file for the listed binary's.. hmm
Created attachment 398118 [details, diff] likwid-3.1.3-fix-gnustack.patch this is a slightly dirty patch which should fix gnustack warning, tested, and works here. Brendan, can you still verify if the program still works (do a run-time test)? I'd assume it should yield a "Yes" btw, it's always a good idea to push these patches/changes back to upstream, thus you get much clean ebuild at next release cycle. thanks
(In reply to Yixun Lan from comment #12) > Created attachment 398118 [details, diff] [details, diff] > likwid-3.1.3-fix-gnustack.patch > > this is a slightly dirty patch which should fix gnustack warning, tested, > and works here. > > Brendan, can you still verify if the program still works (do a run-time > test)? I'd assume it should yield a "Yes" > > btw, it's always a good idea to push these patches/changes back to upstream, > thus you get much clean ebuild at next release cycle. > > thanks Thanks for the patch. I will try understand it a bit more before I push back to upstream. The applications work with the patch, so nothing is broken by the patch. On a side note I still can't get it build the Fortran module . Thanks brendan
> On a side note I still can't get it build the Fortran module . > > Thanks > brendan Never mind.. I've worked this out, will need a little while to update the ebuild
Created attachment 398198 [details] likwid-3.1.3.ebuild No more QA warnings. Fortran module now gets built and installed correctly (via use flag) No other errors or warnings during merge No repoman warnings. I will update the Makefile patch next. This should be good to go :)
Created attachment 398200 [details, diff] likwid-3.1.3-Makefile.patch Updated the Makefile patch for Fortran fix.
Just encase the attachments look messy : Correct ebuild file is : * likwid-3.1.3.ebuild (1.70 KB, text/plain) Required patches are : * likwid-3.1.3-Makefile.patch (2.74 KB, patch) * likwid-3.1.3-fix-gnustack.patch (933 bytes, patch) Nothing else is needed.
+*likwid-3.1.3 (06 Mar 2015) + + 06 Mar 2015; Yixun Lan <dlan@gentoo.org> +likwid-3.1.3.ebuild, + +files/likwid-3.1.3-Makefile.patch, +files/likwid-3.1.3-fix-gnustack.patch, + +metadata.xml: + initial ebuild, contributed by Brendan Horan, but 373607 btw, I drop noexecstack's sed operation[1], with the gnustack patch, it's not needed, let me know if have problem with this [1] sed -e "/^CFLAGS/s|$| -Wa,--noexecstack|" \ -i make/include_GCC.mk || die