some code cleanups
This commit is contained in:
parent
bfe9ae5978
commit
6f1c07c0dc
2 changed files with 7 additions and 26 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue