Skip to content
This repository was archived by the owner on Mar 11, 2019. It is now read-only.

Commit e3551bc

Browse files
committedOct 7, 2016
fix(powerapi-code-energy-analysis): fix bugs and improve the resilience to errors
1 parent 7ee3dde commit e3551bc

File tree

15 files changed

+457
-1617
lines changed

15 files changed

+457
-1617
lines changed
 

‎docker/Dockerfile-code-energy-analysis

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
1-
FROM alpine:3.3
1+
FROM openjdk:8-jre
22

33
ENV POWERAPI_PACKAGE powerapi-code-energy-analysis
44
ENV LIBPFM_PACKAGE libpfm-4.6.0
55

6-
ENV INSTALL_PACKAGES ca-certificates linux-headers libc-dev make gcc patch
7-
ENV RUNTIME_PACKAGES openjdk8-jre bash libcgroup-tools procps
6+
ENV INSTALL_PACKAGES wget make gcc
7+
ENV RUNTIME_PACKAGES cgroup-tools
88

9-
COPY docker/libpfm/config.mk.patch /root/
109
COPY ${POWERAPI_PACKAGE}/target/universal/${POWERAPI_PACKAGE} /root/${POWERAPI_PACKAGE}/
1110

1211
VOLUME /conf /tmp
1312

14-
RUN apk update && apk upgrade && apk add $INSTALL_PACKAGES $RUNTIME_PACKAGES --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ && \
15-
wget https://circle-artifacts.com/gh/sgerrand/alpine-pkg-glibc/6/artifacts/0/home/ubuntu/alpine-pkg-glibc/packages/x86_64/glibc-2.21-r2.apk && apk --allow-untrusted add glibc-2.21-r2.apk && rm -f glibc-2.21-r2.apk && \
16-
wget http://downloads.sourceforge.net/project/perfmon2/libpfm4/${LIBPFM_PACKAGE}.tar.gz && tar -C /root -xzvf ${LIBPFM_PACKAGE}.tar.gz && patch -d /root/$LIBPFM_PACKAGE -p1 < /root/config.mk.patch && (cd /root/$LIBPFM_PACKAGE; make lib; make install) && rm -rf /root/config.mk.patch /root/$LIBPFM_PACKAGE ${LIBPFM_PACKAGE}.tar.gz && \
13+
RUN apt-get update && apt-get -y upgrade && apt-get -y install $INSTALL_PACKAGES $RUNTIME_PACKAGES && \
14+
wget http://downloads.sourceforge.net/project/perfmon2/libpfm4/${LIBPFM_PACKAGE}.tar.gz && tar -C /root -xzvf ${LIBPFM_PACKAGE}.tar.gz && (cd /root/$LIBPFM_PACKAGE; make lib; make install) && rm -rf /root/$LIBPFM_PACKAGE ${LIBPFM_PACKAGE}.tar.gz && \
1715
rm -rf /root/${POWERAPI_PACKAGE}/conf && ln -s /conf/ /root/${POWERAPI_PACKAGE}/conf && \
18-
apk del glibc $INSTALL_PACKAGES && \
19-
rm -rf /var/cache/apk/*
16+
apt-get -y remove --auto-remove $INSTALL_PACKAGES && \
17+
rm -rf /var/lib/apt/lists/*
2018

2119
WORKDIR /root/$POWERAPI_PACKAGE
2220

‎docker/agent/Dockerfile-agent

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
FROM ubuntu:14.04
22

33
ARG NB_CORES
4-
ARG SMPL_THRESHOLD
54
ARG UNHALTED_CYCLES_EVT
65
ARG UNHALTED_REF_CYCLES_EVT
76

@@ -22,9 +21,10 @@ ENV RUNTIME_PACKAGES libdw-dev libunwind8-dev
2221
RUN apt-get update && apt-get -y upgrade && apt-get -y install $INSTALL_PACKAGES $RUNTIME_PACKAGES && \
2322
wget http://downloads.sourceforge.net/project/perfmon2/libpfm4/${LIBPFM_PACKAGE}.tar.gz && tar -C /root -xzvf ${LIBPFM_PACKAGE}.tar.gz && (cd /root/$LIBPFM_PACKAGE; make lib; make install) && rm -rf /root/$LIBPFM_PACKAGE ${LIBPFM_PACKAGE}.tar.gz && \
2423
wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz && tar -C /root -xzvf protobuf-2.6.1.tar.gz && (cd /root/protobuf-2.6.1; ./autogen.sh; ./configure; make; make install) && rm -rf /root/protobuf-2.6.1 protobuf-2.6.1.tar.gz && \
25-
wget https://github.com/squidfunk/protobluff/archive/0.5.0.tar.gz && tar -C /root -xzvf 0.5.0.tar.gz && (cd /root/protobluff-0.5.0; ./autogen.sh; ./configure; make; make install) && rm -rf /root/protobluff-0.5.0 0.5.0.tar.gz && \
2624
ldconfig && \
27-
(cd /root/powerapi-agent; make NB_CORES=${NB_CORES} SMPL_THRESHOLD=${SMPL_THRESHOLD} UNHALTED_CYCLES_EVT=${UNHALTED_CYCLES_EVT} UNHALTED_REF_CYCLES_EVT=${UNHALTED_REF_CYCLES_EVT}) && \
25+
wget https://github.com/protobuf-c/protobuf-c/releases/download/v1.2.1/protobuf-c-1.2.1.tar.gz && tar -C /root -xzvf protobuf-c-1.2.1.tar.gz && (cd /root/protobuf-c-1.2.1; ./configure; make; make install) && rm -rf /root/protobuf-c-1.2.1 protobuf-c-1.2.1.tar.gz && \
26+
ldconfig && \
27+
(cd /root/powerapi-agent; make NB_CORES=${NB_CORES} UNHALTED_CYCLES_EVT=${UNHALTED_CYCLES_EVT} UNHALTED_REF_CYCLES_EVT=${UNHALTED_REF_CYCLES_EVT}) && \
2828
mv /root/powerapi-agent/powerapi-agent /root/powerapi-agent-app && rm -rf /root/powerapi-agent && mv /root/powerapi-agent-app /root/powerapi-agent && \
2929
apt-get -y remove --auto-remove $INSTALL_PACKAGES && \
3030
rm -rf /var/lib/apt/lists/*

‎docker/agent/Makefile

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
CC=cc
22
CFLAGS=-c -Wall -O0
33
INCLUDE=-I/usr/local/include
4-
LDFLAGS=-L/usr/local/lib -lpfm -lprotobluff -L/usr/lib -lunwind -lunwind-generic -lunwind-ptrace -ldw
5-
SOURCES=payload.pb.c perf_util.c powerapi-agent.c
4+
LDFLAGS=-L/usr/local/lib -lpfm -lprotobuf-c -L/usr/lib -lunwind -lunwind-generic -lunwind-ptrace -ldw
5+
SOURCES=payload.pb-c.c perf_util.c powerapi-agent.c
66
OBJECTS=$(SOURCES:.c=.o)
77
EXECUTABLE=powerapi-agent
88

@@ -11,15 +11,15 @@ all: $(SOURCES) $(EXECUTABLE)
1111
$(EXECUTABLE): $(OBJECTS)
1212
$(CC) $(OBJECTS) -o $@ $(LDFLAGS)
1313

14-
payload.pb.c: payload.proto
15-
protoc --protobluff_out=. $<
14+
payload.pb-c.c: payload.proto
15+
protoc-c --c_out=. $<
1616

1717
powerapi-agent.o:
18-
$(CC) $(CFLAGS) -D NB_CORES=$(NB_CORES) -D SMPL_THRESHOLD=$(SMPL_THRESHOLD) -D UNHALTED_CYCLES_EVT=\"$(UNHALTED_CYCLES_EVT)\" -D UNHALTED_REF_CYCLES_EVT=\"$(UNHALTED_REF_CYCLES_EVT)\" $(INCLUDE) powerapi-agent.c -o $@
18+
$(CC) $(CFLAGS) -D NB_CORES=$(NB_CORES) -D UNHALTED_CYCLES_EVT=\"$(UNHALTED_CYCLES_EVT)\" -D UNHALTED_REF_CYCLES_EVT=\"$(UNHALTED_REF_CYCLES_EVT)\" $(INCLUDE) powerapi-agent.c -o $@
1919

2020
.c.o:
2121
$(CC) $(CFLAGS) $(INCLUDE) $< -o $@
2222

2323
clean:
2424
rm -f $(OBJECTS) $(EXECUTABLE)
25-
rm -rf payload.pb.c payload.pb.h
25+
rm -rf payload.pb-c.c payload.pb-c.h

‎docker/agent/payload.pb.c

-87
This file was deleted.

0 commit comments

Comments
 (0)
Failed to load comments.