Add local reclaim tests
authorMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Tue, 23 Jun 2009 15:25:28 +0000 (11:25 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Tue, 23 Jun 2009 15:25:28 +0000 (11:25 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Makefile
Makefile64
runtests.sh
test_qsbr_gc.c
test_urcu_gc.c

index 2f181293598b4e1772309f8ba12c853a031b0ef8..e8d11bba7e9554940bad0441169f3cab6341a7e7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -34,7 +34,8 @@ all: checkarch test_urcu test_urcu_dynamic_link test_urcu_timing \
        test_perthreadlock test_urcu_yield test_urcu_mb \
        urcu-asm.S test_qsbr_timing test_qsbr urcu-asm.o urcutorture \
        urcutorture-yield liburcu.so test_mutex test_looplen test_urcu_gc \
-       test_urcu_gc_mb test_qsbr_gc
+       test_urcu_gc_mb test_qsbr_gc test_qsbr_lgc test_urcu_lgc \
+       test_urcu_lgc_mb
 
 checkarch:
 ifeq (${ARCHTYPE},)
@@ -70,12 +71,21 @@ test_urcu_gc: urcu.o test_urcu_gc.c urcu.h
 test_urcu_gc_mb: urcu-mb.o test_urcu_gc.c urcu.h
        $(CC) -DDEBUG_FULL_MB ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
 
+test_urcu_lgc: urcu.o test_urcu_gc.c urcu.h
+       $(CC) -DTEST_LOCAL_GC ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
+
+test_urcu_lgc_mb: urcu-mb.o test_urcu_gc.c urcu.h
+       $(CC) -DTEST_LOCAL_GC -DDEBUG_FULL_MB ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
+
 test_qsbr: urcu-qsbr.o test_qsbr.c urcu-qsbr.h
        $(CC) ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
 
 test_qsbr_gc: urcu-qsbr.o test_qsbr_gc.c urcu-qsbr.h
        $(CC) ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
 
+test_qsbr_lgc: urcu-qsbr.o test_qsbr_gc.c urcu-qsbr.h
+       $(CC) -DTEST_LOCAL_GC ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
+
 test_rwlock: urcu.o test_rwlock.c urcu.h
        $(CC) ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
 
index bebc2b474b2400fb76fa1562d73d555452b2ddc8..9c655685423496832f14c513a01fb51e0ced0cba 100644 (file)
@@ -29,7 +29,8 @@ all: checkarch test_urcu test_urcu_dynamic_link test_urcu_timing \
        test_perthreadlock test_urcu_yield test_urcu_mb \
        urcu-asm.S test_qsbr_timing test_qsbr urcu-asm.o urcutorture \
        urcutorture-yield liburcu.so test_mutex test_looplen test_urcu_gc \
-       test_urcu_gc_mb test_qsbr_gc
+       test_urcu_gc_mb test_qsbr_gc test_qsbr_lgc test_urcu_lgc \
+       test_urcu_lgc_mb
 
 checkarch:
 ifeq (${ARCHTYPE},)
@@ -65,12 +66,21 @@ test_urcu_gc: urcu.o test_urcu_gc.c urcu.h
 test_urcu_gc_mb: urcu-mb.o test_urcu_gc.c urcu.h
        $(CC) -DDEBUG_FULL_MB ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
 
+test_urcu_lgc: urcu.o test_urcu_gc.c urcu.h
+       $(CC) -DTEST_LOCAL_GC ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
+
+test_urcu_lgc_mb: urcu-mb.o test_urcu_gc.c urcu.h
+       $(CC) -DTEST_LOCAL_GC -DDEBUG_FULL_MB ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
+
 test_qsbr: urcu-qsbr.o test_qsbr.c urcu-qsbr.h
        $(CC) ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
 
 test_qsbr_gc: urcu-qsbr.o test_qsbr_gc.c urcu-qsbr.h
        $(CC) ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
 
+test_qsbr_lgc: urcu-qsbr.o test_qsbr_gc.c urcu-qsbr.h
+       $(CC) -DTEST_LOCAL_GC ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
+
 test_rwlock: urcu.o test_rwlock.c urcu.h
        $(CC) ${CFLAGS} $(LDFLAGS) -o $@ $(SRC_DEP)
 
index 3b06f8479fd6a38c57da75f20253660e27a168e5..981aef15fe25545b09dc3d74849703e8c60e539a 100755 (executable)
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 for a in test_urcu_gc test_urcu_gc_mb test_urcu test_urcu_mb \
+                       test_urcu_lgc test_qsbr_lgc test_urcu_lgc_mb \
                        test_qsbr test_qsbr_gc test_rwlock test_perthreadlock \
                        test_mutex; do
        echo "./${a} $*" | tee -a runall.detail.log
index f38477ebf4281c4582d2433c21af3eff4f89f4f0..3a66a845f3636071d9cad298ef1c1f351982bbb6 100644 (file)
@@ -250,7 +250,11 @@ static void rcu_gc_reclaim(unsigned long wtidx, void *old)
 void *thr_writer(void *data)
 {
        unsigned long wtidx = (unsigned long)data;
+#ifdef TEST_LOCAL_GC
+       struct test_array *old = NULL;
+#else
        struct test_array *new, *old;
+#endif
 
        printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n",
                        "writer", pthread_self(), (unsigned long)gettid());
@@ -263,9 +267,11 @@ void *thr_writer(void *data)
        smp_mb();
 
        for (;;) {
+#ifndef TEST_LOCAL_GC
                new = malloc(sizeof(*new));
                new->a = 8;
                old = _rcu_xchg_pointer(&test_rcu_pointer, new);
+#endif
                rcu_gc_reclaim(wtidx, old);
                nr_writes++;
                if (unlikely(!test_duration_write()))
index 6d7d8ca53a10088283d5c0843ab3c0b22bff203c..12ea1811173f3520d36b420de05c09da17e280a2 100644 (file)
@@ -251,7 +251,11 @@ static void rcu_gc_reclaim(unsigned long wtidx, void *old)
 void *thr_writer(void *data)
 {
        unsigned long wtidx = (unsigned long)data;
+#ifdef TEST_LOCAL_GC
+       struct test_array *old = NULL;
+#else
        struct test_array *new, *old;
+#endif
 
        printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n",
                        "writer", pthread_self(), (unsigned long)gettid());
@@ -264,9 +268,11 @@ void *thr_writer(void *data)
        smp_mb();
 
        for (;;) {
+#ifndef TEST_LOCAL_GC
                new = malloc(sizeof(*new));
                new->a = 8;
                old = rcu_xchg_pointer(&test_rcu_pointer, new);
+#endif
                rcu_gc_reclaim(wtidx, old);
                nr_writes++;
                if (unlikely(!test_duration_write()))
This page took 0.027727 seconds and 4 git commands to generate.