[comp.sys.att] Swapping and wmgr

darren@bacchus (Darren Friedlein) (05/20/88)

I have a question that I'm hoping someone can answer... I run phdaemon on
my machine and when memory has to be swapped out to disk, phdaemon fails,
leaves me a message under the [!!] icon and I re-start it.  No big
problem.  The last two times, however, the [!!] icon flashed on and then
the whole status bar right of "DATA 2:" went to dots.  I assume that
this means that wmgr is failing when it is swapped out too.  This is
pretty damn agrivating -- especially since it never happened before.
I have a UNIXpc w/ a 40M drive, 1M on the MB and v3.5(.1.4) of the OS
(note: not 3.51).  I'm using the new wmgr that moves between windows
with the <Resume> key, but I've been using that all along.

Anyone got any ideas???

-darren
         ____
        /    \
       |                                 Rt 4, Box 416, Durham, NC 27703
  _____|_____     Darren G. Friedlein      data (bacchus) : 919/596-7746
 /     |     \                                      voice : 919/596-9492
(      |      )
 \____/    __/      {mcnc|icus|ethos|gladys|bakerst}!bacchus!darren

ford@elgar.UUCP (Ford Prefect ) (05/23/88)

In article <449@bacchus> darren@bacchus (Darren Friedlein) writes:
>I have a question that I'm hoping someone can answer... I run phdaemon on
>my machine and when memory has to be swapped out to disk, phdaemon fails,
>leaves me a message under the [!!] icon and I re-start it.

What is the message?  How do you know it has anything to do with
swapping (and do you really mean swapped, as in a "0" Flags entry in
ps -fl, or just normal VM paging)?

>							     No big
>problem.  The last two times, however, the [!!] icon flashed on and then
>the whole status bar right of "DATA 2:" went to dots.

I have seen wmgr (on 3.51) dump core when I do some bizarre things
with s_Suspd/s_Rsume/Suspd while windows are being created/deleted.
Maybe it's that?  But what you describe means that smgr went bye-
bye as well.  Look for a core file if in happens again.

>							I assume that
>this means that wmgr is failing when it is swapped out too.

It is very difficult for a program to find out whether it has been
swapped out.  Are you suspecting a system-wide problem with swap
errors?  If you ever run a program and immediately see "Killed"
instead, that probably means you are having I/O errors on the swap
device.  If you find a core file of wmgr, however, it's probably just
a bug in wmgr which almost certainly has nothing to do with paging.
On a standard system, wmgr's current directory is /etc/lddrv, so that
is the place to look for the core.

					-=] Ford [=-

"Once there were parking lots,		(In Real Life:  Mike Ditto)
now it's a peaceful oasis.		ford%kenobi@crash.CTS.COM
This was a Pizza Hut,			...!sdcsvax!crash!kenobi!ford
now it's all covered with daisies." -- Talking Heads

dga@killer.UUCP (David Aldrich) (05/24/88)

in reference to one deamon killing off another on the UNIX-PC each of the
programs ph smgr and wmgr control a few keys on the keyboard and a space on the
top line of the unixpc if any of these programs dies for any reason at all like
odd instructions being sent to them etc. thier area on the top line goes blank.
The 'w' Icon is owned by wmgr and is in /dev/w4
The center are is owned by smgr and is /dev/w5
and the left is /dev/w3 and owned by ph
the windows on the UNIX PC are a neat idea and if there is some interest I have
made up some programs to use these from the shell without hitting suspd or the
like. also if you are tired of a non full 80x24 shell window from the office I
have a program to resize your current window to full screen and some routines
to make up arbitrary sizes and places for windows if you have a particular
request and a compiler I can mail the source with a short explanation or post
it if there is interest.
I am killer!dga

lenny@icus.UUCP (Lenny Tropiano) (05/24/88)

In article <449@bacchus> darren@bacchus (Darren Friedlein) writes:
|>
|>I have a question that I'm hoping someone can answer... I run phdaemon on
|>my machine and when memory has to be swapped out to disk, phdaemon fails,
|>leaves me a message under the [!!] icon and I re-start it.  No big
|>problem.  The last two times, however, the [!!] icon flashed on and then
|>the whole status bar right of "DATA 2:" went to dots.  
...
Well I wrote phdaemon and never really had the ambition to stick the code
in it to open /dev/swap and locate the user's process block if it got
swapped out.  Unfortunately this is a very hard thing to *TEST*.  How
do you make something run out of swap space if you have enough allocated?

I suggest you (yes, reformat) and increase your default swap space.  Running
out of swap space isn't too good, it's a sign that your machine isn't
configured correctly for the amount of memory you have and how intensively
you use this memory.

-Lenny
-- 
US MAIL  : Lenny Tropiano, ICUS Computer Group        IIIII  CCC U   U  SSS
           PO Box 1                                     I   C    U   U S
           Islip Terrace, New York  11752               I   C    U   U  SS 
PHONE    : (516) 968-8576 [H] (516) 582-5525 [W]        I   C    U   U    S
TELEX    : 154232428 [ICUS]                           IIIII  CCC  UUU  SSS 
AT&T MAIL: ...attmail!icus!lenny  
UUCP     : ...{mtune, ihnp4, boulder, talcott, sbcs, bc-cis}!icus!lenny 

darren@bacchus (Darren Friedlein) (05/24/88)

In article <153@elgar.UUCP> ford@kenobi.UUCP (Mike Ditto) writes:
>In article <449@bacchus> darren@bacchus (Darren Friedlein) writes:
>>I have a question that I'm hoping someone can answer... I run phdaemon on
>>my machine and when memory has to be swapped out to disk, phdaemon fails,
>>leaves me a message under the [!!] icon and I re-start it.
>
>What is the message?  How do you know it has anything to do with
>swapping (and do you really mean swapped, as in a "0" Flags entry in
>ps -fl, or just normal VM paging)?

When smgr (found out I had the wrong mgr) displayed the [!!] icon before,
the message I got was that phdaemon died because SOMETHING was swapped
out, either phdaemon or a program it was monitoring.  This time, smgr
quit completely right after the [!!] icon appeared.  From ps, I could
see that the system load was real heavy.  This doesn't assure that
swapping was the cause, but that would be my best guess.

What is the difference between a process being swapped out and normal
VM paging?  I thought the UNIXpc could only support 4M or virtual memory,
but when I formatted the drive, it reserved 6M of space.

>					-=] Ford [=-
>
>"Once there were parking lots,		(In Real Life:  Mike Ditto)
>now it's a peaceful oasis.		ford%kenobi@crash.CTS.COM
>This was a Pizza Hut,			...!sdcsvax!crash!kenobi!ford
>now it's all covered with daisies." -- Talking Heads
         ____
        /    \
       |                                 Rt 4, Box 416, Durham, NC 27703
  _____|_____     Darren G. Friedlein      data (bacchus) : 919/596-7746
 /     |     \                                      voice : 919/596-9492
(      |      )
 \____/    __/      {mcnc|icus|ethos|gladys|bakerst}!bacchus!darren

jbm@uncle.UUCP (John B. Milton) (05/25/88)

In article <449@bacchus> darren@bacchus (Darren Friedlein) writes:
...
>problem.  The last two times, however, the [!!] icon flashed on and then
>the whole status bar right of "DATA 2:" went to dots.  I assume that
>this means that wmgr is failing when it is swapped out too.  This is

The phone manager (ph) is the left half of the status line (w3), the window
manager (wmgr) is just the upper right corner (w4), and the status manager
(smgr), which is really an expanded cron (w5) is most of the right half.

When smgr (cron), ph or wmgr die, you will find a core file in /etc/lddrv.

I am personally very suspect of smgr and the way it intereacts with the
window driver.

Partial ps -f showiing window devcies open:

   root    83     1  3  May 23   w4  0:01 wmgr
   root    78     1  3  May 23   w3  0:33 ph
   root    87     1  3  May 23   w5  4:45 smgr

John
-- 
John Bly Milton IV, jbm@uncle.UUCP, {ihnp4|osu-cis}!n8emr!uncle!jbm
home: (614) 294-4823, work: (614) 459-7641; talk to me about fractals

dga@killer.UUCP (David Aldrich) (05/26/88)

Actually I was thinking about some of the problems with the 'ph' program. You
may try <if you don't use it of course> taking it out of /etc/rc so that it
will never be spawned in the first place then it of course could not interfere
with you phone operation. I have killed it before then used cu etc with no
noticible difference in opertion. If anyone witha uucp that has trouble does
this and finds that it helps then we will have narrowed the problem down some.

ford@crash.cts.com (Michael Ditto) (05/27/88)

In article <459@bacchus> darren@bacchus.UUCP (Darren Friedlein) writes:
>In article <153@elgar.UUCP> ford@kenobi.UUCP (Mike Ditto) writes:
>>In article <449@bacchus> darren@bacchus (Darren Friedlein) writes:
>>>I have a question that I'm hoping someone can answer... I run phdaemon on
>>>my machine and when memory has to be swapped out to disk, phdaemon fails,
>>>leaves me a message under the [!!] icon and I re-start it.
>>
>>What is the message?  How do you know it has anything to do with
>>swapping (and do you really mean swapped, as in a "0" Flags entry in
>>ps -fl, or just normal VM paging)?
>
>When smgr (found out I had the wrong mgr) displayed the [!!] icon before,
>the message I got was that phdaemon died because SOMETHING was swapped
>out, either phdaemon or a program it was monitoring.

Ahh... I'm beginning to understand the setup... I had no idea that
phdaemon was such a sneaky program as to go peeking at other processes'
user information.  So what happened is phdaemon tried to look at the
user structure for something (probably the /etc/ph process) and found
that it was not in memory.  Phdaemon's author (isn't that you, Lenny?)
didn't provide for this situation and had the program exit instead
(probably based on the first version of "fuser", which did the same
thing).

>  This time, smgr
>quit completely right after the [!!] icon appeared.  From ps, I could
>see that the system load was real heavy.  This doesn't assure that
>swapping was the cause, but that would be my best guess.

I would guess that that was not directrly related, unless phdaemon is
sending some weird stuff to the smgr.  Perhaps you ran out of swap
space.

>What is the difference between a process being swapped out and normal
>VM paging?  I thought the UNIXpc could only support 4M or virtual memory,
>but when I formatted the drive, it reserved 6M of space.

Normally, individual pages of memory are moved to the swap device when they
aren't needed, and brought back in individually when something tries to use
them.  Processes are "swapped out" when the system gets desparate for space.
A swapped process is completely stored on disk and can not execute at all
until it is (at least partially) swapped in.  If a process is swapped out,
bit zero of the "F" field of the ps display will be zero.

The Unix PC supports 4M of virtual memory PER PROCESS, with a total amount
dependant on your physical memory + swap space.

By the way, Unix completely hides the whole questions of swapping and
paging from user programs.  It's only in the rare case of a weird program
like ps, fuser, or (apparrently) phdaemon that it comes up.  That's why
I was really surprised to hear someone claim that they were getting errors
because of swapping.

-- 

Mike Ditto					-=] Ford [=-
P.O. Box 1721					ford%kenobi@crash.CTS.COM
Bonita, CA 92002				ford@crash.CTS.COM

jbm@uncle.UUCP (John B. Milton) (05/29/88)

In article <3030@crash.cts.com> ford@crash.CTS.COM (Michael Ditto) writes:
>In article <459@bacchus> darren@bacchus.UUCP (Darren Friedlein) writes:
>>In article <153@elgar.UUCP> ford@kenobi.UUCP (Mike Ditto) writes:
>>>In article <449@bacchus> darren@bacchus (Darren Friedlein) writes:
...
>The Unix PC supports 4M of virtual memory PER PROCESS, with a total amount
>dependant on your physical memory + swap space.

I read somewhere in the docs that the UNIXpc actually limits each process to
2.5M virtual. It could not be as high as 4.0M because the kernel ALWAYS takes
up some 340k+. Then there are loadable drivers, etc. If user processes were
allowed to get near 4M, they could easily force the machine into constant
thrash and eventual crash.

I just whipped up a quicky, and here's what I got (2.5M=2609152)

max allocate ~= 2535424

main()
{
	int first,last,old;

	first=sbrk(0);
	while ((old=sbrk(4096))!=-1)
		last=old;
	printf("max allocate ~= %d\n",last-first);
}

John
-- 
John Bly Milton IV, jbm@uncle.UUCP, {ihnp4|osu-cis}!n8emr!uncle!jbm
home: (614) 294-4823, work: (614) 459-7641; talk to me about fractals

ford@elgar.UUCP (Ford Prefect ) (06/01/88)

In article <271@uncle.UUCP> jbm@uncle.UUCP (John B. Milton) writes:
>In article <3030@crash.cts.com> ford@crash.CTS.COM (Michael Ditto) writes:
>...
>>The Unix PC supports 4M of virtual memory PER PROCESS, with a total amount
>>dependant on your physical memory + swap space.
>
>I read somewhere in the docs that the UNIXpc actually limits each process to
>2.5M virtual. It could not be as high as 4.0M because the kernel ALWAYS takes
>up some 340k+. Then there are loadable drivers, etc. If user processes were
>allowed to get near 4M, they could easily force the machine into constant
>thrash and eventual crash.

Yes, 2.5M is the maximum "normal" memory in one process.  The four meg
address space is used up by: .5M of kernel, 2.5M of user code/stack/data,
.5M for the shared library, and .5M for shared memory.  The 340k figure
for the kernel is the physical memory for the plain kernel; loadable
drivers will use more physical memory, but no user virtual memory because
they first fill up the rest of the kernel's .5M and then start in the
shared library range.

I don't think you can crash a machine by making it thrash for memory, and
besides, that isn't caused by a process that allocates lots of memory
unless it is actually referencing lots of pages.  You can make things
awfully slow though.

>I just whipped up a quicky, and here's what I got (2.5M=2609152)
>
>max allocate ~= 2535424
>
>main()
>{
>	int first,last,old;
>
>	first=sbrk(0);
>	while ((old=sbrk(4096))!=-1)
>		last=old;
>	printf("max allocate ~= %d\n",last-first);
>}

If you add to that 2535424 the memory taken up by the program itself and
its data and stack, you'd probably be within one page of the 2M limit.
If you need more, you could create half a meg of shared memory!


					-=] Ford [=-

"Once there were parking lots,		(In Real Life:  Mike Ditto)
now it's a peaceful oasis.		ford%kenobi@crash.CTS.COM
This was a Pizza Hut,			...!sdcsvax!crash!kenobi!ford
now it's all covered with daisies." -- Talking Heads