hi,
when prefetch inst gets executed the following member funtcion from memop.C file called:
void prefetch_inst_t::Execute( void ) {
STAT_INC( m_pseq->m_stat_prefetches_exec[m_proc] );
// trap_type_t t = addressGenerate( OPAL_LOAD );
//this can only be true for Non i/o and non mmu prefetches
// if (t != Trap_NoTrap) {
/* couldn't correctly generate address -- we're done! */
SetStage( COMPLETE_STAGE );
return;
// }
/* can't complete I/O accesses, and moreover they are uncacheable */
//We dont need to set trap to Trap_Use_Functional bec prefetch inst dont affect program regs
/* if ( m_physical_addr != (pa_t) -1 &&
isIOAccess( m_physical_addr ) ) {
SetStage( COMPLETE_STAGE );
STAT_INC( m_pseq->m_stat_count_io_access[m_proc] );
return;
}
/////////////// no lsq or WB concept for prefetches
if ( isCacheable() ) {
ASSERT( m_physical_addr != (pa_t) -1 );
//set address to be valid
m_addr_valid = true;
if (!accessCache())//accessCache() always ret true
return;
} // is cacheable
Complete();
*/
}
comment out as shown above.
what i am doing is just setting stage to "COMPLETE_STAGE" and returning.
Regards,
Muhammad abid
From: Jerry Lin <cosjerry@xxxxxxxxx>
To: Gems Users <gems-users@xxxxxxxxxxx>
Sent: Monday, June 7, 2010 15:15:08
Subject: [Gems-users] prefetch question
Hello all,
When I running workloads with Ruby and Opal using default configuration, the prefetch count in the dump file won't be zero.
Is there any configuration to turn on/off the prefetcher?
Or is there any modification can be done to turn on/off the prefetcher?
Thanks for helping.