Google
 

Trailing-Edge - PDP-10 Archives - BB-F493Z-DD_1986 - 10,7/daemon.doc
There are 3 other files named daemon.doc in the archive. Click here to see a list.


DAEMON.DOC -- Changes from V21(772) to 22(1012)
May 1985






























COPYRIGHT       (c)        DIGITAL        EQUIPMENT        CORPORATION
1971,1974,1978,1979,1980,1981,1982,1983,1986.
ALL RIGHTS RESERVED.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
DAEMON.DOC                                                      Page 2


DAEMON.DOC -- Changes from V21(772) to 22(1012)
May 1985



1.0  SUMMARY

DAEMON version 22 is primarily a maintenance release  to  support  the
7.03 monitor.

2.0  EXTERNAL CHANGES

DAEMON V22(1012) has a slightly different naming scheme  for  renaming
AVAIL  files at the end of a week.  At the end of the week, DAEMON now
renames AVAIL.SYS to AVAIL.LWK (Last-WeeK) and  renames  any  existing
AVAIL.LWK  to AVAIL.ANN where "NN" is the next highest version number.
If AVAIL.A77 already exists, DAEMON will complain about  it  and  will
not rename any files.



3.0  KNOWN BUGS AND DEFICIENCIES

None



4.0  INSTALLATION INSTRUCTIONS

DAEMON searches JOBDAT, MACTEN, and UUOSYM.  To build DAEMON, type the
monitor commands:

        .LOAD DAEMON
        .SAVE DAEMON

Be sure to rename your previous version of  DAEMON  to  DAExxx.EXE  on
SYS:  and then copy the new .EXE file to SYS:.



5.0  INTERNAL CHANGES

Edit #

773    AVAIL.SYS gets bad entries in  it  switching  from  7.01(A)  to
       7.02.   This  is  because we think the header for the AVAIL.SYS
       working entry  is  the  same  length  as  the  header  for  the
       ERROR.SYS/AVAIL.SYS data entries.  This changed with 7.02.  Use
       new symbol AWELEN where appropriate for dealing with  the  AWE.
       Also, don't store EL.HED in working entry header.

774    Fix PEKDI6, where reading a KI paging crash would retrieve  bad
       addresses from crash file through PEKDSK.

775    Move CLRBFI from initialization code to right before the HIBER.
DAEMON.DOC                                                      Page 3


       Helps avoid loops while debugging DAEMON on a terminal.

776    While  we're  in  the  code,  combine  the  binary  and  source
       copyright statements.  Have them be on the first page.

777    Add system error block support as part of CI disk project.

Start version 22 here.

1000   Up the monitor version to 703

1001   MCO 11194, six character stopcode names.  Stopcode name is  now
       in %SYSCD instead of %SYSPC.

1002   Bad range check at DSPERR, fixed.

1003   Do ORION messages when KLINIK events are logged

1004   In  routine  ERRFIN  make  DAEMON  do  multi-block  output   to
       ERROR/AVAIL  file  so  we  don't  write  a partial entry if the
       system crashes.

1005   In routine AVLAGE, rename LAST-WEEK'S AVAIL file  to  .Ann  and
       rename  AVAIL.SYS  to  AVAIL.LWK  (to make it the new LAST-WEEK
       file).  Complain if we already used AVAIL.A77.

1006   Since edit 1004, we get some entries in ERROR.SYS which are not
       reflected  in  RIBSIZE.   Perhaps  the data was written but the
       system crashed before the RIB was  updated.   Try  to  preserve
       these entries when looking for EOF.

1007   Fix QUEUE.  UUO argument block so WTO's aren't so messy.

1010   Do copyrights.

1011   First attempt to flag software-detected disk errors positively.
       left  half  of  4  word  ERRPT.   block  will contain a code to
       indicate which of the several software-detected  errors  occur.
       These  include SAT errors, RIB errors, recovered transfer hung,
       etc.  all of these errors are detected in FILIO.  this enlarges
       the massbus-disk entry (11) by one word.

1012   Create new entry (code 74) for FILIO-detected  CI  disk  error.
       Similar  to massbuss disk (code 11) entry, but without a lot of
       useless information about controller status.



6.0  SUGGESTIONS

None.



[End of DAEMON.DOC]
DAEMON.DOC                                                      Page 4


[DMN21.DOC is appended as an integral part of DAEMON.DOC]
DMN21.DOC                                                       Page 5


DAEMON.DOC -- Changes from V20(757) to 21(772)
Jan 1983



1.0  SUMMARY

DAEMON version 21 contains major  changes,  both  in  content  and  in
philosophy,  from  version 20 which was shipped with the 7.01 monitor.
The significant changes are as follows:

It has become  nearly  impossible  to  continue  supporting  both  the
current  and  previous  versions  of  the monitor with each release of
DAEMON.  The complexity of the code required  and  the  difficulty  of
complete  testing  has  caused us to rethink the way we provide DAEMON
support for each monitor.

With this release, DAEMON will only provide support  for  the  monitor
version  with  which  it  is released.  We must obviously provide some
mechanism to support old monitors and this and all subsequent versions
of  DAEMON  will  do  so  by  invoking the previous version of DAEMON.
Since the previous version of DAEMON  clearly  supports  the  previous
version  of the monitor, this seems like the idea solution to the "old
monitor" problem.

DAEMON determines if it is able to  support  the  running  monitor  by
GETTABing   %CNDAE  and  comparing  the  monitor  version  against  an
assembled-in parameter.   If  the  versions  match,  DAEMON  continues
normally.  if the monitor version is less than that expected by DAEMON
(or if the GETTAB fails), DAEMON  assumes  that  the  old  version  of
DAEMON is on SYS:  as DAExxx.EXE, where "xxx" is the version number of
the old monitor.  For example, if the 7.02 version of DAEMON  was  run
on  a  7.01  monitor,  it  would  invoke  SYS:DAE701.EXE as the system
DAEMON.  Therefore, each site must rename their 7.01 version of DAEMON
to DAE701 before installing the new 7.02 version.

Since the monitor and DAEMON find the system DAEMON by  checking  both
the  name  and  the  JACCT  bit, DAEMON can't invoke the old DAEMON by
doing a RUN UUO.  Instead, DAEMON opens the file by  hand,  interprets
the .EXE directory and reads the file into core.  When the entire file
has been read in, DAEMON jumps into the ACs, BLTs the old DAEMON  into
the  locations in which it will run, returns unused memory, and starts
it at  the  normal  starting  address.   This  technique,  while  more
difficult  than  the  RUN UUO, preserves both the program name and the
JACCT privilege.

If DAEMON invokes an old version, the  following  message  appears  on
device OPR:

    [DAEMON: %DAEMON started on old monitor version]
    [DAEMON: %Invoking SYS:DAE701.EXE as system DAEMON]

and indicates that DAEMON is invoking the old version.

Since this version of DAEMON doesn't support old monitors, it  is  not
DMN21.DOC                                                       Page 6


able  to  analyze  crash  dumps of old monitors.  If it detects that a
crash dump is from an old monitor, DAEMON will issue a message to that
effect and abort the analysis of the crash file.

One of the largest advantages of not having to support old versions of
the monitor is that DAEMON can now take full advantage of new features
in the current version of the monitor.  This version  of  DAEMON  does
exactly  that.   We have placed all code that is not necessary for the
support of the 7.02  monitor  under  the  FTUNSUPPORTED  feature  test
switch  which is turned off.  We chose to do this rather than deleting
the code from the source for reference purposes  only.   We  have  not
attempted  to  assemble  DAEMON  with  the  FTUNSUPPORTED feature test
switch turned on and we expressly  do  not  support  DAEMON  with  the
switch  turned  on.  If you choose to turn the switch on, you do so at
your own risk.   This  feature  test  switch  and  the  code  that  it
surrounds will be removed for the next release of the monitor.

This version of DAEMON no longer supports the DUMP or  DCORE  commands
(they  have  been  removed from the monitor) or the .DCORE function of
the DAEMON UUO.  The DCORE functionality doesn't lend itself  well  to
the  virtual  memory  environment  and  the move to KL-PAGING made the
problems even worse.

All other monitor commands that used to invoke DAEMON have either been
removed  or  fully implemented in the monitor.  This means that DAEMON
need not attach itself to  users  terminals  and  open  itself  up  to
possible security violations.  All code to do so has been placed under
the FTUNSUPPORTED feature test switch  and  thereby  removed.   DAEMON
will now detach itself at startup and remain detached.

DAEMON now takes full advantage of the monitor code to read and  write
the  swapping  space if a JOBPEK is done on a swapped-out job.  DAEMON
does not expect the JOBPEK UUO to fail (with the possible exception of
an  address  check) and will report such a condition if it occurs.  No
attempt is made to read or write the  swapping  space  if  the  JOBPEK
fails  and  all  such  code  has  been  placed under the FTUNSUPPORTED
feature test switch.

If DAEMON detects a condition that  it  decides  someone  should  know
about,  it  will  output  a  message  on  device OPR and send the same
message to the GALAXY system using the  WTO  function  of  the  QUEUE.
UUO.   Every  attempt  has been made to provide as much information as
possible with the message to allow problems to be debugged.

This version of DAEMON supports both the KI-PAGING and KL-PAGING modes
for the running monitor and crash file analysis.

DAEMON support for FACT accounting has been placed  under  one  master
feature  test  switch,  FTFACT,  in  preparation for the move to usage
accounting.  The feature test switch is turned on by default, but  may
be turned off if FACT accounting is not desired.  FACT accounting will
be turned off by default for the next monitor release.

This version of DAEMON has been  tested  under  7.02  on  KL,  and  KS
processors  and  supersedes  all  previous  versions.  It will not run
DMN21.DOC                                                       Page 7


correctly on KI processors.



2.0  EXTERNAL CHANGES

See above



3.0  KNOWN BUGS AND DEFICIENCIES

None



4.0  INSTALLATION INSTRUCTIONS

DAEMON searches JOBDAT, MACTEN, and UUOSYM.  To build DAEMON, type the
monitor commands:

        .LOAD DAEMON
        .SAVE DAEMON

Be sure to rename your previous version of  DAEMON  to  DAExxx.EXE  on
SYS:  and then copy the new .EXE file to SYS:.



5.0  INTERNAL CHANGES

Edit #

760    Clean up the  RP20  error  reporting  logic  to  make  it  less
       dependent on assembled-in parameters.

761    Update edit number for 7.02, remove the FT603  conditional  and
       make some cosmetic changes.

762    Unconditionally link the state of FTCHKPNT to that  of  FTFACT.
       You  can no longer assemble DAEMON with FTFACT off and FTCHKPNT
       on.  This will allow us to turn off  the  FTFACT  feature  test
       switch in preparation for the move to usage accounting.

763    Add the FT701 feature test switch that will surround code  that
       must exist for pre-702 monitors.  The default value will be on.
       The feature test switch and the code that it surrounds will  be
       removed on 703 ship.

764    Do some more general code cleanup.

765    Remove support for the SAVE and SSAVE commands.  These commands
       were only invoked by .SAV file writes for virtual programs.

766    Support KL-paging monitors;  desupport E,  D,  VERSION,  DCORE,
DMN21.DOC                                                       Page 8


       and DUMP commands for 7.02 monitors.

767    SPR #32036    BCM    26-Mar-82
       Increase the maximum number  of  CPUs  we  can  report  to  the
       current supported operating system maximum.

770    It has become nearly impossible to continue supporting both the
       current  and previous versions of the monitor with DAEMON.  Fix
       DAEMON to determine if it is running with a previous version of
       the  monitor  and  run the old version of DAEMON if it is.  The
       previous version  is  assumed  to  have  a  name  of  the  form
       DAExxx.EXE,  where xxx is the monitor version, e.g., DAE701 for
       the 701 monitor.  We can also remove a great deal of code  that
       was necessary to support pre-702 monitors as a result.  Instead
       of removing this code completely from the source, it  has  been
       placed  under  the  FTUNSUPPORTED  feature  test  switch.  This
       version of DAEMON has only been tested with that switch  turned
       off  and  we  expressly  do  not support DAEMON with the switch
       turned on.  The switch is there strictly for reference purposes
       and  all  code  contained  within the scope of the feature test
       switch will be removed for the next release of the monitor.

771    Increase the size of the ERROR.SYS header to 5 words and add  a
       monotonically  increasing  sequence  number  in  the  new word.
       DAEMON also writes the sequence number into the EOF word at the
       end  of  the file when it writes an entry.  Everytime it starts
       up, DAEMON finds the EOF word in the file and uses that  number
       as the start for the new run.  If it can't find the EOF mark in
       the file for some reason, DAEMON will try  to  find  the  first
       sequence number in the file.  It then adds the size of the file
       divided by the size of the smallest error entry to that  number
       and  uses that as the sequence number.  As part of this change,
       DAEMON will continue to use ERROR.Xnn instead of  ERROR.SYS  if
       it finds an .Xnn file.  This means that the sequence numbers in
       the  files  should  start  in  ERROR.SYS  and   increase   thru
       ERROR.Xnn.  note that this means that all ERROR.* files must be
       processed as a  unit.   See  the  7.02  beware  file  for  more
       information.

772    Symptom:  The first entry in ERROR.Xnn is wrong size,  and  may
       contain  pieces  of  DAEMON  code.  Also, many re-sync pointers
       generated.

       Diagnosis:  If you get an I/O error in ERRFIN while writing  an
       entry  into  the  file, we create an ERROR.Xnn+1 file, and then
       restart ERRFIN.  unfortunately P4 (which should  point  to  the
       last  word  written  into ERABUF), may have been changed into a
       word count by ERFILL.  When we get to ERFILL again, it tries to
       convert  P4  into  a  word count (again!).  Things go down hill
       from there.

       Fix:  Restore old value of P4 before restarting ERRFIN.
DMN21.DOC                                                       Page 9


6.0  SUGGESTIONS

None.



[End of DMN21.DOC]

[DMN20.DOC is appended as an integral part of DAEMON.DOC]
DMN20.DOC                                                      Page 10


DAEMON.DOC -- Changes from V17(732) to 20(757)
June 1980



1.0  SUMMARY

DAEMON version 20 is primarily a maintenance release  to  DAEMON  with
fixes  to  version  17  which  was released with the 7.00 monitor.  It
contains some significant changes from the 6.03A version as  described
in DMN17.DOC.

This version of DAEMON has been tested under 6.03A, 7.00, and 7.01  on
KI, KL, and KS processors and supersedes all previous versions.



2.0  EXTERNAL CHANGES

Save files may now be written into SFDs.



3.0  KNOWN BUGS AND DEFICIENCIES

Save files can only be written on a disk type device.

DAEMON files written by SAVE, DCORE, DUMP, and the  like  may  not  be
written to device LIB:  or to a Logical Name device.



4.0  INSTALLATION INSTRUCTIONS

DAEMON searches UUOSYM and loads with no other files.



5.0  INTERNAL CHANGES

Edit #

733    Fix KLERR routine to correctly process entries  on  cpus  other
       than the boot CPU

734    Change the format of the ERPTBK table to use 4 word entries  so
       that  the CPU number can be included in the error data returned
       by the monitor.

735    Add support for new syserr entries for 7.01 monitor.  these are
       error types 51,52,54,55,56 and 57.

736    Fix data gathering problem in entry type 56.

737    Fix SBDIAG pointer in entry type 52
DMN20.DOC                                                      Page 11


740    Make another attempt at fixing the KLERR report.

741    FIX Ill Mem Ref in massbus error routine.

742    MONBTS now writes dumps that are not a contiguous physical core
       image.   Change  PEKSPY  to  read and follow the .EXE directory
       when reading words from the disk.

743    If a user ^C's DAEMON while it  is  writing  a  DUMP/DCORE/SAVE
       file,  DAEMON doesn't release the channel which causes the user
       to get an FBM error when he trys to delete the TMP file.

744    Device OPR0 doesn't exist if FTNET is turned off or if  a  site
       hacks  their  monitor.  make DAEMON try harder to find a TTY to
       TRMOP.  to.

745    AVAIL has trouble figuring out when AVAIL.SYS started and  when
       it  ended.  Define 2 new entries, 46 and 47 which are the first
       and  last  entries  in  AVAIL.SYS.    These   entries   provide
       timestamps for AVAIL.

746    Make processing of errors durring initialization cleaner.

747    Limit the number of entries made in the disk  statistics  entry
       to avoid infinite error files if the UDB chains get screwed up.

750    Change DAEMON to use %CNSUP as the uptime instead of %NSUPT  so
       that it gets clock requests right if CPU0 isn't running.

751    Fix bug that caused error  code  2  from  JOBPEK  when  reading
       fragmented core.

752    Add code to log RP20 disk device errors.

753    Fix  routine  "CHECK"  to  force  a  FACT.SYS  update  at  each
       checkpoint.  This helps preserve more accounting data.

754    AVAIL.SYS update routines don't use ERRDEV  and  ERRPPN  to  do
       their updates.

755    Fix routine "COMPRS" to avoid creating IOWDs over 128K.

756    Allow a user  having  POKE  privileges  to  do  the  append  to
       ERROR.SYS DAEMON UUO function.

757    Look for crash files to process on  the  union  of  the  system
       search list and the system dump list.



6.0  SUGGESTIONS

None.
DMN20.DOC                                                      Page 12


[End of DAEMON.DOC]

[DMN17.DOC is appended as an integral part of DAEMON.DOC]
DMN17.DOC                                                      Page 13


DAEMON.DOC -- Changes from V16(612) to 17(732)
November 1979



1.0  SUMMARY

DAEMON version 17 is a major code rewrite from version 16.  All of the
code  specific  to  pre-6.03  monitors  has  been removed and all 6.03
specific code has been placed under a  conditional.   In  addition,  a
great  deal  of  the  code  has been rewritten to fix bugs, remove bad
code, and update the code to 7.00.

This version of DAEMON has been tested under 6.03A and 7.00 on KI, KL,
and KS processors and supersedes all previous versions.



2.0  EXTERNAL CHANGES

Save files may now be written into SFDs.



3.0  KNOWN BUGS AND DEFICIENCIES

Save files can only be written on a disk type device.

DAEMON files written by SAVE, DCORE, DUMP, and the  like  may  not  be
written to device LIB:  or to a Logical Name device.



4.0  INSTALLATION INSTRUCTIONS

See DAEMON.CTL, and DAEMON.DOC



5.0  INTERNAL CHANGES

Edit #

700    Add support for KS10 system error entries

701    Change the references to word 36 to .JBSYM (word  116).   (Used
       as  the  flag  word  for  determining  if a crash file has been
       processed by DAEMON or not)

702    Fix magtape stats entry routine

703    (SPR 10-26436)  Allow  controller  number  to  be  reported  to
       SYSERR.  Area affected:  MBDVDN

704    Add code to log DX20 device errors.  At present this means TU7x
DMN17.DOC                                                      Page 14


       tape errors reported by TAPSER.

705    Remove all code specific to  pre-603  monitors.   This  is  the
       first step in updating DAEMON for 701.

706    Add code to dump  the  CPU  Status  Block  via  error  code  63
       (.ESCSB)

707    Add code to dump the Device Status  Block  via  error  code  64
       (.ESDSB)

710    Add code to send the date/time incremental change to %SIACT  if
       the  system  date/time  changes.   Invoked  by subfunction 3 of
       error code 15.

711    Bring all the code up to 7.00 level.  Also fix a  large  number
       of bugs in the error reporting code.

712    Add code to log software events of interest via code 14.

713    Rewrite miscelaneous parts of the code to clean it up and fix a
       lot of bugs.

714    To be able to measure some sort of generic "availability" for a
       system,  make DAEMON wake up every 6 minutes and look around to
       see what the system state is.  Log this information  to  a  new
       file, SYS:AVAIL.SYS.

715    For systems with JOBN+SEGN-1 .GT.   511  (7.00  remember),  the
       GETTAB  simulation  fails  for tables indexed by job or segment
       number if the index is larger than 511.  NUMTAB only has 9 bits
       for   the   maximum  tables  size.   the  monitor  uses  JBTMXL
       explicitly for such tables.

716    For systems with a  large  number  of  (possibly  dual  ported)
       disks,  error  code  5,  information extracted from a crash may
       overflow while writing the entries for each disk.   Remove  the
       disk  stuff  from error code 5 and write a new entry (45) which
       contains the information.

717    Log node  on  and  off-line  via  sub-codes  6  and  7  of  the
       configuration status change entry.

720    If the ERPTBK table in a crashed monitor is full and EPKIDX  is
       0,  DAEMON  will loop processing the entries.  Redo the code at
       READCR to avoid this problem.

721    DAEMON  may  reattach  the  wrong  job  to  a  terminal   after
       processing  a request if the user attaches and logs out the job
       doing the request and another user logs in and detaches  before
       the  request  is completed.  Don't reattach a job to a terminal
       if the job's login time doesn't match that saved at  the  start
       of the request

722    Fix problem where DAEMON was returning a UUO error  code  while
DMN17.DOC                                                      Page 15


       processing hardware errors.

723    If an error occurs when DAEMON is detached, the error  message,
       if any, is thrown on the floor.  Use TRMOP.  function .TODSP to
       print the error message on device OPR.

724    Avoid problems with users getting a [1,2] job by always setting
       DSKFUL ERROR when DAEMON starts up.

725    Since the  700  monitor  is  capable  of  changing  the  active
       swapping  list  on  the  fly, we can no longer read SWPTAB when
       DAEMON starts up.  Read the information  from  SWPTAB  on  each
       request to read/write the swapping space.

726    TC10C tape errors are reported by SYSERR as DX10  errors.   the
       device  code  for  TC10Cs  is  724  and DAEMON assumed that any
       device code larger that 540 was an RH20.  A  complementing  bug
       in SYSERR then turned that into a DX10 error report.

727    Fix bug in PEKUSR  that  caused  swap  pointer  inconsistencies
       while reading funny space addresses.

730    Fix random error code 3 failures in DAEMON  UUO  fact  function
       caused by releasing the job without processing it if JS.DPM was
       set.

731    Yet another security fix to prevent a user getting a [1,2] job.

732    Fix routine to dump KS10 halt status block.



6.0  SUGGESTIONS

None.



[End of DMN17.DOC]