From owner-cvs-src-old@FreeBSD.ORG Thu Oct 7 21:57:02 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 224DE1065679 for ; Thu, 7 Oct 2010 21:57:02 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0E7378FC18 for ; Thu, 7 Oct 2010 21:57:02 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id o97Lv1CS031505 for ; Thu, 7 Oct 2010 21:57:01 GMT (envelope-from ken@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id o97Lv1i2031504 for cvs-src-old@freebsd.org; Thu, 7 Oct 2010 21:57:01 GMT (envelope-from ken@repoman.freebsd.org) Message-Id: <201010072157.o97Lv1i2031504@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to ken@repoman.freebsd.org using -f From: "Kenneth D. Merry" Date: Thu, 7 Oct 2010 21:56:10 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/share/man/man4 mps.4 src/sys/dev/mps mps.c mps_sas.c mpsvar.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Oct 2010 21:57:02 -0000 ken 2010-10-07 21:56:10 UTC FreeBSD src repository Modified files: share/man/man4 mps.4 sys/dev/mps mps.c mps_sas.c mpsvar.h Log: SVN rev 213535 on 2010-10-07 21:56:10Z by ken Turn on serialization of task management commands going down to the controller, but make it optional. After a problem report from Andrew Boyer, it looks like the LSI chip may have issues (the watchdog timer fired) if too many aborts are sent down to the chip at the same time. We know that task management commands are serialized, and although the manual doesn't say it, it may be a good idea to just send one at a time. But, since I'm not certain that this is necessary, add a tunable and sysctl variable (hw.mps.%d.allow_multiple_tm_cmds) to control the driver's behavior. mps.c: Add support for the sysctl and tunable, and add a comment about the possible return values to mps_map_command(). mps_sas.c: Run all task management commands through two new routines, mpssas_issue_tm_request() and mpssas_complete_tm_request(). This allows us to optionally serialize task management commands. Also, change things so that the response to a task management command always comes back through the callback. (Before it could come via the callback or the return value.) mpsvar.h: Add softc variables for the list of active task management commands, the number of active commands, and whether we should allow multiple active task management commands. Add an active command flag. mps.4: Describe the new sysctl/loader tunable variable. Sponsored by: Spectra Logic Corporation Revision Changes Path 1.3 +15 -1 src/share/man/man4/mps.4 1.3 +13 -0 src/sys/dev/mps/mps.c 1.5 +209 -53 src/sys/dev/mps/mps_sas.c 1.2 +4 -0 src/sys/dev/mps/mpsvar.h