am 96a46011: am 8efc64ae: am f7e40a33: improve cache behavior of gralloc allocations on qsd8k
Merge commit '96a460114cfb663789c6990e56a17325bea1ecda' * commit '96a460114cfb663789c6990e56a17325bea1ecda': improve cache behavior of gralloc allocations on qsd8k
This commit is contained in:
commit
449b3b0120
16
gralloc.cpp
16
gralloc.cpp
@ -279,9 +279,16 @@ try_ashmem:
|
||||
err = -ENOMEM;
|
||||
} else {
|
||||
struct pmem_region sub = { offset, size };
|
||||
|
||||
int openFlags = O_RDWR | O_SYNC;
|
||||
uint32_t uread = usage & GRALLOC_USAGE_SW_READ_MASK;
|
||||
uint32_t uwrite = usage & GRALLOC_USAGE_SW_WRITE_MASK;
|
||||
if (uread == GRALLOC_USAGE_SW_READ_OFTEN ||
|
||||
uwrite == GRALLOC_USAGE_SW_WRITE_OFTEN) {
|
||||
openFlags &= ~O_SYNC;
|
||||
}
|
||||
|
||||
// now create the "sub-heap"
|
||||
fd = open("/dev/pmem", O_RDWR, 0);
|
||||
fd = open("/dev/pmem", openFlags, 0);
|
||||
err = fd < 0 ? fd : 0;
|
||||
|
||||
// and connect to it
|
||||
@ -297,8 +304,11 @@ try_ashmem:
|
||||
close(fd);
|
||||
sAllocator.deallocate(offset);
|
||||
fd = -1;
|
||||
} else {
|
||||
memset((char*)base + offset, 0, size);
|
||||
// clean and invalidate the new allocation
|
||||
cacheflush(intptr_t(base) + offset, size, 0);
|
||||
}
|
||||
memset((char*)base + offset, 0, size);
|
||||
//LOGD_IF(!err, "allocating pmem size=%d, offset=%d", size, offset);
|
||||
}
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user