some code cleanups

This commit is contained in:
Stefan Lankes 2011-08-20 01:03:18 -07:00
parent bfe9ae5978
commit 6f1c07c0dc
2 changed files with 7 additions and 26 deletions

View file

@ -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;

View file

@ -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);