diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2020-05-06 16:56:32 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2020-06-02 11:18:47 +0200 |
| commit | 8174a918ea3b7cb216bf7ea98cfdc10661b5c37d (patch) | |
| tree | 0747ec3ccb9f8d7eeccfac35977fc17855ca3bbb /src/benchmarks/blowup | |
| parent | 8f52e8fc02dd235582f5961941bcd564e9a681cd (diff) | |
| download | allocbench-8174a918ea3b7cb216bf7ea98cfdc10661b5c37d.tar.gz allocbench-8174a918ea3b7cb216bf7ea98cfdc10661b5c37d.zip | |
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
Diffstat (limited to 'src/benchmarks/blowup')
| -rw-r--r-- | src/benchmarks/blowup/Makefile | 25 | ||||
| -rw-r--r-- | src/benchmarks/blowup/blowup.c | 115 |
2 files changed, 0 insertions, 140 deletions
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 <malloc.h> -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#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; -} |
