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