sim: Fixes for mremap

Remapping memory was trying to map old pages to the same new page and
calling MemState mapRegion unnecessarily. Properly increment the new
page address and remove the redundant mapRegion as remapRegion covers
its functionality.

JIRA: https://gem5.atlassian.net/browse/GEM5-475
Change-Id: Ie360755cfe488b09cbd87cd0ce525b11ac446b51
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28948
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Matthew Poremba
2020-05-12 09:56:07 -05:00
parent 9957d71bf4
commit fae00cb175
2 changed files with 1 additions and 1 deletions

View File

@@ -369,6 +369,7 @@ MemState::remapRegion(Addr start_addr, Addr new_start_addr, Addr length)
new_start_addr);
start_addr += _pageBytes;
new_start_addr += _pageBytes;
/**
* The regions need to always be page-aligned otherwise the while

View File

@@ -1177,7 +1177,6 @@ mremapFunc(SyscallDesc *desc, ThreadContext *tc,
warn("returning %08p as start\n", new_start);
p->memState->remapRegion(start, new_start, old_length);
p->memState->mapRegion(new_start, new_length, "remapped");
return new_start;
}
}