macroBenchmarks and HDD failure

John M McIntosh johnmci at smalltalkconsulting.com
Tue Nov 19 22:23:03 UTC 2002


On Tuesday, November 19, 2002, at 02:01  PM, Stephen Pair wrote:

> On Friday night I executed "Smalltalk macroBenchmarks" on a 3.2 stock  
> image
> and left it to run.  Saturday morning I see the dredded Win2k blue  
> screen of
> death.  I reboot to find that my HDD is choking and sputtering to a  
> slow
> death.

Mmm I think the problem is here

SystemDictionary>>standardTime: aBlock
	"Times the execution of aBlock in milliseconds, under the following  
standard conditions:  exactly 10Mb of free space is available and  
compacted, and the recent VM statistics are reset immediately before  
execution."
	| spaceLeft tieDown |
	spaceLeft _ Smalltalk garbageCollect.
	spaceLeft < 1e7 ifTrue: [self error: 'not enough space for standard  
conditions'].
	tieDown _ ByteArray new: spaceLeft - 1e7.  "Leave exactly 10MB free"
	tieDown _ tieDown.
	Utilities vmStatisticsReportString.  "To reset statistics"
	Smalltalk garbageCollectMost.  "To clear that garbage"
	^ Time millisecondsToRun: aBlock


On VM's that support growing/shrinking, aka windows this wee bit of  
ancient code see ByteArray new: spaceLeft - 1e7
causes I believe the windows VM to allocate about 1GB of memory. Gee  
don't have 1GB of real ram about plus
stuff for the operating system, & other things, then we'll test how  
good your VM routines are...

Bet we'll also init to zero and perhaps acquire a GB of disk space, if  
not more for swapping.

Well I think it's a GB, let's see



   /* Here, we only reserve the maximum memory to be used
      It will later be committed during actual access */
   maxReserved = 1*1024*1024*1024;
   /* Ugh. Note. Some people really *are* crazy...
      ... as if 512MB wouldn't be enough, no sir...
      ... so we give you all we have (1GB) ...
      ... except a bit for the C allocator ...
   */
   maxReserved -= 128*1024*1024;
   do {
     pageBase = VirtualAlloc(NULL,maxReserved,MEM_RESERVE,  
PAGE_NOACCESS);

Well almost a GB,  assuming windows will allow that on your box with  
256MB of reall memory, which I'm sure will *spin* the hard drive
til it dies or something... Or in your case visiting the BSOD. Maybe  
you ran out of disk space too?


Really we should change this and drop the fake memory allocation  
because it's no longer a viable thing to do.

======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Squeak-dev mailing list