Quake - not enough RAM

I tried to install Quake on a machine with 128Mb or RAM. It had some
80Mb of free memory before I started Quake and to my surprize it
complained that it can’t allocate 54Mb.

I had to kill few processes to get it running (I had both eide and aha
drivers running, so aha ate some memory for cache). With 91Mb of free
memory it worked, but isn’t that little too much of requirements? What
the hell do we need swapping for?

  • Igor

Igor Kovalenko schrieb:

I tried to install Quake on a machine with 128Mb or RAM. It had some
80Mb of free memory before I started Quake and to my surprize it
complained that it can’t allocate 54Mb.

I had to kill few processes to get it running (I had both eide and aha
drivers running, so aha ate some memory for cache). With 91Mb of free
memory it worked, but isn’t that little too much of requirements? What
the hell do we need swapping for?
I can’t really comment on why or how Quake works with all the memory it

needs, but I don’t think that you wound want a game like Quake to swap data
to the HD…
For a complier swapping does make more sense, as it is not timecritical.
For this reason swapping in not enabled generally, but just by processes
that want it… (I guess Quake does not want it :slight_smile:

Sven

  • Igor


Sven Behnsen QNX Software Systems GmbH Phone: +49 511 94091-0
email: sbehnsen@qnx.de Am Listholze 76 Fax : +49 511 94091-199
Web: www.qnx.de D-30177 Hannover BBS : +49 511 94091-300
Info: info@qnx.de Germany ISDN : +49 511 94091-310

Sven Behnsen schrieb:

Igor Kovalenko schrieb:

I tried to install Quake on a machine with 128Mb or RAM. It had some
80Mb of free memory before I started Quake and to my surprize it
complained that it can’t allocate 54Mb.

I had to kill few processes to get it running (I had both eide and aha
drivers running, so aha ate some memory for cache). With 91Mb of free
memory it worked, but isn’t that little too much of requirements? What
the hell do we need swapping for?
I can’t really comment on why or how Quake works with all the memory it
needs, but I don’t think that you wound want a game like Quake to swap data
to the HD…
For a complier swapping does make more sense, as it is not timecritical.
For this reason swapping in not enabled generally, but just by processes
that want it… (I guess Quake does not want it > :slight_smile:

Allowed to answer?
The pager should page out “unused” (LRU) pages. Quake would reference
it’s memory - but all the other programs sleeping could be paged out.
But not with this default, right Igor? :wink:

Peter W?chtler <pwaechtler@qnx.de> wrote:

Sven Behnsen schrieb:

Igor Kovalenko schrieb:

I tried to install Quake on a machine with 128Mb or RAM. It had some
80Mb of free memory before I started Quake and to my surprize it
complained that it can’t allocate 54Mb.

I had to kill few processes to get it running (I had both eide and aha
drivers running, so aha ate some memory for cache). With 91Mb of free
memory it worked, but isn’t that little too much of requirements? What
the hell do we need swapping for?
I can’t really comment on why or how Quake works with all the memory it
needs, but I don’t think that you wound want a game like Quake to swap data
to the HD…
For a complier swapping does make more sense, as it is not timecritical.
For this reason swapping in not enabled generally, but just by processes
that want it… (I guess Quake does not want it > :slight_smile:

Allowed to answer?
The pager should page out “unused” (LRU) pages. Quake would reference
it’s memory - but all the other programs sleeping could be paged out.
But not with this default, right Igor? > :wink:

Quake does swap.

Peter Wächtler wrote:

Sven Behnsen schrieb:

Igor Kovalenko schrieb:

I tried to install Quake on a machine with 128Mb or RAM. It had some
80Mb of free memory before I started Quake and to my surprize it
complained that it can’t allocate 54Mb.

I had to kill few processes to get it running (I had both eide and aha
drivers running, so aha ate some memory for cache). With 91Mb of free
memory it worked, but isn’t that little too much of requirements? What
the hell do we need swapping for?
I can’t really comment on why or how Quake works with all the memory it
needs, but I don’t think that you wound want a game like Quake to swap data
to the HD…
For a complier swapping does make more sense, as it is not timecritical.
For this reason swapping in not enabled generally, but just by processes
that want it… (I guess Quake does not want it > :slight_smile:

Allowed to answer?
The pager should page out “unused” (LRU) pages. Quake would reference
it’s memory - but all the other programs sleeping could be paged out.
But not with this default, right Igor? > :wink:

Exactly. Quake itself seems to be allowing paging by the way (judging by
messages it prints), but it is mostly useless because there is little
point to page out Quake - what we need is to page out everything else
unused.

From approx 48Mb used by system (before Quake) more than half was used
by disk caches (eide, aha8 and fdc, each allocating 15% of free RAM).
Most of Photon is practically unused when you play Quake. All that could
be paged out.

Note also, Windows Quake III requires your PC to have 64Mb of physical
RAM. When user has ‘realtime OS with great architecture’, 128Mb RAM with
80Mb free and it can’t play what should user say? I bet he might just
say ‘goodbye RTP’…

  • Igor

“Igor Kovalenko” <Igor.Kovalenko@motorola.com> wrote in message
news:39E7302B.A420A2F9@motorola.com

Note also, Windows Quake III requires your PC to have 64Mb of physical
RAM. When user has ‘realtime OS with great architecture’, 128Mb RAM with
80Mb free and it can’t play what should user say? I bet he might just
say ‘goodbye RTP’…

I certainly hope no one considering RtP as a real-time platform would base
their decision on the availability of a game. Certainly, if you were
developing a game console it might be an issue, but for just about anything
else it is nothing more than a “gee whiz”.

Rennie

John Doe wrote:

“Igor Kovalenko” <> Igor.Kovalenko@motorola.com> > wrote in message
news:> 39E7302B.A420A2F9@motorola.com> …

Note also, Windows Quake III requires your PC to have 64Mb of physical
RAM. When user has ‘realtime OS with great architecture’, 128Mb RAM with
80Mb free and it can’t play what should user say? I bet he might just
say ‘goodbye RTP’…

I certainly hope no one considering RtP as a real-time platform would base
their decision on the availability of a game. Certainly, if you were
developing a game console it might be an issue, but for just about anything
else it is nothing more than a “gee whiz”.

Get serious Rennie. I’m not talking about availability. It is
available, but requires ridiculously more RAM to run, which inevitably
leaves bad impression about underlying technology. You can theoretize as
much as you want about how people judge realtime systems, but a lot of
them will judge it by how much resources it takes to run a well known
application and how well does it run (frame rate and such).

Don’t forget also that RTP now targets to be development system for
itself. I had an interesting observation couple of days ago trying to
use it in that fashion. During a debug session the evil DDD decided to
allocate 180Mb of RAM for whatever reasons. It succeeded since I have
256Mb of RAM but there was 0 left afterwards, so shell could not fork
new processes. I freed some space by exiting another app and looked at
swap stats. That was first time I saw RTP indeed swapping - there was
about 7Mb of swap space used (out of 128Mb). It managed to hold in that
state for few minutes, but then it became progressively worse. Clicking
in any window made that application freeze right away and soon there
came hard lockup. Could not even move mouse pointer and
Ctrl-Alt-Shift-Bsp did not work either. Had to hit RESET button.

Now what if I had unsaved files at that moment? What kind of development
system is that? This is due to the fact that by default all applications
are loaded with all pages locked and they have to be unlocked explicitly
to be swappable. Good for a realtime environment perhaps, but for
development system?

If OS in development configuration has to page out something in order
to maintain integrity it should damn well do so. The policy of locking
pages must be configurable. In simplest case, if I have enabled swapping
(and it has to be enabled even now with swapctl) that probably means I
do want swapping to take place when necessary. It could also be more
intelligent - i.e., there could be some classification of applications
(swappable/non-swappable, realtime/non-realtime) which would allow OS to
decide what it can swap out and what not. Using sticky bit on
executables in its original sense would not be a bad idea I guess. What
do you think Sebastien?

  • Igor

Igor Kovalenko a écrit :

John Doe wrote:

“Igor Kovalenko” <> Igor.Kovalenko@motorola.com> > wrote in message
news:> 39E7302B.A420A2F9@motorola.com> …

Note also, Windows Quake III requires your PC to have 64Mb of physical
RAM. When user has ‘realtime OS with great architecture’, 128Mb RAM with
80Mb free and it can’t play what should user say? I bet he might just
say ‘goodbye RTP’…

I certainly hope no one considering RtP as a real-time platform would base
their decision on the availability of a game. Certainly, if you were
developing a game console it might be an issue, but for just about anything
else it is nothing more than a “gee whiz”.


Get serious Rennie. I’m not talking about availability. It is
available, but requires ridiculously more RAM to run, which inevitably
leaves bad impression about underlying technology. You can theoretize as
much as you want about how people judge realtime systems, but a lot of
them will judge it by how much resources it takes to run a well known
application and how well does it run (frame rate and such).

Don’t forget also that RTP now targets to be development system for
itself. I had an interesting observation couple of days ago trying to
use it in that fashion. During a debug session the evil DDD decided to
allocate 180Mb of RAM for whatever reasons. It succeeded since I have
256Mb of RAM but there was 0 left afterwards, so shell could not fork
new processes. I freed some space by exiting another app and looked at
swap stats. That was first time I saw RTP indeed swapping - there was
about 7Mb of swap space used (out of 128Mb). It managed to hold in that
state for few minutes, but then it became progressively worse. Clicking
in any window made that application freeze right away and soon there
came hard lockup. Could not even move mouse pointer and
Ctrl-Alt-Shift-Bsp did not work either. Had to hit RESET button.

Now what if I had unsaved files at that moment? What kind of development
system is that? This is due to the fact that by default all applications
are loaded with all pages locked and they have to be unlocked explicitly
to be swappable. Good for a realtime environment perhaps, but for
development system?

If OS in development configuration has to page out something in order
to maintain integrity it should damn well do so. The policy of locking
pages must be configurable. In simplest case, if I have enabled swapping
(and it has to be enabled even now with swapctl) that probably means I
do want swapping to take place when necessary. It could also be more
intelligent - i.e., there could be some classification of applications
(swappable/non-swappable, realtime/non-realtime) which would allow OS to
decide what it can swap out and what not. Using sticky bit on
executables in its original sense would not be a bad idea I guess. What
do you think Sebastien?

  • Igor

Ok, but it seems difficult to run realtime and non-realtime applications at the
same time.
What to do if a realtime application needs cpu while swapping is in progress?
It would better to decide if the entire system is non-realtime as development
platform, and by the way swappable, or realtime and non-swappable.

Agree?

Alain.

Alain Bonnefoy wrote:

Ok, but it seems difficult to run realtime and non-realtime applications at the
same time.
What to do if a realtime application needs cpu while swapping is in progress?
It would better to decide if the entire system is non-realtime as development
platform, and by the way swappable, or realtime and non-swappable.

QNX kernel is preemptable, so a realtime task with priority higher than
swapper thread of procnto would preempt it. Besides, if you really want
realtime, just don’t enable swapping at all.

  • igor