[Freedos-user] EMM386 gun-smoking with HIMEM /max

2005-05-01 Thread Eric Auer

Hi, I did extensive testing with HIMEM /max=... to limit the
amount of available XMS memory. The biggest value for /max which
works for me is 84992, one kilobyte more and ZIP starts to
crash (emm386 illegal instruction message, cs:ip at 0:b, ds=f, es=0...).

Interesting enough, you can add a bit (less than 5 MB, did not test
the exact value) to the limit before Quarterdeck MFT stops to detect
the fact that EMS and XMS have a shared memory pool (MFT only looks
at XMS 2.0 values, it seems).

With this limit, everything works: GCUBE (PMODE/W), ZIP (CWSDPMI),
CTSTOAST (with DOS32A), Jazz Jackrabbit (RTM/DPMI16BI), AuGoS (same)...
There must be something interesting about it. The memory statistics
tell me that I have *exactly* 27 MBytes (27648kB) of EMS free with
this limit, and 27717kB of XMS free. Full usage statistics:

84992kB total, 27717kB free XMS, 344kB locked XMS for EMM386 (includes
the 96kB SYSTEM handle for UMBs, I assume, and 248kB other stuff),
15000kB for TDSK ramdisk, 3kB for XMSDSK ramdisk, 4096kB for CDR-
cache, 7680kB for LBA-cache, 155kB for FreeCOM XMS swap.

Tempting to assume that the actual critical limit is in EMS or VCPI,
not in XMS, as at this moment exactly 27 MB EMS are free...

Eric

PS: Even the MFT EMS benchmark starts working at the same limit,
even though the shared pool detection keeps working a bit longer,
until you have roughly 32 MB XMS and EMS free instead of only 27 MB.



---
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] EMM386 gun-smoking with HIMEM /max

2005-05-01 Thread Michael Devore
At 08:17 AM 5/1/2005 +0200, Eric Auer wrote:
Hi, I did extensive testing with HIMEM /max=... to limit the
amount of available XMS memory. The biggest value for /max which
works for me is 84992, one kilobyte more and ZIP starts to
crash (emm386 illegal instruction message, cs:ip at 0:b, ds=f, es=0...).

With this limit, everything works: GCUBE (PMODE/W), ZIP (CWSDPMI),
CTSTOAST (with DOS32A), Jazz Jackrabbit (RTM/DPMI16BI), AuGoS (same)...
There must be something interesting about it. The memory statistics
tell me that I have *exactly* 27 MBytes (27648kB) of EMS free with
this limit, and 27717kB of XMS free. Full usage statistics:
Could be the sideways nibble that EMM386 does if it doesn't have a full 
(1.5M * n) pool allocation block from a previous allocation.  It tries to 
eat 32K off an adjacent address free XMS handle and pass it over to the 
currently used handle to fill out the block.  Since that portion of the 
code was never stress tested -- I never had the proper XMS fragmenting -- 
the nibble code may have a bug or bugs in it.  Have to study on the source, 
see if anything improper leaps out in that area.

If present, hopefully that will address the apparent DOS32A limit on 256M 
VCPI and let us know if it is really there.  Perhaps it's getting confused 
due to a similar/same bug.  Otherwise we have a serious problem with it.


---
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] EMM386 gun-smoking with HIMEM /max

2005-05-01 Thread Michael Devore
At 02:07 AM 5/1/2005 -0500, I wrote:
Could be the sideways nibble that EMM386 does if it doesn't have a full 
(1.5M * n) pool allocation block from a previous allocation.  It tries to 
eat 32K off an adjacent address free XMS handle and pass it over to the 
currently used handle to fill out the block.  Since that portion of the 
code was never stress tested -- I never had the proper XMS fragmenting
Well, that checked out okay.  I'm back to having a fully working system and 
trying to figure out ways to make it crash.


---
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user