[Webkit-unassigned] [Bug 99213] [ARMv7] Neither linkCall() nor linkPointer() should flush code
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Oct 26 17:50:36 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=99213
Gavin Barraclough <barraclough at apple.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |barraclough at apple.com
--- Comment #12 from Gavin Barraclough <barraclough at apple.com> 2012-10-26 17:51:46 PST ---
Hi Yong,
Nice catch – but I think there's a slightly better fix if you feel like taking it on.
Your patch fixes the problem that we'll flush ints/pointers more than once during the link phase, but there is a related issue that we sometimes flush the same cache line more than once when repatching code. I'd suggest changing the MacroAssembler::repatch* etc methods in all assemblers to return the range of code modified (start address & end/size as a pair), and have the RepatchBuffer cache all required flushes & only perform them once all modifications have been performed. When buffering up the flushes, we can round to cache line size, then ditch redundant flushes & coalesce flushes to adjacent cache lines.
(minor detail: JITWriteBarrier & JumpReplacementWatchpoint currently aren't using RepatchBuffer & should be – that will also need to be fixed).
I won't r+ for now, since I'd rather see the fix I've described, but if you don't feel like taking this on we could take your patch as is & revisit – would just be unfortunate since some of this change would be redundant & end up being reverted.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list