From owner-aic7xxx@FreeBSD.ORG Fri Aug 3 05:00:55 2007 Return-Path: Delivered-To: aic7xxx@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3FC0616A41B for ; Fri, 3 Aug 2007 05:00:55 +0000 (UTC) (envelope-from swschlosser@gmail.com) Received: from rv-out-0910.google.com (rv-out-0910.google.com [209.85.198.189]) by mx1.freebsd.org (Postfix) with ESMTP id 180C713C4B6 for ; Fri, 3 Aug 2007 05:00:55 +0000 (UTC) (envelope-from swschlosser@gmail.com) Received: by rv-out-0910.google.com with SMTP id f1so491953rvb for ; Thu, 02 Aug 2007 22:00:54 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=HtZeqqGZMCLwYSYZLJTgN3gd+NFZ5r88kCOGBPO+ZcESJndRtDAdmVUiInU5BhuVLAH001IAyZP3eZvKW4TLdpCPBH4SwEEOji97BIljD4s0xPNR3EGZQOMwRGRbbEdFQqYWTs/r78GmZuzyDOaRpTVx8X84FSkWZHl3PKbfDu0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=bpC9/F/6ylGnU4w8gpLL7fZg6HE/+15xNNkS5x6+tu1o2oSWWPlZXfzGjV+ZIRQTQ4jS/XnSDwDcD3tRDdhEBORyxnWYLAOAweemhUvtEb05yUF4ydkrHPfkci1NFsMX3jletrnoj7SYQICDHNM75pzvrwyWmHXCMX/M9CYzedA= Received: by 10.143.33.19 with SMTP id l19mr117873wfj.1186115717306; Thu, 02 Aug 2007 21:35:17 -0700 (PDT) Received: by 10.143.40.19 with HTTP; Thu, 2 Aug 2007 21:35:17 -0700 (PDT) Message-ID: <4d362c350708022135y1f7e9abbx428ae12785cfbe45@mail.gmail.com> Date: Fri, 3 Aug 2007 00:35:17 -0400 From: "Steve Schlosser" To: aic7xxx@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: Command queuing in Rev 7.0? X-BeenThere: aic7xxx@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Adaptec Device Drivers in FreeBSD and Linux List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2007 05:00:55 -0000 Hello I have been doing some experiments with command queuing, and I'm having trouble confirming that my system is actually queuing requests at the disk. Here is my setup. I have two machines, an "old" one and a "new" one, each with an Adaptec 29160 hooked up to identical Seagate Cheetah10k7 disks. The old system is running Debian, kernel version 2.4.27, and dmesg reports that the aic7xxx driver Rev 6.2.36 is running. The new system is running Ubuntu 7.04, kernel version 2.6.20.3, and aic7xxx Rev 7.0. I control the queue depth by setting global_tag_depth when I load the module. I'm running a simple microbenchmark which issues random 4KB reads to the disk, varying the number of concurrent requests outstanding at the disk from 1 (no queuing) to 253 (the maximum value allowed for global_tag_depth). In both cases, dmesg and /proc/scsi/aic7xxx/ both report the queue depth that I set when I load the module. On the old system, bandwidth increases as I increase queue depth, presumably because the disk has more scheduling choices. Bandwidth scales from 0.7MB/s for one outstanding request to 2.0MB/s for 128 outstanding requests. However, with the new system, I don't get the same increase in bandwidth - it stays at 0.7MB/s regardless of the queue depth setting. This suggests to me that requests are not getting queued at the disk. Any ideas why the newer driver might not be queuing requests? Is there another layer in the driver stack that I should be checking on? Thanks. -steve