agusnt / Berti-Artifact

An artifact for Berti: an Accurate and Timely Local-Delta Data Prefetcher
GNU General Public License v3.0
25 stars 14 forks source link

why pf_page_addr is not equal to page_addr? #8

Closed qiao-huan closed 1 month ago

qiao-huan commented 1 month ago

I am porting Berti to the latest version of ChampSim. After I modified the interfaces of all functions in Berti to be consistent with the latest version of ChampSim, it compiled successfully. However, I encountered the following problem: uint32_t CACHE::pref_prefetcherDberti_concurso_prefetcher_cache_operate(uint64_t, uint64_t, uint8_t, bool, uint8_t, uint32_t): Assertionpf_page_addr == page_addr' failed.`

But why?I did not change any functional code in Berti.

qiao-huan commented 1 month ago

when core dump, the gdb backtrace is as follow:

(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1  0x00007f9206ca9e9f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  0x00007f9206c5afb2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f9206c45472 in __GI_abort () at ./stdlib/abort.c:79
#4  0x00007f9206c45395 in __assert_fail_base (fmt=0x7f9206db9a90 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x5ca6cf3b94bb "pf_page_addr == page_addr", 
    file=0x5ca6cf3b8ed8 "/home/qiaohuan/projects/ChampSim-Berti/prefetcher/berti_concurso/berti_concurso.cc", line=739, function=<optimized out>) at ./assert/assert.c:92
#5  0x00007f9206c53eb2 in __GI___assert_fail (assertion=0x5ca6cf3b94bb "pf_page_addr == page_addr", 
    file=0x5ca6cf3b8ed8 "/home/qiaohuan/projects/ChampSim-Berti/prefetcher/berti_concurso/berti_concurso.cc", line=739, 
    function=0x5ca6cf3b9308 "uint32_t CACHE::pref_prefetcherDberti_concurso_prefetcher_cache_operate(uint64_t, uint64_t, uint8_t, bool, uint8_t, uint32_t)") at ./assert/assert.c:101
#6  0x00005ca6cf373f2d in CACHE::pref_prefetcherDberti_concurso_prefetcher_cache_operate(unsigned long, unsigned long, unsigned char, bool, unsigned char, unsigned int) ()
#7  0x00005ca6cf2c6939 in CACHE::try_hit(CACHE::tag_lookup_type const&) ()
#8  0x00005ca6cf2c9494 in auto CACHE::operate()::{lambda(auto:1 const&)#8}::operator()<CACHE::tag_lookup_type>(CACHE::tag_lookup_type const&) const ()
#9  0x00005ca6cf2ce4ce in CACHE::operate() ()
#10 0x00005ca6cf2d4011 in champsim::do_phase(champsim::phase_info, champsim::environment&, std::vector<champsim::tracereader, std::allocator<champsim::tracereader> >&) ()
#11 0x00005ca6cf2be737 in champsim::main(champsim::environment&, std::vector<champsim::phase_info, std::allocator<champsim::phase_info> >&, std::vector<champsim::tracereader, std::allocator<champsim::tracereader> >&) ()
#12 0x00005ca6cf2c1072 in main ()
agusnt commented 1 month ago

Hello, I have a pull request of Berti for the latest version of ChampSim (https://github.com/ChampSim/ChampSim/pull/486).

Berti concurso is not the MICRO22 Berti (vberti).

qiao-huan commented 1 month ago

Hello, I have a pull request of Berti for the latest version of ChampSim (ChampSim/ChampSim#486).

Berti concurso is not the MICRO22 Berti (vberti).

Thank You ! I am immensely grateful to you.