OpenSolaris

Printable Version Enter a New Search
Bug ID 4189938
Synopsis memory scrubber adds ~12-14 ms to dispatch latency
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:other
Keywords
Responsible Engineer John Destefano
Reported Against 2.6 , 5.6 , s28_11 , sol2.7
Duplicate Of
Introduced In
Commit to Fix s28_25
Fixed In s28_25
Release Fixed solaris_8(s28_25)
Related Bugs 4118359 , 4134945 , 4259119
Submit Date 14-November-1998
Last Update Date 24-November-2005
Description
[ bmc, 11/13/98 ]

Using interval timers (either through the POSIX timer_gettime()/_settime()
interface or the BSD get/setitimer() interface) over a long period of time,
one may observe rare, isolated latency spikes on the order of ~2 to ~4 ms (with
hz at 100).  Ironically, setting hz to 1000 will _increase_ the spikes' 
amplitude to ~11-13 ms. The spikes will be regular, but quite rare (typically,
one every few hours; more frequent on larger memory systems).  The latency
is due to a flaw in the memory scrubber (see Comments for more details).
 
Work Around
[ bmc, 11/13/98 ]

The most straight-forward workaround is to turn off the memory scrubber by
setting disable_memscrub to 1.  On small memory machines without a history
of correctable ECC errors, this shouldn't be problematic.  

If the memory scrubber is deemed required, memscrub_scan_pages can be set to 
some number less than 512 (the default is 1024).  To incur the lowest latencies,
memscrub_scan_pages should be set below 8.
Comments
N/A