Revert "shmobj: Support large page"
This reverts commit 9a60997ea0.
Change-Id: Id60959b4e03451987239faa0bbc2e780b72fafaa
This commit is contained in:
committed by
Masamichi Takagi
parent
40f8091fab
commit
d7cf39883f
@@ -33,7 +33,6 @@
|
||||
#include <timer.h>
|
||||
#include <mman.h>
|
||||
#include <xpmem.h>
|
||||
#include <shm.h>
|
||||
#include <rusage_private.h>
|
||||
#include <ihk/monitor.h>
|
||||
#include <ihk/debug.h>
|
||||
@@ -915,19 +914,20 @@ int split_process_memory_range(struct process_vm *vm, struct vm_range *range,
|
||||
{
|
||||
int error;
|
||||
struct vm_range *newrange = NULL;
|
||||
unsigned long page_mask;
|
||||
|
||||
dkprintf("split_process_memory_range(%p,%lx-%lx,%lx,%p)\n",
|
||||
vm, range->start, range->end, addr, splitp);
|
||||
|
||||
if (range->pgshift != 0) {
|
||||
if (addr & ((1UL << range->pgshift) - 1)) {
|
||||
page_mask = (1 << range->pgshift) - 1;
|
||||
if (addr & page_mask) {
|
||||
/* split addr is not aligned */
|
||||
range->pgshift = 0;
|
||||
}
|
||||
}
|
||||
|
||||
error = ihk_mc_pt_split(vm->address_space->page_table, vm,
|
||||
range, (void *)addr);
|
||||
error = ihk_mc_pt_split(vm->address_space->page_table, vm, (void *)addr);
|
||||
if (error) {
|
||||
ekprintf("split_process_memory_range:"
|
||||
"ihk_mc_pt_split failed. %d\n", error);
|
||||
@@ -935,37 +935,6 @@ int split_process_memory_range(struct process_vm *vm, struct vm_range *range,
|
||||
}
|
||||
// memory_stat_rss_add() is called in child-node, i.e. ihk_mc_pt_split() to deal with L3->L2 case
|
||||
|
||||
if (range->memobj && range->memobj->flags & MF_SHM) {
|
||||
/* Target range is shared memory */
|
||||
uintptr_t _phys = 0;
|
||||
struct page *page = NULL;
|
||||
unsigned long page_mask;
|
||||
|
||||
/* Lookup the page split target */
|
||||
error = memobj_lookup_page(range->memobj,
|
||||
range->objoff + addr - range->start,
|
||||
0, &_phys, NULL);
|
||||
if (error && error != -ENOENT) {
|
||||
ekprintf("%s: memobj_lookup_page failed. %d\n",
|
||||
__func__, error);
|
||||
goto out;
|
||||
}
|
||||
page = phys_to_page(_phys);
|
||||
|
||||
if (page) {
|
||||
page_mask = ~((1UL << page->pgshift) - 1);
|
||||
/* Update existing page */
|
||||
error = memobj_update_page(range->memobj,
|
||||
vm->address_space->page_table, page,
|
||||
(void *)(addr & page_mask));
|
||||
if (error) {
|
||||
ekprintf("%s: memobj_update_page failed. %d\n",
|
||||
__func__, error);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
newrange = kmalloc(sizeof(struct vm_range), IHK_MC_AP_NOWAIT);
|
||||
if (!newrange) {
|
||||
ekprintf("split_process_memory_range(%p,%lx-%lx,%lx,%p):"
|
||||
@@ -1896,9 +1865,7 @@ int invalidate_process_memory_range(struct process_vm *vm,
|
||||
if (ptep && pte_is_contiguous(ptep)) {
|
||||
if (!page_is_contiguous_head(ptep, pgsize)) {
|
||||
// start pte is not contiguous head
|
||||
error = split_contiguous_pages(ptep, pgsize,
|
||||
range->memobj ?
|
||||
range->memobj->flags : 0);
|
||||
error = split_contiguous_pages(ptep, pgsize);
|
||||
if (error) {
|
||||
ihk_spinlock_t *page_table_lock;
|
||||
|
||||
@@ -1916,9 +1883,7 @@ int invalidate_process_memory_range(struct process_vm *vm,
|
||||
if (ptep && pte_is_contiguous(ptep)) {
|
||||
if (!page_is_contiguous_tail(ptep, pgsize)) {
|
||||
// end pte is not contiguous tail
|
||||
error = split_contiguous_pages(ptep, pgsize,
|
||||
range->memobj ?
|
||||
range->memobj->flags : 0);
|
||||
error = split_contiguous_pages(ptep, pgsize);
|
||||
if (error) {
|
||||
ihk_spinlock_t *page_table_lock;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user