tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: physio split the request.. cannot proceed



On Wed, Dec 25, 2013 at 02:54:19AM +0100, Emmanuel Dreyfus wrote:
> I gave it a try, and here is the result on i386:
> /netbsd: mpii0: error 27 loading dmamap

I poked some debug inside bus_dmamap_load, and came to the conclusion
that the error could be worked around by just increasing MPII_MAX_SGL
(see patch below)

The new value is a wild guess, as I do not really know what I am doing
here (explanations welcome), but now it passes the first read command:

LTFS20060D Backend ReadPosition: Partition=0, LogObject=2, FMcount=1
LTFS20039D Backend read: 524288 bytes
LTFS20010D SCSI request: [ 08 02 08 00 00 00 ] Requested length=524288
LTFS20089D Driver detail:           status = 0x0
LTFS20089D Driver detail:            errno = 0x0
LTFS20089D Driver detail:           retsts = 0x0
LTFS20089D Driver detail:           status = 0x0
LTFS20089D Driver detail:            error = 0x0
LTFS20089D Driver detail:    senselen_used = 0x0
LTFS20011D SCSI outcome: Driver status=0x00 SCSI status=0x00 Actual length=494


The dirty patch:

Index: sys/dev/pci/mpii.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/mpii.c,v
retrieving revision 1.1
diff -U1 -r1.1 mpii.c
--- sys/dev/pci/mpii.c  19 Apr 2012 17:50:51 -0000      1.1
+++ sys/dev/pci/mpii.c  27 Dec 2013 09:46:58 -0000
@@ -1755,3 +1755,3 @@
  */
-#define MPII_MAX_SGL                   (32)
+#define MPII_MAX_SGL                   (512) /* was 32 */
   


-- 
Emmanuel Dreyfus
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index