vmunix: zs0: parity error ignored
Greg Earle
earle at poseur.jpl.nasa.gov
Thu Aug 2 14:35:16 AEST 1990
>Sun maintenance reports that lots of people have complained about this but
>that no patch exists. They say that the problem was always there, and the
>only difference between this and earlier releases is that the message is
>printed.
The reason that no patch exists is because `zs0: parity error ignored' is
a message which is logged to `syslog' at priority level `kern.err'. If
you look at the default /etc/syslog.conf file, you will see that all
kernel messages of level `kern.debug' and higher (which includes
`kern.err') are logged to the console and /var/adm/messages:
*.err;kern.debug;auth.notice;user.none /dev/console
*.err;kern.debug;daemon,auth.notice;mail.crit;user.none /var/adm/messages
You will also note that `kern.err' messages will be sent to the user
`operator' if such a user exists and is logged on:
*.alert;kern.err;daemon.err;user.none operator
What I (speaking for myself, and not for Sun Microsystems, Inc., my
employer) might recommend, for those who are too weak of heart to consider
adb'ing the kernel, is to remove the kernel messages from being sent to
the console and to /var/adm/messages, and instead send them to a file of
their own:
*.err;auth.notice;user.none /dev/console
*.err;daemon,auth.notice;mail.crit;user.none /var/adm/messages
kern.debug /var/log/syslog.kernel
or something similar. This has the deleterious effect of merely keeping
them from blatting on your console; they still fill up just as much disk
space as if they were going to /var/adm/messages, and it makes for one
more logging file to remember/worry about. On the other hand, "Syslog Is
Your Friend!" and you should take advantage of its capabilities.
On the other hand, if nuking them from the kernel really toots your
whistle ...
>I would like to convince my machine to stop printing this message!
>
>Upon perusal of my /vmunix with my trusty `adb':
>
> _zsa_srint+0x70: sethi %hi(0xf80f7c00), %o1
> _zsa_srint+0x74: or %o1, 0x153, %o1 ! -0x7f082ad
> _zsa_srint+0x78: and %o2, 0x7f, %o2
> _zsa_srint+0x7c: call _log
>
> -0x7f082ad?s
> _zsops_async+0x2f: zs%d: parity error ignored
>
>`strings' confirms that there is only one string of the above form in the
>kernel.
First, note that this is probably a SPARCstation kernel, since a 4/370
GENERIC kernel I just checked had the `call _log' instruction at
`zsa_srint+0x90'.
Secondly, the *second* call to log() in zsa_srint() is the one that emits
zs0: parity error went up
which is much less prevalent or commonplace than `parity error ignored',
but one might still wish to supress that as well.
Thus, the *first* *2* calls to log() in each of the following are what you
want to NOP:
/sys/`arch -k`/OBJ/zs_asynch.o zsa_srint()
/sys/`arch -k`/OBJ/mcp_asynch.o mcpa_srint()
There are also 2 calls to log() for these 2 messages in
/sys/`arch -k`/OBJ/mti.o mtiresponse()
(The latter two files/routines handle the cases for the ALM-2 and ALM-1,
respectively; the first - zsa_async.o/zsa_srint() - are for the CPU board
serial ports)
but determining which call to log() corresponds to the 2 desired messages
is a lot harder. On the Sun-3, the first 2 calls to log() in
mtiresponse() are the calls for the `parity error ignored' and `parity
error went up'; alas, the Sun-4 compiler does something different with the
same code and thus the first 2 calls are not the same. Hopefully not too
many of you are using an ALM-1 board on a Sun-4 these days (^:
>Looks to me like I should do:
>
> # cp /vmunix /vmunix.save
> # adb -w /vmunix
> _zsa_srint+0x7c?W 0x1000000
> ...xxxxxx = 01000000...
> _zsa_srint+0x7c?i
> _zsa_srint+0x7c: nop
> ^D
> # /etc/reboot
I would do instead (for just the simple `zs#: parity error ignored' case)
# adb -w -k /vmunix /dev/mem
_zsa_srint+0x7c?W 0x1000000
...xxxxxx = 01000000...
_zsa_srint+0x7c/W 0x1000000
...xxxxxx = 01000000...
^D
# (no need to reboot)
To perma-fix this, you would need to modify the 3 kernel modules that I
mentioned above (along with the 2nd call to log() in each of the
aforementioned functions to kill the `xxx#: parity error went up' case as
well) for future 4.1 kernels.
- Greg Earle
Sun Microsystems, Inc. - JPL on-site Software Support
earle at poseur.JPL.NASA.GOV (Direct)
earle at Sun.COM (Indirect)
More information about the Comp.sys.sun
mailing list