From owner-freebsd-hackers@FreeBSD.ORG Sun Apr 25 03:40:09 2010 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23E5C106566B for ; Sun, 25 Apr 2010 03:40:09 +0000 (UTC) (envelope-from qhwt+fbsd@les.ath.cx) Received: from les.ath.cx (x219233.ppp.asahi-net.or.jp [122.249.219.233]) by mx1.freebsd.org (Postfix) with ESMTP id F1B608FC12 for ; Sun, 25 Apr 2010 03:40:08 +0000 (UTC) Received: by les.ath.cx (Postfix, from userid 1000) id 7AC27749236BA; Sun, 25 Apr 2010 12:20:48 +0900 (JST) Date: Sun, 25 Apr 2010 12:20:48 +0900 From: YONETANI Tomokazu To: freebsd-hackers@freebsd.org Message-ID: <20100425032047.GA89136@les.ath.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Subject: BIO_FLUSH and ips(4) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2010 03:40:09 -0000 Hello. The ServeRAID driver, or ips(4), seems to distinguish read or write requests with a macro called ips_read_request(), which is defined as #define ips_read_request(iobuf) ((iobuf)->bio_cmd == BIO_READ) in its strategy routine and a few other places. So when the request is BIO_FLUSH, the ips driver issues a write command (IPS_WRITE_CMD) with length == 0, right? My question is, do ServeRAID controllers treat 0-byte write command as a sync-to-disk request, or is there any command for that purpose? There's a command called IPS_CACHE_FLUSH_CMD defined in ipsreg.h, but it's not used anywhere in the normal code path. Best regards, YONETANI Tomokazu.