support for java-11 made a bit cleaner

This commit is contained in:
Rajshekar K K 2023-06-12 13:58:18 +05:30
parent 776bb9cbfe
commit fca8399d0f
4 changed files with 28 additions and 20 deletions

View File

@ -688,7 +688,9 @@ VOID Instruction(INS ins, VOID *v) {
UINT32 memOperands = INS_MemoryOperandCount(ins);
if (INS_IsControlFlow(ins))//INS_IsBranchOrCall(ins))//INS_IsIndirectBranchOrCall(ins))
//if (INS_IsIndirectBranchOrCall(ins))//old versions of PIN
if (INS_IsBranchOrCall(ins))//use this for older versions of PIN like 97554
//if (INS_IsControlFlow(ins))//use this for newer versions of PIN like 98332
{
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR) BrnFun, IARG_THREAD_ID,
IARG_BRANCH_TARGET_ADDR, IARG_BRANCH_TAKEN, IARG_INST_PTR,

View File

@ -1,4 +1,4 @@
PIN_KIT ?=/home/rajshekar/softwares/pin-98332/
PIN_KIT ?=/mnt/remote_scratch/softwares/pin-97554/
CXX=$(shell make PIN_ROOT=$(PIN_KIT) VAR=CXX -f pin_makefile print_var)
LINKER=$(shell make PIN_ROOT=$(PIN_KIT) VAR=LINKER -f pin_makefile print_var)
TOOL_CXXFLAGS=$(shell make PIN_ROOT=$(PIN_KIT) VAR=TOOL_CXXFLAGS -f pin_makefile print_var)
@ -60,21 +60,23 @@ $(BINDIR)/shmem.$(OBJ_EXTENSION): $(COMMDIR)/IPCBase.h $(COMMDIR)/shm/shmem.h $
################################ JNI stuff comes here ############################################
#JNIPACKAGE = emulatorinterface.communication.shm.SharedMem #use this for java-8
JNIPACKAGE = ../../simulator/emulatorinterface/communication/shm/SharedMem.java #use this for java-11
#JNINCLUDE =-I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -I/usr/lib/jvm/java-8-openjdk-amd64/include #use this for java-8
JNINCLUDE =-I/usr/lib/jvm/java-11-openjdk-amd64/include/linux -I/usr/lib/jvm/java-11-openjdk-amd64/include #use this for java-11
JNILinkingFlags = -shared -Wall $(POSITION_INDEPENDENCE)
#JAVAH = javah -jni #use this for java-8
JAVAH = javac #use this for java-11
JAVAHCOMMAND = $(JAVAH) -classpath $(TOPBINDIR) -h $(JNIBINDIR) $(JNIPACKAGE); mv $(JNIBINDIR)/emulatorinterface_communication_shm_SharedMem.h $(JNIBINDIR)/SharedMem.h
ifeq ($(shell java -version 2>&1|grep 1.8.0 >/dev/null; printf $$?),0)
JNIPACKAGE = emulatorinterface.communication.shm.SharedMem #use this for java-8
JNINCLUDE =-I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -I/usr/lib/jvm/java-8-openjdk-amd64/include #use this for java-8
JAVAH = javah -jni #use this for java-8
JAVAHCOMMAND = $(JAVAH) -classpath $(TOPBINDIR) -o $(JNIBINDIR)/SharedMem.h $(JNIPACKAGE) #use this for java-8
endif
$(JNIBINDIR)/libshmlib.$(LIB_EXTENSION): $(JNIBINDIR)/SharedMem.h $(COMMDIR)/shm/JNIShm.c $(COMMDIR)/common.h
$(shell $(JNICOMMAND))
$(JNIBINDIR)/SharedMem.h: $(TOPBINDIR)/emulatorinterface/communication/shm/SharedMem.class
#$(JAVAH) -classpath $(TOPBINDIR) -o $(JNIBINDIR)/SharedMem.h $(JNIPACKAGE) #use this for java-8
$(JAVAH) -classpath $(TOPBINDIR) -h $(JNIBINDIR) $(JNIPACKAGE) #use this line and the next for java-11
mv $(JNIBINDIR)/emulatorinterface_communication_shm_SharedMem.h $(JNIBINDIR)/SharedMem.h
$(JAVAHCOMMAND)
clean:
rm -rf $(BINDIR) $(JNIBINDIR)

View File

@ -31,12 +31,12 @@ TDP = 15W
<!--Currently we support following (emulator,communication) combinations : -->
<!--(pin, sharedMemory), (qemu, sharedMemory), (qemu, network), (none, file)-->
<!--(pin,file) combination can be used to collect execution trace of an application in a compressed file-->
<EmulatorType>none</EmulatorType> <!--pin,qemu-->
<EmulatorType>pin</EmulatorType> <!--pin,qemu-->
<!--NOTE only file interface supports the execution of multiple benchmarks inside tejas-->
<!--if you are reading the packets from a file, the emulator must be set to none-->
<!--multiple benchmarks are specified using arguments to the simulator-->
<CommunicationType>file</CommunicationType> <!--file,sharedMemory,network-->
<CommunicationType>sharedMemory</CommunicationType> <!--file,sharedMemory,network-->
<!--We can use tejas as an interface to create a compressed (gzip) trace file using the emulator-->
<!--Set this option to true if you want to create a trace file of the benchmark execution-->
@ -49,11 +49,11 @@ TDP = 15W
<!--We do not allow overwriting of trace files. So if a tracefile with same name is pre-existing, kindly rename it-->
<BasenameForTraceFiles>/home/rajshekar/projects/tejas/tests/test1_trace</BasenameForTraceFiles>
<PinTool>/home/rajshekar/softwares/pin-98332/</PinTool>
<PinInstrumentor>/home/rajshekar/projects/tejas/workspace/Tejas/src/emulator/pin/obj-pin/causalityTool.so</PinInstrumentor>
<PinTool>/mnt/remote_scratch/softwares/pin-97554/</PinTool>
<PinInstrumentor>/mnt/remote_scratch1/rajshekar/projects/tejas/workspace/Tejas/src/emulator/pin/obj-pin/causalityTool.so</PinInstrumentor>
<QemuTool>TODO/home/prathmesh/workspace/qemu/x86_64-linux-user/qemu-x86_64 /home/prathmesh/tmp/testQemu.o</QemuTool>
<ShmLibDirectory>/home/rajshekar/projects/tejas/workspace/Tejas/src/emulator/pin/obj-comm/</ShmLibDirectory>
<GetBenchmarkPIDScript>/home/rajshekar_resources/tejas_configs/getBenchmarkPID.sh</GetBenchmarkPIDScript>
<ShmLibDirectory>/mnt/remote_scratch1/rajshekar/projects/tejas/workspace/Tejas/src/emulator/pin/obj-comm/</ShmLibDirectory>
<GetBenchmarkPIDScript>/home/rajshekar/resources/tejas_configs/getBenchmarkPID.sh</GetBenchmarkPIDScript>
<KillEmulatorScript>/home/rajshekar/resources/tejas_configs/killAllDescendents.sh</KillEmulatorScript>
</Emulator>
@ -77,7 +77,7 @@ TDP = 15W
<pinpointsSim>false</pinpointsSim>
<pinpointsFile>/mnt/srishtistr0/scratch/rajshekar/tejas/PinPoints_working_directory/soplex.test.Data/t.sorted</pinpointsFile>
<NumInsToIgnore>00000000</NumInsToIgnore> <!--Ignores these many profilable instructions from the start of the program-->
<subsetSim>false</subsetSim>
<subsetSim>true</subsetSim>
<subsetSimSize>2000000</subsetSimSize>
<markerFunctions>false</markerFunctions>
<startSimMarker>add</startSimMarker>
@ -112,12 +112,12 @@ TDP = 15W
<PipelineType>outOfOrder</PipelineType> <!--inOrder,outOfOrder(set issue width for multi-issue in-order)-->
<BranchPredictor>
<Predictor_Mode>TAGE</Predictor_Mode> <!-- Legal Values are NoPredictor, PerfectPredictor, AlwaysTaken, AlwaysNotTaken, Tournament, Bimodal, GAg, GAp, GShare, PAg, PAp, TAGE, TAGE-SC-L -->
<Predictor_Mode>TAGE-SC-L</Predictor_Mode> <!-- Legal Values are NoPredictor, PerfectPredictor, AlwaysTaken, AlwaysNotTaken, Tournament, Bimodal, GAg, GAp, GShare, PAg, PAp, TAGE, TAGE-SC-L -->
<PCBits>8</PCBits>
<BHRsize>16</BHRsize>
<BranchMispredPenalty>17</BranchMispredPenalty> <!--Branch misprediction penalty--><!-- https://www.7-cpu.com/cpu/Skylake.html -->
<SaturatingBits>2</SaturatingBits>
<TAGESCLLibDirectory>/home/rajshekar/projects/tejas/workspace/Tejas/src/simulator/pipeline/branchpredictor/TAGESCL/</TAGESCLLibDirectory>
<TAGESCLLibDirectory>/mnt/remote_scratch1/rajshekar/projects/tejas/workspace/Tejas/src/simulator/pipeline/branchpredictor/TAGESCL/</TAGESCLLibDirectory>
<LeakageEnergy>0.0178</LeakageEnergy>
<DynamicEnergy>0.0962</DynamicEnergy>
</BranchPredictor>
@ -477,7 +477,7 @@ TDP = 15W
<Interconnect>NOC</Interconnect>
<NOC>
<NocConfigFile>/home/rajshekar/resources/tejas_configs/config_2core_kabylake_NocConfig.txt</NocConfigFile>
<NocConfigFile>/nfs_home/rajshekar/resources/tejas_configs/config_2core_kabylake_NocConfig.txt</NocConfigFile>
<NocSelScheme>STATIC</NocSelScheme>
<NocNumberOfBuffers>4</NocNumberOfBuffers>
<NocPortType>FCFS</NocPortType>

View File

@ -1,7 +1,11 @@
javaver=java-11
ifeq ($(shell java -version 2>&1|grep 1.8.0 >/dev/null; printf $$?),0)
javaver=java-8
endif
all:
javac -h . TAGESCLInvoker.java
#gcc -fPIC -I/usr/lib/jvm/java-8-openjdk-amd64/include/ -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux/ -shared -o libnative.so pipeline_branchpredictor_TAGESCL_TAGESCLInvoker.cc
gcc -fPIC -I/usr/lib/jvm/java-11-openjdk-amd64/include/ -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux/ -shared -o libnative.so pipeline_branchpredictor_TAGESCL_TAGESCLInvoker.cc
gcc -fPIC -I/usr/lib/jvm/$(javaver)-openjdk-amd64/include/ -I/usr/lib/jvm/$(javaver)-openjdk-amd64/include/linux/ -shared -o libnative.so pipeline_branchpredictor_TAGESCL_TAGESCLInvoker.cc
clean:
rm -f *.h
rm -f *.class