Hi,
I have a question regarding the
SimicsHypervisor::existSummarySignatureConflict() function in
SimicsHypervisor.C.
if(isRead) {
// check Summary Write signature
bool perfect_result =
xact_isol_mgr->isInSummaryWriteSetPerfectFilter(0, addr);
bool imperfect_result = perfect_result;
if(! PERFECT_SUMMARY_FILTER) {
bool imperfect_result =
xact_isol_mgr->isInSummaryWriteSetFilter(0, addr);
// no false negatives
assert(!(perfect_result && !imperfect_result));
}
if (imperfect_result) {
return CONFLICT_IS_READER | CONFLICT_WITH_SUMMARY_WRITE;
} else {
return 0;
}
}
Following the above code, imperfect_result variable would always be equal
to perfect_result variable; which means we only use perfect signature in
conflict detection, regardless of whether PERFECT_SUMMARY_FILTER is set or
not.
Is this intentional?
Am I missing something?
Thanks in advance.
-Richard
|