| 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
 |