From 8174a918ea3b7cb216bf7ea98cfdc10661b5c37d Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Wed, 6 May 2020 16:56:32 +0200 Subject: make the whole project more python idiomatic * rename src directory to allocbench * make global variable names UPPERCASE * format a lot of code using yapf * use lowercase ld_preload and ld_library_path as Allocator members * name expected Errors 'err' and don't raise a new Exception * disable some pylint messages --- src/benchmarks/blowup/Makefile | 25 --------- src/benchmarks/blowup/blowup.c | 115 ----------------------------------------- 2 files changed, 140 deletions(-) delete mode 100644 src/benchmarks/blowup/Makefile delete mode 100644 src/benchmarks/blowup/blowup.c (limited to 'src/benchmarks/blowup') diff --git a/src/benchmarks/blowup/Makefile b/src/benchmarks/blowup/Makefile deleted file mode 100644 index afb5f2a..0000000 --- a/src/benchmarks/blowup/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -OBJDIR ?= obj - -CC ?= gcc - -WARNFLAGS ?= -Wall -Wextra -COMMONFLAGS ?= -fno-builtin -fPIC -DPIC -pthread -OPTFLAGS ?= -O3 -DNDEBUG - -CFLAGS ?= $(OPTFLAGS) $(WARNFLAGS) $(COMMONFLAGS) - -LDFLAGS ?= -pthread -static-libgcc - -.PHONY = all clean - -all: $(OBJDIR)/blowup - -$(OBJDIR)/blowup: blowup.c | $(OBJDIR) - @echo compiling $@... - $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $< - -$(OBJDIR): - mkdir -p $@ - -clean: - rm -rf $(OBJDIR) diff --git a/src/benchmarks/blowup/blowup.c b/src/benchmarks/blowup/blowup.c deleted file mode 100644 index 37ba6d6..0000000 --- a/src/benchmarks/blowup/blowup.c +++ /dev/null @@ -1,115 +0,0 @@ -#include -#include -#include -#include -#include - -#define NUM_THREADS 10 -#define LIFE_DATA (1024l * 1024 * 100) // 100 MiB -#define ALLOCATIONS 100000l // 100000 -#define MAX_SIZE (1024l * 16) // 16KiB - -typedef struct chunk { - struct chunk* next; - char data[]; -} chunk_t; - -static inline size_t rand_size() -{ - return (rand() % MAX_SIZE) + sizeof(chunk_t); -} - -static void do_work() -{ - chunk_t* head = NULL; - chunk_t* tail = NULL; - size_t to_allocate = LIFE_DATA; - - // allocate life data - while(to_allocate > 0) { - size_t size = rand_size(); - if (size > to_allocate) - size = to_allocate; - - to_allocate -= size; - chunk_t* cur = (chunk_t*) malloc(size); - // touch memory - memset(&cur->data, 0, size - sizeof(struct chunk*)); - - if(!head) { - head = tail = cur; - } - else { - tail->next = cur; - tail = cur; - } - } - - // Do some random allocations to change the allocators state - for(int i = 0; i < ALLOCATIONS; i++) - { - free(malloc(rand_size())); - } - - // free life data - do { - chunk_t* next = head->next; - free(head); - head = next; - } while(head != tail); - - // Do some random allocations to change the allocators state - for(int i = 0; i < ALLOCATIONS; i++) - { - free(malloc(rand_size())); - } - - return; -} - -static void* thread_func(void* arg) -{ - unsigned int* thread_id = (unsigned int*)arg; - pthread_t next_thread; - - printf("thread %d doing work\n", *thread_id); - do_work(); - - if (*thread_id == NUM_THREADS) - return NULL; - - printf("thread %d spawning new thread work\n", *thread_id); - *thread_id = (*thread_id) + 1; - if (0 != pthread_create(&next_thread, NULL, thread_func, arg)) { - perror("pthread_create"); - return NULL; - } - - printf("thread %d joining thread %d work\n", *thread_id-1, *thread_id); - if (0 != pthread_join(next_thread, NULL)) { - perror("pthread_join"); - return NULL; - } - - return NULL; -} - -int main() -{ - unsigned int thread_count = 0; - pthread_t first; - - do_work(); - - if (0 != pthread_create(&first, NULL, thread_func, &thread_count)) { - perror("pthread_create"); - return 1; - } - - if (0 != pthread_join(first, NULL)) { - perror("pthread_join"); - return 1; - } - - return 0; -} -- cgit v1.2.3