Hi everyone,

       I’ve been trying to build a design in which an extra module must snoop 
on coherence requests on several memory fields allocated continuously. Thus, I 
need to set aside a continuous address space of physical memory on the machine, 
and access and modify it in the guest program using its corresponding virtual 
address. I searched the mailing list and adopted the method mentioned in it:

https://www.mail-archive.com/gem5-users@gem5.org/msg19653.html

Namely, one could use  process.map() method provided in Process.py to 
explicitly insert a mapping in the page table, then use mmap() in guest 
applications to specify the virtual address range to access.

However, it seems that the mmap() function would automatically unmap the 
aforementioned explicit mapping and do a remap when using the MAP_FIXED flag. 
However if i disable the MAP_FIXED flag, the following error occurs:




**** REAL SIMULATION ****

build/X86/şim/mem state.cc:443: info: Increasing stack size by one page. 
build/X86/sim/mem state.cc:99: panic: Someone allocated physical memory at VA 
Ox8f000000 without creating a VMA!

Memory Usage: 8626840 KBytes

Program aborted at tick 24274800

--- BEGIN LIBC BACKTRACE ---

...
  Therefore, could anyone show me how to safely set apart a reserved chunk of 
physical memory that is accessible in the SE user application? Thanks in 
advance!!! 

--
姓名:章志元
手机:17717877306
邮箱:zhiyuanzhan...@fudan.edu.cn




_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to