From: "Luck, Tony" <tony.luck@intel.com>
To: linux-ia64@vger.kernel.org
Subject: RE: [Linux-ia64] SAL error record logging/decoding
Date: Wed, 21 May 2003 21:51:58 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590723705977@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590723705660@msgid-missing>
Some minor issues with the "salinfo" tool.
1) It doesn't compile :-(
mca.c: In function `ia64_log_processor_info_print':
mca.c:961: `printf' undeclared (first use in this function)
mca.c:961: (Each undeclared identifier is reported only once
mca.c:961: for each function it appears in.)
make: *** [mca.o] Error 1
I added an "extern int printf(char *, ...);" declaration rather
than risking including <stdio.h>
2) I crashed my machine with an injected machine check, and
then rebooted. All four of the /proc/sal/cpuX/mca files had
a copy of the same error record. Echoing "clear" to one of
them made them all go away.
I think this is normal ... but it may require some interesting
documentation to say why things work like this.
3) The salinfo tool uses exponential increases in the size of the
read that it tries from the /proc/sal/cpuX/mca file. My particular
error record was 5560 bytes long and strace reports:
read(3, ""..., 1024) = 1024
read(3, ""..., 1024) = 1024
read(3, ""..., 2048) = 2048
read(3, ""..., 4096) = 1464
read(3, "", 2632) = 0
A hypothetically large enough record would result in salinfo reading
more than a page in one piece through /proc, which I think breaks the
way arch/ia64/kernel/salinfo.c is interfacing with /proc. Perhaps
the salinfo utility should just grow the buffer in 1k increments with
alloc += 1024;
rather than using
alloc *= 2;
4) Reading this way is also kind of weird in that every partial read
results in the kernel going back to re-fetch the data from the SAL
with another call to ia64_sal_get_state_info(). One kludgy fix would
be to have the salinfo tool use "getpagesize()" as the initial size
and increment for the buffer it uses (at least for kernels with a 16k
page size ... error records should generally be small enough for a
single slurp). Though we'd still do one extra call to get the nbytes==0
return to signify the EOF (unless we assume the partial read got us
all the data?)
next prev parent reply other threads:[~2003-05-21 21:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-07 23:41 [Linux-ia64] SAL error record logging/decoding Bjorn Helgaas
2003-05-08 0:05 ` David Mosberger
2003-05-08 0:13 ` Luck, Tony
2003-05-08 19:32 ` Bjorn Helgaas
2003-05-20 22:58 ` Bjorn Helgaas
2003-05-21 18:06 ` Luck, Tony
2003-05-21 20:48 ` Luck, Tony
2003-05-21 21:51 ` Luck, Tony [this message]
2003-05-22 21:29 ` Bjorn Helgaas
2003-05-23 0:24 ` Bjorn Helgaas
2003-05-23 15:42 ` Luck, Tony
2003-05-28 23:26 ` Bjorn Helgaas
2003-05-29 0:07 ` Keith Owens
2003-05-29 1:34 ` Bjorn Helgaas
2003-05-29 1:37 ` Keith Owens
2003-05-29 20:49 ` Luck, Tony
2003-05-29 21:31 ` Bjorn Helgaas
2003-05-29 21:47 ` Luck, Tony
2003-05-29 22:38 ` Bjorn Helgaas
2003-05-29 23:33 ` Luck, Tony
2003-05-30 11:56 ` Matthew Wilcox
2003-05-30 20:27 ` Bjorn Helgaas
2003-05-30 20:31 ` Bjorn Helgaas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590723705977@msgid-missing \
--to=tony.luck@intel.com \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox