From owner-freebsd-scsi Mon Aug 5 18:54:45 2002 Delivered-To: freebsd-scsi@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 408B337B400; Mon, 5 Aug 2002 18:54:43 -0700 (PDT) Received: from warez.scriptkiddie.org (uswest-dsl-142-38.cortland.com [209.162.142.38]) by mx1.FreeBSD.org (Postfix) with ESMTP id A16D943E65; Mon, 5 Aug 2002 18:54:42 -0700 (PDT) (envelope-from lamont@scriptkiddie.org) Received: from [192.168.69.11] (unknown [192.168.69.11]) by warez.scriptkiddie.org (Postfix) with ESMTP id D83DB62D1A; Mon, 5 Aug 2002 18:54:41 -0700 (PDT) Date: Mon, 5 Aug 2002 18:55:03 -0700 (PDT) From: Lamont Granquist To: Terry Lambert Cc: "Justin T. Gibbs" , Zhihui Zhang , , Subject: Re: transaction ordering in SCSI subsystem In-Reply-To: <3D4E1E0D.582EBE7C@mindspring.com> Message-ID: <20020805184018.F2654-100000@coredump.scriptkiddie.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Sun, 4 Aug 2002, Terry Lambert wrote: > Operations which can *not* occur concurrently are requested only > serially. This serialization is called a "stall barrier": the > next operation is not attempted until the previous operation has > been committed to stable storage. > > Operations at the CAM layer are proxied transactions; as Justin > stated, operations queued to CAM are guaranteed to be queued to > the underlying physical device in the same order. So it sounds like CAM has two features which aid in preserving data integrity. First it serializes operations with the same tag and second it implements stall barriers in those pipelines? Is there a good SCSI reference out there for someone interested more in the features of CAM and the upper layers of the protocol? Also, at a higher level in the VFS layer, which operations are tagged the same? Are operations on the same vnode tagged the same and then write barriers are introduced appropriately between data and metadata writes? Are operations on different vnodes always different tags? And how is the consistancy of something like the block allocation table maintained? [ p.s. thanks quite a lot for that last response ] To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message