From: Dirk Van Hertem <dirk.vanhertem@ieee.org>
To: Grant Grundler <grundler@parisc-linux.org>
Cc: linux-parisc@vger.kernel.org
Subject: Re: random freezes B2000 running debian hppa lenny
Date: Mon, 18 May 2009 11:34:27 +0200 [thread overview]
Message-ID: <4A112BA3.5000406@ieee.org> (raw)
In-Reply-To: <20090518030411.GB10973@lackof.org>
Hello Grant,
Thank you for the response.
I am sorry to say, but I more or less understand your email, yet I have
no idea what to do with it...
How do I proceed to get this fixed? I am willing to learn something
about debugging, but I would need someone to hold my hand (I do not know
C, I have only a basic understanding on how the kernel works,...). I
have the impression that the problem is not gigantic, but might be
something simple to solve, maybe even just patching the sata_promise.c
file? Yet, I do not have an idea where and how to start looking...
I can give you access to the machine if that would help (note that this
would last only one hour or so, than it will hang automatically and I
would need to reboot it ;).
So my questions are:
* Is this something that can be solved? (in a reasonable time frame, I
want to use the hard disks for storage ;-))
* by me? (If so, how?)
* Must I forward this to the maintainers of this promise card within the
kernel, or is this a parisc thing?
>> I attached the "ser pim" output to this email, I hope it helps. If you
>> need any other information, please ask, I hope I'll be more responsive
>> next time...
>
> HPMC Chassis Codes = 2cbf0 2500b 2cbf2 2cbfc
>
> Looking at:
> ftp://ftp.parisc-linux.org/docs/platforms/A2375-90004.pdf
>
> CBF0 HPMC handling initiated.
> CBF2 Invalid length for OS HPMC handler
> CBFC Branch to OS HPMC failed
>
> Just means the linux HPMC handler didn't get called. Hrm. This worked once
> upon a time and I thought got fixed 6-8 months ago.
>
> Next thing I look at is:
> RUN_ADDR = 0xc1bff0fffed08040
>
> So whatever is at 0xfffed08040 (40 bit addresses physically)
> was the either the victim or the culprit. Often this is a MMIO BAR
> plus some offset (probably 0x40). I suggest looking in the
> Controller driver for that offset and where it's used in the
> initialization
>
In sata_promise.c, there is the following code:
/* per-port ATA register offsets (from ap->ioaddr.cmd_addr) */
PDC_PKT_SUBMIT = 0x40, /* Command packet pointer addr*/
This PDC_PKT_SUBMIT is than used again here:
static void pdc_packet_start(struct ata_queued_cmd *qc)
{
struct ata_port *ap = qc->ap;
struct pdc_port_priv *pp = ap->private_data;
void __iomem *host_mmio = ap->host->iomap[PDC_MMIO_BAR];
void __iomem *ata_mmio = ap->ioaddr.cmd_addr;
unsigned int port_no = ap->port_no;
u8 seq = (u8) (port_no + 1);
VPRINTK("ENTER, ap %p\n", ap);
writel(0x00000001, host_mmio + (seq * 4));
readl(host_mmio + (seq * 4)); /* flush */
pp->pkt[2] = seq;
wmb(); /* flush PRD, pkt writes */
writel(pp->pkt_dma, ata_mmio + PDC_PKT_SUBMIT);
readl(ata_mmio + PDC_PKT_SUBMIT); /* flush */
}
This function is then used in case a ATA_PROT_DMA is called.
It seems like that this might be the spot where the problem might be (as
you indicate further down). I will test (just for the sake of it) if it
will stop crashing if I turn DMA down (if that is possible with a raid
device)
>
> System Responder Path = 0x00ffffff0a010400
>
> This is supposed to match the HPA (Host Phys Address) of one of the
> devices that is listed at the beginning of the parisc-linux boot.
> I'm not sure it' accurate though.
I will try to check that this evening (I hope this will be something
that will appear in my minicom screen?
>
> And then the last part of the PIM that's interesting basically confirms
> what we have been guessing:
>
> '9000/785 B,C,J Workstation HPMC PIM Analysis (per-CPU)', rev 0, 1304 bytes:
>
> A Data I/O Fetch Timeout occurred while CPU 0 was
> requesting information from a device at the path 10/1/4/0 (PCI slot 4).
>
> I forgot how to check if the "I/O Fetch Timeout" occurred because
> the IOMMU already went "fatal" (DMA was attempted to an unmapped address).
>
>
> FYI, I also found the C3000 service manual here:
> http://sysdoc.doors.ch/HP/lpv38336.pdf
>
> and uploaded a copy to:
> ftp://ftp.parisc-linux.org/docs/platforms/c3000-service.pdf
>
> TODO: add an entry to http://www.parisc-linux.org/documentation/
>
> hth,
> grant
Thanks again,
Dirk
--
Dirk Van Hertem Dirk.VanHertem@esat.kuleuven.be
Electrical Engineering Department http://www.esat.kuleuven.be/electa
K.U. Leuven, ESAT-ELECTA tel: +32-16-32.18.95
10, Kasteelpark Arenberg, B-3001 Heverlee fax: +32-16-32.19.85
next prev parent reply other threads:[~2009-05-18 9:34 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <49FB108B.9030803@ieee.org>
2009-05-03 11:25 ` random freezes B2000 running debian hppa lenny Grant Grundler
2009-05-03 23:07 ` Dirk Van Hertem
2009-05-15 22:40 ` Dirk Van Hertem
2009-05-18 3:04 ` Grant Grundler
2009-05-18 9:34 ` Dirk Van Hertem [this message]
2009-05-18 16:35 ` Grant Grundler
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=4A112BA3.5000406@ieee.org \
--to=dirk.vanhertem@ieee.org \
--cc=grundler@parisc-linux.org \
--cc=linux-parisc@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.