VOGONS


Do you *need* a swap file with Win98 & 384/512MB RAM?

Topic actions

  • This topic is locked. You cannot reply or edit posts.

First post, by xjas

User metadata
Rank l33t
Rank
l33t

As the title says... I'm upgrading my Thinkpad to a 4GB SSD (yes, four gigabytes) and wouldn't mind turning off the swap. Mostly to save a bit of space, but also to prevent wear on the drive, even though I doubt that'd be an issue over the kind of light use it gets.

I don't do any reeeeeally memory-intensive stuff on there, although I do have Yamaha's S-YXG100 softsynth, a couple of MIDI sequencers (XG Works 3 & an ancient version of Ableton Live (4.something), but I don't use them for audio on that machine - just MIDI) and an old copy of Photoshop.

It has 384MB in it right now which already seems like overkill for 98. I can probably find 512 if I dig through my stash of RAM, but I'm not overly motivated to.

What do you guys do? Swap or no swap?

twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!

Reply 1 of 22, by Jo22

User metadata
Rank l33t++
Rank
l33t++

To be honest, I'm not sure either. These are my thoughts:
Disabling in Win98 is easier than in 3.x (win32s demands it), but some applications require it.
For example, Photoshop Elements doesn't work properly without one.

IMHO, there's no general rule for this. Just configure it according your usage.
If you have plenty of RAM, but none of your applications complain, disable it.

On the other hand, I don't know about the internals of Win98SE enough to make any recommendation.
For example, Windows 98(SE) had the ability to run program code straight from cache,+
if it was properly aligned to 4KB boundaries (DOSBox devs, do you hear me ? 😁).
Not sure how performance would suffer from a missing cache/swap file..

On the other hand, again, some flash media (esp. CF/SD cards) do "stutter" if they have
to do a lot of things simultanously. Disabling the caches (and using DMA) lowers the stress on them.

Alternatively, you could try to use a physical RAM drive for the swap file.
Years ago, they were mentioned as PCI/PCie cards and had RAM slots.

Yeah, I know, it sounds absurd (performance wise) - but it would make most applications happy.
Maybe something like this (non-bootable) could be designed by us hobbyists ?

Like for example, an SD/CF-card "emulator" that works a bit like those old EPROM simulators from the 70s/80s ?
It would attach to IDE and simulate a small IDE drive of a few megabytes using a little µC and some serial RAM chips or old SIMMs?

Okay, I'm officially silly now! 😊

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 2 of 22, by RogueTrip2012

User metadata
Rank Oldbie
Rank
Oldbie

Leave it enabled. You can set 0 min and 128 or more max if you want.

In system.ini file under the 386enh add
ConservativeSwapFileUsage=1

The tweak will make windows use as much ram as it can before using the swapfile.

Last edited by RogueTrip2012 on 2018-04-16, 23:00. Edited 1 time in total.

> W98SE . P3 1.4S . 512MB . Q.FX3K . SB Live! . 64GB SSD
>WXP/W8.1 . AMD 960T . 8GB . GTX285 . SB X-Fi . 128GB SSD
> Win XI . i7 12700k . 32GB . GTX1070TI . 512GB NVME

Reply 3 of 22, by Zup

User metadata
Rank Oldbie
Rank
Oldbie

Yes, you need it. Windows 9x is highly unstable without swap file, so you need it. Put it at the minimum allowable, but don't disable it.

I have traveled across the universe and through the years to find Her.
Sometimes going all the way is just a start...

I'm selling some stuff!

Reply 4 of 22, by chinny22

User metadata
Rank l33t++
Rank
l33t++

I say go for it. If you run into trouble you can always enable it again.
I've disabled it in the past on my retro PC's with crazy amount of ram for win9x (512MB) and just because I could.
Games I was running never had any problems, and that's all they were doing. playing a game.

In saying that, These days I set a small swap file as I have plenty of HDD space as well just to be on the safe side.

Reply 6 of 22, by AlaricD

User metadata
Rank Oldbie
Rank
Oldbie
BloodyCactus wrote:

ramdisk, throw swap on it...

You could cut off the bottom of the blanket and sew it to the top of your blanket to make your blanket longer, too.

"The Big Bang. The ultimate hero of low frequency. The divine intergalactical bass drum connecting the tribes of our solar system."
Yello
"Solar Driftwood"

Reply 7 of 22, by Zup

User metadata
Rank Oldbie
Rank
Oldbie
AlaricD wrote:
BloodyCactus wrote:

ramdisk, throw swap on it...

You could cut off the bottom of the blanket and sew it to the top of your blanket to make your blanket longer, too.

It's not so dumb as it seems.

In my experience, any Windows 9x without swap is very unstable so you need at least a minimal swap file. That's not a problem if you've got a traditional hard disk, but if you've got a SSD you don't want any unwanted write.

So, if you've got enough RAM you may reserve some as a RAM disk and try to put your swap file on it. You'll have a swap file but your SSD will be safe.

Also, I've hard that some people uses RAM disks to put the amount of free RAM below 768 megs (because Windows 98 won't be happy running with too much RAM).

I have traveled across the universe and through the years to find Her.
Sometimes going all the way is just a start...

I'm selling some stuff!

Reply 8 of 22, by chinny22

User metadata
Rank l33t++
Rank
l33t++

yeh its actually windows that's dumb. It sees a swap file and is happy but doesn't realise/care its actually IN ram.
I still found the analogy funny though

Reply 9 of 22, by AlaricD

User metadata
Rank Oldbie
Rank
Oldbie

It's been ages since I've tried it, but it seems to me the RAM disks that launched in CONFIG.SYS or AUTOEXEC.BAT ran in "MS-DOS compatibility mode", severely slowing them down despite them being in RAM. (And by ages, I mean 2000 at the very latest. I was trying to do something with a 430FX chipset system and loading a RAM disk in the last 16MB of RAM so that Windows would use the first 64MB of RAM and therefore be within the 64MB cacheable area of that chipset.)

For a 32-bit RAM disk (installed as a .VXD or similarly), it needed to exist before Windows started; trying to launch the RAM disk before Windows started the swapfile seemed to prove an impossibility, making that RAM disk an unsuitable swapfile target.

I'll have to try this again soon and see what happens.

"The Big Bang. The ultimate hero of low frequency. The divine intergalactical bass drum connecting the tribes of our solar system."
Yello
"Solar Driftwood"

Reply 11 of 22, by AlaricD

User metadata
Rank Oldbie
Rank
Oldbie

The readme does say "Win95 does use the 16-Bit (=compatibility) mode to access this drive but leaves all other drives unaffected and 32-Bit access functional." I'll definitely try it out, but knowing what the Readme says and just the my experience with other RAM drives, it may still be the case here.

"The Big Bang. The ultimate hero of low frequency. The divine intergalactical bass drum connecting the tribes of our solar system."
Yello
"Solar Driftwood"

Reply 12 of 22, by Jo22

User metadata
Rank l33t++
Rank
l33t++
AlaricD wrote:
BloodyCactus wrote:

ramdisk, throw swap on it...

You could cut off the bottom of the blanket and sew it to the top of your blanket to make your blanket longer, too.

Oh well, I should never have had raised the RAM disk subject at all. 😢

Edit: What I mean - I see parallels between this and the old Windows XP+PAE+RAM disk thing.
Back in time, people tried to take advantage of Gaotte RAM Disk's ability to use PAE
to utilize the memory beyong 4GiB. To accomplish this, they too placed the paging file into this RAM drive..

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 14 of 22, by xjas

User metadata
Rank l33t
Rank
l33t

I ended up fixing it at 100MB (i.e. 100 min, 100 max.) Ableton 4 is none too happy with that, but it's more just on there for laughs anyway. Everything else seems fine. I might bump it up to 256MB and see how that goes.

Not gonna mess with a RAM drive on this machine because I want programs to see as much physical RAM as it has.

Out of curiosity, my old 9x-XP "rule of thumb", which I'm disobeying here, was always ~2.5x the RAM capacity (e.g. 256MB RAM, 640MB swap), although I think that was more to keep me comfortable than the OS or software. Is that completely overkill? On modern machines with current RAM capacity that's not even remotely needed anymore.

RogueTrip2012 wrote:
Leave it enabled. You can set 0 min and 128 or more max if you want. […]
Show full quote

Leave it enabled. You can set 0 min and 128 or more max if you want.

In system.ini file under the 386enh add
ConservativeSwapFileUsage=1

The tweak will make windows use as much ram as it can before using the swapfile.

Ooh, didn't know about that switch. Sounds useful.

twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!

Reply 15 of 22, by BloodyCactus

User metadata
Rank Oldbie
Rank
Oldbie

ConservativeSwapFileUsage does not do what you think it does; It disables async writes to the page file and will queue them up sequentially instead

NFO: The Windows 98 PageFile_Call_Async_Manager Service […]
Show full quote

NFO: The Windows 98 PageFile_Call_Async_Manager Service

--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Windows 98
Microsoft Windows 98 Driver Development Kit (DDK)

--------------------------------------------------------------------------------

SUMMARY
Windows 98 added a new feature, PageFile_Call_Async_Manager, that allows the Memory Manager to asynchronously write out page file (swap file) buffers during periods of time when VFAT file system activity is not busy.

This feature can affect the behavior of VxDs that monitor and/or otherwise intercept PageFile VxD functions. This article is applicable to you if your VxD hooks PageFile_Read_Or_Write, and you discover that you are not seeing all the page file traffic when using Windows 98.

MORE INFORMATION
You can disable this feature, causing the system to behave as Windows 95 does, at some cost in overall system performance. Add the following entry to the System.ini file, in its [386Enh] section:

[386Enh]
ConservativeSwapfileUsage=1
When the above Boolean is set to TRUE as shown, PageFile_Call_Async_Manager is never called. If this entry is absent from System.ini, the default setting for ConservativeSwapfileUsage is 1 for Windows 95, and 0 (zero) for Windows 98.

When Windows 98 performs asynchronous writes to the swapfile, this activity is not captured by hooking PageFile_Read_Or_Write(). The PageFile_Set_Async_Manager service is called by VFAT to notify PageFile that VFAT is the manager of Async swap file activity; in fact, this makes the PageFile_Call_Async_Manager service become handled by a routine inside VFAT.

Memory Manager calls PageFile_Call_Async_Manager, supplying the service with a pointer to a Filesystem Idle routine mmFsIdle (in the Memory Manager). VFAT later calls this function when VFAT is completely idle (all pending VFAT writes have been written), so Memory Manager can execute asynchronous writes:
ULONG INTERNAL mmFsIdle(void);
In return, PageFile_Call_Async_Manager returns a pointer to a function that Memory Manager uses to perform the (async) writes to the pagefile:

extern int (CDECL *pfnAsyncPageOut)(PVOID pvBuffer, ULONG bFileOffset);
This function is actually inside VFAT (WriteAsyncSwapPage), which copies one page into its cache buffer and writes it. mmFsIdle uses an algorithm that generates pfnAsyncPageOut calls (that are actually calls to the internal VFAT routine).

--/\-[ Stu : Bloody Cactus :: [ https://bloodycactus.com :: http://kråketær.com ]-/\--

Reply 16 of 22, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie
xjas wrote:

Out of curiosity, my old 9x-XP "rule of thumb", which I'm disobeying here, was always ~2.5x the RAM capacity (e.g. 256MB RAM, 640MB swap), although I think that was more to keep me comfortable than the OS or software.

I think the "rule of thumb" should be: just leave it alone at default settings.

Reply 17 of 22, by DataPro

User metadata
Rank Member
Rank
Member

I have a Pentium 166Mhz with 112Mb RAM 2 x 4Gb CFlash HDD and I disabled pagefiles under WIn98SE.
I only use MIDI software and game and it's just fine & fast; no crash, slowdown or freeze

HP Vectra 562 P166Mhz/256Ko L2 cache/Triton 430FX - 112Mo RAM - 2x 32Go+64Go CF Card - Matrox G2 8Mo - SB AWE64 ISA (PnP) + Roland MT-32 & M-GS64 (SC-88) & JV-1010 - Nec USB 2.0 PCI - Promise Ultra100 TX2 - Hama multicard reader

Reply 18 of 22, by Kane 93

User metadata
Rank Newbie
Rank
Newbie

My windows 98 pc has 4 GB ram and a SSD. I installed the Patchmem ram fix to get it working and all is good however I have had 2 games run incorrectly with nvidia driver version 45.23. When I looked in dxdiag it is saying page file used 0MB and 0MB available. I'm wondering if this might be my problem ?? Could having 0 MB available be problematic ?? the 2 games I'm having problems with are Mobil 1 Rally Championship, it runs for about 10 mins then randomly exit to desktop saying it cannot access memory and the other game I'm having problems with is Grand Prix Legends. it wont let me start a race with out an error 😒

Reply 19 of 22, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Kane 93 wrote on 2021-05-29, 08:06:

My windows 98 pc has 4 GB ram and a SSD. I installed the Patchmem ram fix to get it working and all is good however I have had 2 games run incorrectly with nvidia driver version 45.23. When I looked in dxdiag it is saying page file used 0MB and 0MB available. I'm wondering if this might be my problem ?? Could having 0 MB available be problematic ?? the 2 games I'm having problems with are Mobil 1 Rally Championship, it runs for about 10 mins then randomly exit to desktop saying it cannot access memory and the other game I'm having problems with is Grand Prix Legends. it wont let me start a race with out an error 😒

Hm. If Windows 98 sees 4GB of physical RAM and also can access it, then..
it's no surprise that it won't use virtual memory anymore.
Even if it wanted to, the 32-Bit address space equals 4GB.
Of course, some Windows die-hards would argue that *technically*, there's also PAE.. 🙄
(If you're brave, have a look at this thread)

But that's a whole universe in itself, I'm afraid. Not sure if it's now available for Windows 9x.
Windows 9x is based on DOS/Windows 3.x and quite hacky by nature already.
Implementing stuff like that might cause trouble with VXD drivers, DOS compatibility etc.
And that's what Windows 9x originally was made for: maximum compatibility. 😀

Edit: Maybe you can use a RAM Disk driver to "waste" some RAM?
If that works, virtual memory should be working again. 😀

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//