From owner-freebsd-commit Thu Oct 12 11:34:35 1995 Return-Path: owner-commit Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id LAA24554 for freebsd-commit-outgoing; Thu, 12 Oct 1995 11:34:35 -0700 Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id LAA24541 for cvs-all-outgoing; Thu, 12 Oct 1995 11:34:31 -0700 Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id LAA24531 for cvs-sys-outgoing; Thu, 12 Oct 1995 11:34:29 -0700 Received: from ref.tfs.com (ref.tfs.com [140.145.254.251]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id LAA24526 ; Thu, 12 Oct 1995 11:34:25 -0700 Received: (from julian@localhost) by ref.tfs.com (8.6.11/8.6.9) id LAA05479; Thu, 12 Oct 1995 11:33:36 -0700 From: Julian Elischer Message-Id: <199510121833.LAA05479@ref.tfs.com> Subject: Re: cvs commit: src/sys/scsi sd.c st.c To: dufault@hda.com (Peter Dufault) Date: Thu, 12 Oct 1995 11:33:36 -0700 (PDT) Cc: julian@freefall.freebsd.org, CVS-commiters@freefall.freebsd.org, cvs-sys@freefall.freebsd.org In-Reply-To: <199510120945.FAA02078@hda.com> from "Peter Dufault" at Oct 12, 95 05:45:10 am X-Mailer: ELM [version 2.4 PL24] Content-Type: text Content-Length: 1915 Sender: owner-commit@FreeBSD.org Precedence: bulk > > > > > julian 95/10/11 19:02:06 > > > > Modified: sys/scsi sd.c st.c > > Log: > > Ack! > > sometime around 1.51, the check for minphys dissappeared out of > > transfers for disks.. > > we weren't hecking that the adapter could handle a transfer of > > the size we were requesting.. > > Peter!? > > :) > > (Yeah, change scsi_read and scsi_write. Next time I'll look at > the source before responding.) > > The SCSI drivers use rawread and rawrite, which go through > scsi_strategy and so should be calling scsi_minphys. There may be > a bug, but IMHO you addressed it in the wrong place. > > -- > Peter Dufault Real Time Machine Control and Simulation > HD Associates, Inc. Voice: 508 433 6936 > dufault@hda.com Fax: 508 433 5267 > no the call for st.c needs to know if it's a variable of fixed tape, because chopping a transfer in a variable tape is a nono but doing it on a fixed-block tape is ok.. it has to be done AFTER physio, so that physio can loop and do the rest of the transfer on a second try.. thus it must be in a strategy routine.. so by logic it must be in st_strategy. As for sd.c from the way I read it last night, scsi_strategy wasn't called for the disk driver. looking at it again, I see that conf.c references sdstrategy rather than sd_strategy. so sdstrategy calls scsi_strategy which calls scsi_minphys and sd_strategy. ok so if it was getting called, why are we getting all these errors suddenly? (the reason I was in there looking is because people are seeing the "more than 33 DMA segs" errors from things such as dump and newfs that do large io operations on raw devices. of course I can't make it happen myself :) the tape version won't work if physio is already called, and I notice that physio itself does a minphys to 64K (this needs further investigation) I'll correct the commits today. julian