Xeno86

VCACHE fix attempt

98 posts in this topic

...So what MS is saying in MS article 181594 is just in theory. A blind assumption...

Yep! In 1995 when Windows 95 was released, no one would have thought of ever having 2GB of RAM!

I find it quite ironic that Microsoft have not updated or removed those 'accurate' docs!

Windows 98SE with 1.5GB of RAM has been working well with the settings I mentioned.

I've been looking through the VMM.VXD module lately... It's one hundred thousand lines of code!!!

I'm trying to work through the DOS entry point so I can determine how it's setting up the memory management when it goes into protected mode...

Oh well... I'll keep chipping away at it as I get time... (that elusive thing :P )

That's just the beginning though...

Then, with more than 1GB of RAM, there is all the modules memory management and allocation bugs that were never fixed by Microsoft... (what bugs? 9-what? What are you talking about you silly little man!)

0

Share this post


Link to post
Share on other sites
...So what MS is saying in MS article 181594 is just in theory. A blind assumption...

Yep! In 1995 when Windows 95 was released, no one would have thought of ever having 2GB of RAM!

I find it quite ironic that Microsoft have not updated or removed those 'accurate' docs!

MS article 181594 was first published more than a decade ago, perhaps a year or two before Win98 ever came out. The info is most likely outdated and may no longer be accurate.

At least MS article 184447 mentions similar things found in MS KB article 304943 but article 184447 does mention Win95 and Win98 FE:

http://support.microsoft.com/kb/184447/EN-US/

Other "large RAM" problems were also described in MS article 253912 and this one mentions ALL Win9x OSes:

http://support.microsoft.com/kb/253912/EN-US/

But it's nice that there is a "patch" for Win98 SE that can make it use 1Gb of RAM or more. It's not a "cure-all" but a major step in the right direction in solving most of the large RAM problems.

Conspiracy theorists would say that M$ were manuvouring users towards 'End-Of-Life' for 9x..

I definitely HATE conspiracy theories! They're a complete waste of time & energy and a bunch of "cheap talk", IMHO.

I'm mostly concerned with solutions to the large RAM problems whether be a patch or memory tweaks to make Win9xME OSes run with 1Gb+ RAM installed.

0

Share this post


Link to post
Share on other sites
Could you please post the English build of VCACHE.VXD 4.10.2223?

Thanks.

Just uploaded updated archive with English build.

0

Share this post


Link to post
Share on other sites

i have read some articles about it... althoutght they were not to professional as the rest of discussion:

there was reccomended this setting:

Maxfilecache=32768

Minfilecache=32768

just because of MS recomendation for 32mb of memory for caching. Max as topmost limit before memory shall be consumed by it, minimum to keep the amount of allocated memory at constant value - no shrinking or expanding possible. That is good idea while amount of allocated memory shall cannot "attack" some parts of already used memory.

My tests here show that 64mb is topmost limit for any application which have trouble with lots of ram. i shall test 32mb once again and see if it affects performance.

0

Share this post


Link to post
Share on other sites

so i have analyzed once again the whole thing and here are some things i have learned:

definition of vcache:

The disk cache software in Windows 95/98. It is a 32-bit program that dynamically allocates available free memory and replaces the 16-bit Smartdrive cache in DOS/Windows 3.1. Vcache can automatically adjust the size of the cache depending on the current environment and amount of free disk space.

althought it dont shows for what the vcache is, i found similar text according to smartdrv:

A {Microsoft} {MS DOS} {disk cache} program to speed up disk access. For most users, a 1MB cache is sufficient.  Devoting more memory to the cache offers diminishing returns, since the additional cache hits become fewer (and the extra memory could be better used to reduce {swapping}). Typing SMARTDRV /S at a DOS prompt shows the cache size, a hit-and-miss report, and information about which drives are being cached.  The hit-and-miss statistics are crucial for gauging the effectiveness of SmartDrive settings.  A score in the high 80s shows that SmartDrive is well configured.  Run SMARTDRV /S several times during a Windows session and note the-hit-and-miss figures each time.  If your percentage usually falls below 80 percent, you should consider increasing the cache size.  You can edit the SMARTDRV line in your {AUTOEXEC.BAT} file to increase both the InitCacheSize and the WinCacheSize parameters. SmartDrive Monitor is an undocumented Windows program that comes with DOS 6.0 for logging and controling the cache. (1995-11-22)

blah blah blah and so on...

Vcache seems to be "Virtual Cache" of harddisk/other media. any cache memory is used to speed up the transactions between hardware. if the cache is not present we get only pure hw effectivity which is incredibely low, but there are some things that changed since 1995.

Disks are faster and it is quite normal that they use physical cache memory module. i have seen 2mb hardware cache on 5400 and 7200 rpm drives, and my cheetah with 15000 rpm has 16mb of cache...

the question is if absence of virtual cache can affect disk performance in negative way when there are hardware solutions for this problem, or if i am wrong Vcache has little bit different function as cache memory installed physically on disk.

if the vcache works as i think that is not necessary to use so large amounts of memory for it, but just adequate amount which reflects hardware - disks and similar media - in addition of optimizing disk acesses.

and the third possibility is that if i have good harddisk with large cache memory, total absence of Vcache (all set to 0) shall not affect disk operations, but may improve operations in RAM.

in next day i shall do some test using HDtach software to measure if the disk/memory accesses have been affected by amount of vcache.

edit:

there is slightly small difference between Maxfilecache 16 or 32 megabytes, and between 64 megabytes. all these settings work well. i think that this amount has to be set to smaller number if less harddisks is installed on system and to larger if more of them are installed, but 64megabytes seems to fit for most systems. Larger number may affect opening of command line and some critical apps...

also chunksize is good to be optimized for smallest hw cache on your harddisk. for example if i have 2mb cache on disk the optimal value is 1536 (three quarters).

if i have two disks, each with 8mb disk cache the optimum is 6144, with at least 16 mb of Min/max filecache.

Edited by Offler
0

Share this post


Link to post
Share on other sites
Well, change 2 bytes twice is not much a patch. :sneaky:

Well first of all, not 2 bytes twice but 20 bytes. If I changed 2 bytes I would completely limit maximum cache size setting, while this fix leaves you the freedom and flexibility to set it to whatever value you want (max 800M). It only affects default (automatic) value.

Secondly, what kind of fix did you expect for this particular issue? I'm open for ideas and discussion.

If you can do better - prove it :rolleyes:

It's certainly better than the "workaround" advised by Microsoft

Reduce the amount of memory that is installed in your computer to 512 MB or less.
:whistle:

... and it can be easily slipstreamed into Windows installation CD.

Hi, Xeno86! :hello:

I now have had time to analyze your patch, and I have to strongly disagree with Tihiy:

You patch is concise, elegant and to the point. And far better than the classic "two bytes twice" aproach, because it alters only the default value, while allowing for "MaxFileCache" values both above an below the default, provided they are not above 800 MB. My compliments!

Keep on the great work! You rock! :thumbup

0

Share this post


Link to post
Share on other sites

What that patch mean Xeno86?

Can I use 2x2GB (4GB) of ram in dual mode on 98SE?

0

Share this post


Link to post
Share on other sites
What that patch mean Xeno86?

Can I use 2x2GB (4GB) of ram in dual mode on 98SE?

4GB is a no-no for Win 9x/ME.

0

Share this post


Link to post
Share on other sites

And...somebody could tell me how to install win98 on a 2gb pc??because im trying that and when im installing, computer need reboot and give me the error of "Not enough memory" :S

0

Share this post


Link to post
Share on other sites
And...somebody could tell me how to install win98 on a 2gb pc??because im trying that and when im installing, computer need reboot and give me the error of "Not enough memory" :S

Edit SYSTEM.INI to limit your memory to something like 512Mb (MaxPhysPage=20000 under [386Enh]), install all updates, patches (including this :rolleyes: ) and then try removing that line. You'll probably need to keep playing with SYSTEM.INI for your system to work properly again.

0

Share this post


Link to post
Share on other sites
4GB is a no-no for Win 9x/ME

With the proper Patches, Windows 98/SE/ME can run as close to 4GB as your Motherboard will map to the 32-Bit Address Space.

Most Motherboards will only map 3GB to the 32-Bit Address Space pushing any additional memory above the 4GB boundary.

I found an ECS Motherboard that allowed me to tweak this limit, allowing me to run Windows 98/SE/ME with 3647MB of RAM.

0

Share this post


Link to post
Share on other sites

Hi, rloew!

4GB is a no-no for Win 9x/ME

Well, I guess I was unusually terse when I wrote that, thanks for elaborating on the topic.

And since you began, let me add that, because it is a hardware problem, it is OS independent, so that not only Win 9x/ME, but also Win NT/2k/XP/2003/Vista, in their 32-bit versions are usually limited to 3.5 GB (for more on that follow this link and the links in it).

I think that also GrayPhound's outstanding translation of Igor Leyko's article (link) is an enlightening further reading, for those who want to undersand better the Windows virtual address space layout.

I found an ECS Motherboard that allowed me to tweak this limit, allowing me to run Windows 98/SE/ME with 3647MB of RAM.

Could you please tell some more specifics about that ECS mobo? Is it intended for intel or AMD? What's the chipset and maximum allowable RAM for it? Sorry, I'm aware this is somewhat off-topic, but I just couldn't resist asking...

Edited by dencorso
0

Share this post


Link to post
Share on other sites
Could you please tell some more specifics about that ECS mobo? Is it intended for intel or AMD? What's the chipset and maximum allowable RAM for it? Sorry, I'm aware this is somewhat off-topic, but I just couldn't resist asking...

The ECS GEFORCE 6100SM-M Motherboard is a nVidia MCP61S Based system for the AMD CPU.

The manual say it can support up to 16GB of RAM using two slots. I have 2x2GB of RAM installed totalling 4GB.

The BIOS has a setting that determines the limit of 32-Bit RAM. Additional RAM is shifted above 4GB into the 64-Bit Address Space.

The setting is a 8-Bit HEX value that sets the limit in 16MB increments.

The default is C0 which provides 3GB of 32-Bit RAM.

With the on-board video disabled, I was able to set the value to E4. This provides 3648MB.

1MB and 64K are reserved by the BIOS leaving just under 3647MB.

I was able to run my modified Windows 9X using this setting.

0

Share this post


Link to post
Share on other sites

Hi there!

Is there any difference between 1x1GB and 2x512 mb RAM under Win98?

Can I get any benefits of dual channel (2x512 mb), or shell I go for the cheaper solution - 1x1GB?

Any difference in fixing the error with one or two sticks of RAM? :unsure:

0

Share this post


Link to post
Share on other sites

I hope that my message will help you, but i fear that you will not like it...

I have been testing various settings of system, Vcache and some hw changes.

In ALL cases the only stable setting when system was not affected by "not enought memory" was:

Maxfilecache=32768

Minfilecache=32768

i have three testing tools - Tv tuner, command prompt, and Ultima Online

with any hw and bios setting and with Maxfilecache=65536 i was able to work for several hours. Yesterday i worked with photoshop, watching tv, videos, listening music, opening and closing Ultima online. i was able to run system this way for 8 hours. then i attempled to open Ultima Online but system refuse to do so, because of lack of memory.

please - try this setting, work for many hours and say if you encounter any trouble, or try your own, with command prompt, tv tuners and uo and watch if and when the problem may occur.

Right now i believe that this is the last well working setting for win9x. with it NO errors with memory occured.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.