From owner-freebsd-stable@FreeBSD.ORG Tue Nov 17 23:30:55 2009 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7F0001065679 for ; Tue, 17 Nov 2009 23:30:55 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-fx0-f227.google.com (mail-fx0-f227.google.com [209.85.220.227]) by mx1.freebsd.org (Postfix) with ESMTP id 1025E8FC23 for ; Tue, 17 Nov 2009 23:30:54 +0000 (UTC) Received: by fxm27 with SMTP id 27so622370fxm.3 for ; Tue, 17 Nov 2009 15:30:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:subject:x-enigmail-version:content-type :content-transfer-encoding; bh=hR+OoMFR7cx8I+1uLxv5ffhyxD9CdKb/aPliBh+NCVU=; b=VDSAO7aYK/GAn6PsZH1dnjrzqAGXb/pJJ3D/XFFXXUB5caVjF6yPNmKCJ7wx2QZhQh ziUavjzFlxuk211nOAwSqOJyJKVWt2LTaCsHcaWo17vyHBCTuNkmjUvVXb420aER9re8 bMGwzFoEoge+KhYKcQM//FV6dvg7M/dZkrJJE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:subject :x-enigmail-version:content-type:content-transfer-encoding; b=Sdpig+jOHRKSOPuj5QYZ5gBlBmArtkb44pp3FFk4xQafWXcBjCBEh8fO0f3dw69NUW KSsQdwsFY2i5vIaAGR+iZLGhot7ZkP3ZSZ2xR35jqWyZ7RrjsutmMeGum6HO38Y2AIn6 qn8ipAfKgGH3Df51NV9mTjD7jowNqDIEwnY0s= Received: by 10.223.102.130 with SMTP id g2mr83882fao.52.1258500654005; Tue, 17 Nov 2009 15:30:54 -0800 (PST) Received: from mavbook.mavhome.dp.ua (pc.mavhome.dp.ua [212.86.226.226]) by mx.google.com with ESMTPS id 13sm588300fxm.1.2009.11.17.15.30.53 (version=SSLv3 cipher=RC4-MD5); Tue, 17 Nov 2009 15:30:53 -0800 (PST) Sender: Alexander Motin Message-ID: <4B03322A.2080608@FreeBSD.org> Date: Wed, 18 Nov 2009 01:30:50 +0200 From: Alexander Motin User-Agent: Thunderbird 2.0.0.23 (X11/20090901) MIME-Version: 1.0 To: FreeBSD Stable X-Enigmail-Version: 0.96.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: HEADS UP: major CAM ATA MFC X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 23:30:55 -0000 Hi. I want to notice, that I've just merged from HEAD to 8-STABLE latest results of my last months work on CAM-based ATA implementation and CAM subsystem itself. Please contact me if you will have any problems, questions, propositions, ... What's done: - major code cleanup. Many SCSIsms in ATA code removed, or reworked for ATA specifics. Many ATA support parts reworked or newly implemented; - CAM code took some fixes and optimizations. Luckily no major changes were required yet. - NCQ support re-factored. Same as for SCSI, non-capable devices now limited by queue depth of 2, to let request sorter do it's job better. - Port Multipliers support re-factored. Is is more stable now. Devices hot-insert/remove supported. Implemented reinitialization after bus resets. - ahci(4) and siis(4) drivers took many changes, including improved timeout handling, error recovery and performance optimizations. - added basic support for PATA transport. After ata(4) drivers wrapper will be finished, it will allow to completely disable old ATA infrastructure. - camcontrol tool now reports more information about ATA devices and supports ATA Power Management. - added support for ATA devices with large sector size, declared by ATA-7 spec (only theoretically now, I haven't seen such yet) - added quirks mechanism for ATA, to allow, for example, to disable NCQ, or later DMA, for specific device model or firmware revision, - added support for DMA-incapable, and some old ATA devices; - implemented ATA error reporting. Things to be done yet: - timeouts and hard errors recovery process with Port Multipliers used can cause deadlocks if happen under heavy load. Any way it is a step forward, as previously it just was not recovering at all. - devices connected using Port Multipliers detected asynchronously, and in some cases they may not get in time for root mounting. - interface mode control possible only using loader tunables, but not with camcontrol. - NCQ is not used for devices with less tags supported then controller capable (it is quite rare). Many thanks to iXsystems Inc for supporting my work, making this all possible. Also thanks to Vitsch Electronics, Sentex Corp, lissyara.su, and many other people for hardware donations. Feedbacks are welcome as always. -- Alexander Motin