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:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user