From 6f1c07c0dc170d59e07c6c62a2fe378fb2343261 Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Sat, 20 Aug 2011 01:03:18 -0700 Subject: [PATCH] some code cleanups --- arch/x86/mm/svm.c | 13 ++++--------- kernel/tests.c | 20 +++----------------- 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/arch/x86/mm/svm.c b/arch/x86/mm/svm.c index cf1868ad..f3245071 100644 --- a/arch/x86/mm/svm.c +++ b/arch/x86/mm/svm.c @@ -70,7 +70,7 @@ int svm_init(void) kprintf("Shared memory starts at the physical address 0x%x\n", shmbegin); - page_owner = (uint8_t*) map_region(0, phyaddr, OWNER_SIZE >> PAGE_SHIFT, MAP_SVM|MAP_KERNEL_SPACE|MAP_NO_CACHE/*MAP_MPE*/); + page_owner = (uint8_t*) map_region(0, phyaddr, OWNER_SIZE >> PAGE_SHIFT, MAP_KERNEL_SPACE|MAP_NO_CACHE); if (BUILTIN_EXPECT(!page_owner, 0)) { flags = irq_nested_disable(); RCCE_shfree((t_vcharp) phyaddr); @@ -107,8 +107,7 @@ int svm_access_request(size_t addr) return -EINVAL; pageid = (phyaddr-shmbegin) >> PAGE_SHIFT; - svm_flush(); - svm_invalidate(); + //svm_flush(); if (page_owner[pageid] == my_ue) return 0; @@ -126,11 +125,8 @@ int svm_access_request(size_t addr) /* check for incoming messages */ icc_mail_check(); - svm_invalidate(); - while (page_owner[pageid] != my_ue) - { + while (page_owner[pageid] != my_ue) { NOP4; - svm_invalidate(); } return change_page_permissions(addr, addr+PAGE_SIZE, VMA_READ|VMA_WRITE|VMA_CACHEABLE); @@ -231,9 +227,8 @@ int svm_emit_page(size_t phyaddr, int ue) svm_flush(); change_page_permissions(viraddr, viraddr+PAGE_SIZE, VMA_NOACCESS|VMA_READ|VMA_CACHEABLE); - svm_invalidate(); page_owner[pageid] = ue; - svm_flush(); + mb(); } return 0; diff --git a/kernel/tests.c b/kernel/tests.c index 61e1f38b..7da29bdd 100644 --- a/kernel/tests.c +++ b/kernel/tests.c @@ -124,15 +124,12 @@ volatile static int* C[N]; static int svm_test(void *arg) { uint64_t start, end; - uint32_t i, j, k;//, flags; + uint32_t i, j, k; int my_ue, num_ues; - // iRCCE is not thread save => disable interrupts - //flags = irq_nested_disable(); RCCE_barrier(&RCCE_COMM_WORLD); my_ue = RCCE_ue(); num_ues = RCCE_num_ues(); - //irq_nested_enable(flags); // allocate and initialize SVM region A[0] = (int*) svmmalloc(3*N*N*sizeof(int)); @@ -158,11 +155,9 @@ static int svm_test(void *arg) // Now, we need only read access on A and B //change_page_permissions((size_t) A[0], (size_t) (A[0]+2*N*N), VMA_CACHEABLE|VMA_READ); - // iRCCE is not thread save => disable interrupts - //flags = irq_nested_disable(); RCCE_barrier(&RCCE_COMM_WORLD); - //irq_nested_enable(flags); +#if 0 kputs("Start sequentiell calculation...\n"); start = rdtsc(); @@ -188,11 +183,8 @@ static int svm_test(void *arg) } - // iRCCE is not thread save => disable interrupts - //flags = irq_nested_disable(); RCCE_barrier(&RCCE_COMM_WORLD); - //irq_nested_enable(flags); - +#endif kputs("Start parallel calculation...\n"); start = rdtsc(); @@ -208,10 +200,7 @@ static int svm_test(void *arg) end = rdtsc(); - // iRCCE is not thread save => disable interrupts - //flags = irq_nested_disable(); RCCE_barrier(&RCCE_COMM_WORLD); - //irq_nested_enable(flags); kputs("Check results...\n"); @@ -228,10 +217,7 @@ static int svm_test(void *arg) } } - // iRCCE is not thread save => disable interrupts - //flags = irq_nested_disable(); RCCE_barrier(&RCCE_COMM_WORLD); - //irq_nested_enable(flags); kprintf("Calculation time (par): %llu\n", end-start);