From owner-freebsd-scsi Mon Mar 12 15:11:47 2001 Delivered-To: freebsd-scsi@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id E4F0237B71A for ; Mon, 12 Mar 2001 15:11:43 -0800 (PST) (envelope-from bright@fw.wintelcom.net) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id f2CNAO425021; Mon, 12 Mar 2001 15:10:24 -0800 (PST) Date: Mon, 12 Mar 2001 15:10:24 -0800 From: Alfred Perlstein To: "Justin T. Gibbs" Cc: Soren Schmidt , Kevin Oberman , scsi@FreeBSD.ORG Subject: Re: Disk I/O problem in 4.3-BETA Message-ID: <20010312151024.E18351@fw.wintelcom.net> References: <20010312132922.Y18351@fw.wintelcom.net> <200103122223.f2CMNMs39959@aslan.scsiguy.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <200103122223.f2CMNMs39959@aslan.scsiguy.com>; from gibbs@scsiguy.com on Mon, Mar 12, 2001 at 03:23:22PM -0700 X-all-your-base: are belong to us. Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org * Justin T. Gibbs [010312 14:23] wrote: > >Moved to -scsi... > > > >Justin, as Mr. SCSI (can i call you that? :) ) I'd like to ask you > >something > > Although my domain name may confuse people, I'm just *A* SCSI Guy, > not *the* SCSI Guy. I think "Mr." is too close to the latter. Ah, take it like a man. :) > >> > > This is worse than expected, try to use option ATA_ENABLE_WC > >> > > and see what gives, if its not back to normal we have to look elsewhere. > >> > > >> > Mr ATA, is there no ATA command to "syncronize cache" like in SCSI? > >> > >> Yes, there is, and the ATA driver even uses it, the problem is WHEN > >> to use it. I originally made it flush the cache if a write contained > >> the BIO_ORDERED bit, but that doesn't work with softupdates.. > >> If somebody can come up with a way to tell me when I need to flush > > the write cache, then I'll happily add that.. > > > >Justin, I've heard that SCSI knows when to send sync-cache commands > >to the disks, how does the driver know when to do this based on > >the bio request? > > We don't do anything so fancy. On final close, a synchronize cache > command is issued. We don't actively enable or disable write caching, > but instead leave this up to the user to configure (via camcontrol or, > in some cases, through their controller's BIOS). SCSI also provides > "Force Unit Access" that is settable on a per-command basis, but I don't > know that the SCSI spec is clear on whether having an ordered tagged > transaction complete that has the FUA bit set guarantees that all > previous commands have actually hit the disk. Even if the spec did, > it would be dangerous to assume that all devices are compliant. I > do believe, however, that SCSI does guarantee that, even with write > caching enabled, an ordered tagged transaction will only appear on > the media after all transactions queued before it have been committed. > Again, whether a particular drive honors this is anyones guess. > > As for dd, it is not a great test of the true impact of disabling > write caching. dd pays a high latency penalty because it completely > serializes transactions to the disk. When going through the filesystem, > writes are performed in batches without preventing other transactions > from occurring in the mean time. This is when tagged queuing really > pays off. TMI dude. :) All i need to know is if there's a way to look at a particular struct bio/buf and determine if there's a need to write the data sync. Soren claims that B_ORDERED is not the magic bit that's needed, is there one? Or are we SOL on the kernel communicating the need for a block to be written "right now" and not complete until sync'd to the backing storage's non-volatile media? -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] Daemon News Magazine in your snail-mail! http://magazine.daemonnews.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message