From: Berkley Shands <berkley@cs.wustl.edu>
To: gibbs@scsiguy.com, linux-kernel@vger.kernel.org,
linux-scsi@vger.kernel.org, pbadari@us.ibm.com
Subject: Re: [BUG] x86_64 pci_map_sg modifies sg list - fails multiple map/unmaps
Date: Wed, 7 Jan 2004 09:35:18 -0600 (CST) [thread overview]
Message-ID: <200401071535.i07FZIX0000020986@mudpuddle.cs.wustl.edu> (raw)
Running with the force segment merge OFF panics the processor after
about 1000 scsi retries. the error given, also in pci-gart.c, is
pci_map_area overflow 4096 bytes
So a brain dead repair kills the kernel. Someone clearly needs to figure
out where to correct the merge of the sg lists. A bit of doc on the iommu
and the 4096 byte limit would be nice too :-)
I see that is is the aborting of an SCB that causes the sg list halt.
Jan 7 09:18:32 typhoon kernel: DevQ(0:6:0): 0 waiting
Jan 7 09:18:32 typhoon kernel: (scsi0:A:2:0): SCB 0x46 - timed out
Jan 7 09:18:32 typhoon kernel: Recovery SCB completes
Jan 7 09:18:32 typhoon kernel: scsi0: Issued Channel A Bus Reset. 3 SCBs aborted
Jan 7 09:18:46 typhoon kernel: Did it again, boss 0000:01:03.0
Since the sg list merges into one i/o list, simply adding s->length = 4096
back into the list seems to keep the kernel up. a better if slightly less
stupid fix is to add up the remaining sg list lengths, and ajust
the sg[0] entry to sum to the correct value.
/* BUG_ON(s->length == 0); */
if (! s->length)
{
unsigned long zero = sg[0].length;
unsigned long remain = 0;
int t = 0;
BUG_ON(i != 1); /* some other error here */
for (t = i + 1; t < nents; t++)
remain += sg[t].length; /* collect remaining sizes */
zero -= remain; /* deduct what is left on the list */
sg[0].length = zero / 2;
sg[1].length = zero / 2; /* allocate uniformly */
size = zero / 2; /* reduce oversize first entry */
printk(KERN_WARNING "Did it again, boss %s\n", dev->slot_name);
}
The better solution is to have the upper layer fix the sg list, or
have some marker that the list was diddled, and save the old entries
to put it back.
berkley
next reply other threads:[~2004-01-07 15:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-07 15:35 Berkley Shands [this message]
2004-01-07 19:19 ` badari
-- strict thread matches above, loose matches on Subject: below --
2004-01-07 16:33 Berkley Shands
[not found] <200401051929.i05JTsM0000014248@mudpuddle.cs.wustl.edu.suse.lists.linux.kernel>
[not found] ` <20040105112800.7a9f240b.davem@redhat.com.suse.lists.linux.kernel>
2004-01-05 21:02 ` Andi Kleen
2004-01-05 21:01 ` David S. Miller
2004-01-05 21:31 ` Andi Kleen
2004-01-06 0:05 ` James Bottomley
2004-01-06 3:06 ` Andi Kleen
2004-01-06 3:04 ` David S. Miller
2004-01-06 3:14 ` James Bottomley
[not found] <2938942704.1073325455@aslan.btc.adaptec.com.suse.lists.linux.kernel>
[not found] ` <m3brpi41q0.fsf@averell.firstfloor.org.suse.lists.linux.kernel>
[not found] ` <2997092704.1073333041@aslan.btc.adaptec.com.suse.lists.linux.kernel>
2004-01-05 20:58 ` Andi Kleen
2004-01-05 20:00 Berkley Shands
2004-01-05 19:29 Berkley Shands
2004-01-05 19:28 ` David S. Miller
2004-01-05 17:57 Justin T. Gibbs
2004-01-05 19:22 ` David S. Miller
2004-01-05 19:41 ` Badari Pulavarty
2004-01-05 19:47 ` Andi Kleen
2004-01-05 20:04 ` Justin T. Gibbs
2004-01-05 20:35 ` David S. Miller
2004-01-05 21:10 ` Andi Kleen
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=200401071535.i07FZIX0000020986@mudpuddle.cs.wustl.edu \
--to=berkley@cs.wustl.edu \
--cc=gibbs@scsiguy.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=pbadari@us.ibm.com \
/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
all inboxes | Powered by JetHome®