📍 Job mac-m4-mini-perf/jetstream-main.crossbench complete.
See results at: https://pinpoint-dot-chromeperf.appspot.com/job/11a98407490000
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
📍 Job mac-m4-mini-perf/jetstream-main.crossbench complete.
See results at: https://pinpoint-dot-chromeperf.appspot.com/job/14834fcf490000
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
SBXCHECK(IsFreelistEntry());Was your idea to instead create a dedicated bottleneck for all `entrypoint_` loads that returns nullpointer if it's a free list entry?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
SBXCHECK(IsFreelistEntry());Was your idea to instead create a dedicated bottleneck for all `entrypoint_` loads that returns nullpointer if it's a free list entry?
Yeah so my concern here is that this approach seems fundamentally racy: `IsFreelistEntry()` will load the entrypoint and check for a specific tag. Then we load the entrypoint again and just drop the upper 32 bits. If the entry is overwritten in the meantime, we still have the same problem. I think we need to do what the other tables do: atomically load the entrypoint value, check that it has the expected tag, then return the lower 32 bits (or do proper untagging). And then I think we don't actually need to worry about freelist entries getting overwritten? WDYT?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |