Hi all, we have been hitting a few cases (atomic systems vs LL / SC, snoop filter related things) where I end up needing to change a check for isInvalidate to isInvalidate || cmd = Write.
For example, a cache does not invalidate a line if it is hit by a write snoop (cmd = write) from below, because the check in Cache::handleSnoop only checks for isInvalidate. I am not sure about either the historic reason, nor the high-level intuitive reasoning here, but: (1) would it make sense to have write request to be IsInvalidate too? (2) would it make sense to drop either of IsInvalidate / NeedsExclusive? It seems that these two express similar things and the different behaviour is only ever exposed in cases with different commands / different layers / call streams (snoops vs req / responses). Any comments? -- Thanks, Stephan Stephan Diestelhorst Staff Engineer ARM Research - Systems +44 (0)1223 405662 -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590 ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782 _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
