Hello Srikant, I tried to print the net_msg_ptr value the same way as you mentioned in the mail after allocation the virtual channel, But when I observed the net_msg_ptr value, that is still repeating. I assumed this phenomenon is happening because the gem5 process is using the same pointer address of the message but I observed the content of the message and in that case, the content also used to be the same. So there is a huge probability that the same message is floating multiple times. But that is happening after virtual channel allocation, it is not understandable.
Thank you Navneet Kumar ________________________________ From: Bharadwaj, Srikant <srikant.bharad...@amd.com> Sent: 10 May 2021 11:23 To: NAVNEET KUMAR <k.navn...@iitg.ac.in>; gem5 users mailing list <gem5-users@gem5.org> Cc: Krishna, Tushar <tus...@ece.gatech.edu> Subject: RE: [gem5-users] Re: Duplicate net_msg_ptr values [AMD Public Use] Hi Navneet, In your code, you are checking for the network message pointer before a buffer is allocated for the message. In case a buffer is not available in a given cycle, the network interface will try it again in the next cycle. That’s probably the reason you are seeing the same message pointer address being printed. You can try putting your code after allocation of buffer (After the line checking for vc==-1). Also note that you are checking the pointer address of the message. The gem5 process can theoretically reuse the address because messages are freed up on receive at the destination cache controller. Srikant From: NAVNEET KUMAR <k.navn...@iitg.ac.in> Sent: Monday, May 10, 2021 2:35 AM To: Bharadwaj, Srikant <srikant.bharad...@amd.com>; gem5 users mailing list <gem5-users@gem5.org> Cc: Krishna, Tushar <tus...@ece.gatech.edu> Subject: Re: [gem5-users] Re: Duplicate net_msg_ptr values [AMD Public Use] [CAUTION: External Email] Please find the attached screenshot which is showing the concern code snippet of networkinterface.cc file. I programmed the value of net_msg_ptr to get on the console. But I was expecting that value of net_msg_ptr should be unique for different packets but for many times it has been repeated. The reason behind this phenomenon is still not clear to me. I am seeking some ideas on behalf of this phenomenon that why is this happening? I am using the MESI_CMP_directory protocol to handle cache coherence. Thank you Navneet Kumar ________________________________ From: Bharadwaj, Srikant <srikant.bharad...@amd.com<mailto:srikant.bharad...@amd.com>> Sent: 09 May 2021 19:51 To: NAVNEET KUMAR <k.navn...@iitg.ac.in<mailto:k.navn...@iitg.ac.in>>; gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>> Cc: Krishna, Tushar <tus...@ece.gatech.edu<mailto:tus...@ece.gatech.edu>> Subject: Re: [gem5-users] Re: Duplicate net_msg_ptr values [AMD Public Use] Hi Navneet, Can you post a snippet of the code? It will help us understand the problem. Thanks, Srikant ________________________________ From: NAVNEET KUMAR <k.navn...@iitg.ac.in<mailto:k.navn...@iitg.ac.in>> Sent: Sunday, May 9, 2021 5:24:09 AM To: Bharadwaj, Srikant <srikant.bharad...@amd.com<mailto:srikant.bharad...@amd.com>>; gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>> Cc: Krishna, Tushar <tus...@ece.gatech.edu<mailto:tus...@ece.gatech.edu>> Subject: Re: [gem5-users] Re: Duplicate net_msg_ptr values [CAUTION: External Email] Hello Srikant, Actually, I am taking the values of net_msg_ptr in flitiSize( ) function right at the beginning therefore for one packet that function would be called only once. Moreover, if an L1 miss happens then only the packet comes to the network and split into flits. So the possibility of getting packet at network interface due to L1 hit vanishes, doesn't it? And I am avoiding the scenario that can lead to repetition of net_msg_ptr due to multiple flits of the same packet. I still don't understand that why do the values of net_msg_ptr repeat? ...... Thank you ________________________________ From: Bharadwaj, Srikant <srikant.bharad...@amd.com<mailto:srikant.bharad...@amd.com>> Sent: 01 May 2021 12:54 To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>> Cc: NAVNEET KUMAR <k.navn...@iitg.ac.in<mailto:k.navn...@iitg.ac.in>>; Krishna, Tushar <tus...@ece.gatech.edu<mailto:tus...@ece.gatech.edu>> Subject: RE: [gem5-users] Re: Duplicate net_msg_ptr values Hi Navneet, In addition to the possibility of a broadcast, you should note that a message may also be reused by cache controllers in certain protocols. It would mean that the same message will be seen by a L1 network interface and then by L2 network interface later if it misses on both. Also, multiple flits from the same packet will have same message pointer so make sure you are not checking it for each flit of the same packet. Thanks, Srikant From: Krishna, Tushar via gem5-users <gem5-users@gem5.org<mailto:gem5-users@gem5.org>> Sent: Wednesday, April 28, 2021 3:14 PM To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>> Cc: NAVNEET KUMAR <k.navn...@iitg.ac.in<mailto:k.navn...@iitg.ac.in>>; Krishna, Tushar <tus...@ece.gatech.edu<mailto:tus...@ece.gatech.edu>> Subject: [gem5-users] Re: Duplicate net_msg_ptr values [CAUTION: External Email] There might be a broadcast happening which NetworkInterface.cc breaks into several unicasts. Depends on the protocol you are running. Best, Tushar On Apr 28, 2021, 2:23 PM -0400, NAVNEET KUMAR via gem5-users <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>, wrote: Hello, gem5 community, In file gem5/src/mem/ruby/network/garnet2.0/networkinterface.cc, in function flitisizeMessage() I printed the net_msg_ptr which is a pointer to the message class. But many times the value of net_msg_ptr repeated. I did not expect that, I was assuming that for every network packet, the net_msg_ptr value is unique. Can you please give me some brief idea, why is that happening? .... Thank you, NAVNEET
_______________________________________________ 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