uti: Hook system calls by binary-patching glibc
(1) Add --enable-uti option. The binary-patch library is
preloaded with this option.
(2) Binary-patching is done by syscall_intercept developed by Intel
This commit includes the following fixes:
(1) Fix do_exit() and terminate() handling
(2) Fix timing of killing mcexec threads when McKernel thread calls terminate()
Change-Id: Iad885e1e5540ed79f0808debd372463e3b8fecea
This commit is contained in:
@@ -13,9 +13,11 @@ KDIR ?= @KDIR@
|
||||
ARCH=@ARCH@
|
||||
CFLAGS=-Wall -O -I. -I$(VPATH)/arch/${ARCH} -I${IHKDIR} -I@abs_builddir@/../../../ihk/linux/include
|
||||
LDFLAGS=@LDFLAGS@
|
||||
CPPFLAGS_SYSCALL_INTERCEPT=@CPPFLAGS_SYSCALL_INTERCEPT@
|
||||
LDFLAGS_SYSCALL_INTERCEPT=@LDFLAGS_SYSCALL_INTERCEPT@
|
||||
RPATH=$(shell echo $(LDFLAGS)|awk '{for(i=1;i<=NF;i++){if($$i~/^-L/){w=$$i;sub(/^-L/,"-Wl,-rpath,",w);print w}}}')
|
||||
VPATH=@abs_srcdir@
|
||||
TARGET=mcexec libsched_yield ldump2mcdump.so
|
||||
TARGET=mcexec libsched_yield ldump2mcdump.so syscall_intercept.so
|
||||
@uncomment_if_ENABLE_MEMDUMP@TARGET+=eclair
|
||||
LIBS=@LIBS@
|
||||
IHKDIR ?= $(VPATH)/../../../ihk/linux/include/
|
||||
@@ -52,6 +54,12 @@ ldump2mcdump.so: ldump2mcdump.c
|
||||
libsched_yield: libsched_yield.c
|
||||
$(CC) -shared -fPIC -Wl,-soname,sched_yield.so.1 -o libsched_yield.so.1.0.0 $^ -lc -ldl
|
||||
|
||||
syscall_intercept.so: syscall_intercept.c libsyscall_intercept_arch.a
|
||||
$(CC) $(CPPFLAGS_SYSCALL_INTERCEPT) -g -O2 $(LDFLAGS_SYSCALL_INTERCEPT) -lsyscall_intercept -fpic -shared -L. -lsyscall_intercept_arch $^ -o $@
|
||||
|
||||
libsyscall_intercept_arch.a::
|
||||
+(cd arch/${ARCH}; $(MAKE))
|
||||
|
||||
libmcexec.a::
|
||||
+(cd arch/${ARCH}; $(MAKE))
|
||||
|
||||
@@ -100,6 +108,7 @@ ifeq ($(ENABLE_QLMPI),yes)
|
||||
install -m 755 ql_mpiexec_finalize $(BINDIR)
|
||||
install -m 755 ql_talker $(SBINDIR)
|
||||
endif
|
||||
install -m 755 syscall_intercept.so $(MCKERNEL_LIBDIR)
|
||||
@uncomment_if_ENABLE_MEMDUMP@install -m 755 eclair $(BINDIR)
|
||||
@uncomment_if_ENABLE_MEMDUMP@install -m 755 vmcore2mckdump $(BINDIR)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user