On Thu, Dec 19, 2002 at 11:52:52AM -0500, Camm Maguire wrote: > Greetings! > > Richard Zidlicky <[EMAIL PROTECTED]> writes: > > > On Mon, Dec 16, 2002 at 03:05:37PM -0500, Camm Maguire wrote: > > > > Hi, > > > > > > Which kernel version was that? Can you see if the failed flushes > > > > were cornercases like address near page-boundaries? What kind > > > > of ranges need to be flushed? > > > > > > > > > > 2.2.20. Don't know anything special about the flushed ranges except > > > that they are roughly the size of typical .o files (e.g. a few > > > k to a few hundred k), and that they are allocated from the > > > end of a 32k page memory block attached via sbrk. > > > > in that case FLUSH_SCOPE_PAGE is certainly better. It would be still > > Interesting -- why is this?
SCOPE_LINE uses the 'cpushl' instruction which only flushes 12 bytes at a time, for bigger ranges the overhead of looping that insn can get very big. The kernel has some logic to use page instead of line flushes for very big ranges but this has to be a little conservative so it currently kicks in only when size is 3 or more pages.. which could well be the case with the average gcl flush. Richard