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/[email protected]/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
邮箱:[email protected]
_______________________________________________
gem5-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s