From owner-freebsd-current@FreeBSD.ORG Mon Jul 21 13:52:07 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3E9B21065697 for ; Mon, 21 Jul 2008 13:52:07 +0000 (UTC) (envelope-from sos@freebsd.org) Received: from deepcore.dk (adsl.deepcore.dk [87.63.29.106]) by mx1.freebsd.org (Postfix) with ESMTP id 497618FC12 for ; Mon, 21 Jul 2008 13:52:04 +0000 (UTC) (envelope-from sos@freebsd.org) Received: from laptop.deepcore.dk (laptop.deepcore.dk [192.168.0.138]) by deepcore.dk (8.14.2/8.13.8) with ESMTP id m6LDq1RG079219; Mon, 21 Jul 2008 15:52:01 +0200 (CEST) (envelope-from sos@freebsd.org) Message-Id: From: =?ISO-8859-1?Q?S=F8ren_Schmidt?= To: "Andrey V. Elsukov" In-Reply-To: <48848887.6020201@yandex.ru> Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Apple Message framework v926) Date: Mon, 21 Jul 2008 15:52:01 +0200 References: <200807151124.36621.snasonov@bcc.ru> <4884668C.5060606@yandex.ru> <4DCB1935-4248-472B-8328-E0365306B953@FreeBSD.ORG> <48848887.6020201@yandex.ru> X-Mailer: Apple Mail (2.926) Cc: freebsd-current@freebsd.org, Sergey G Nasonov Subject: Re: RFC, RFT: AHCI driver reorganization X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 13:52:07 -0000 On 21Jul, 2008, at 15:00 , Andrey V. Elsukov wrote: > S=F8ren Schmidt wrote: >> This does massive changes to the way AHCI devices are treated, so =20 >> it will need testing on all the AHCI platforms currently supported =20= >> to make sure nothing breaks. The adding of PM learned me this is a =20= >> critical part to touch, ouch :) > > Yes, I agree. I think 2 weeks is good time to test :) Well, this is not a question of time, its a question about getting it =20= tested on all possible platforms. This is a major PITA as I'm no =20 longer able to have a significant variation of boards/controllers in =20 the lab (lack of HW/funds), so its hard to test up front. Posting =20 patches wont help much either experience shows, its first when it hits =20= the official sources and some time has gone by, that those sytems out =20= there will get upgrade and then show the failures. > > >> At any rate, fixing the suspend / resume problems should be dealt =20 >> with in a more generic manner, not just for AHCI, by splitting the =20= >> work done by the _chipinit and _allocate functions so that just the =20= >> chipset specifics can be restored on resume, not the allocations etc. > > No, splitting was made before.. It targeted to be more conform to AHCI > spec. I think after vacation you will have much more time to review. Much more time ? not likely :) Anyhow, some of the splitting you have posted before, and I'm not =20 convinced that it is the right thing todo, in fact I dont think it is. =20= I always lean towards generic code that works on as much HW as =20 possible, makes life lots easier in the long run, and I happen to know =20= what I'm talking about here, been architecting/developing/maintaining =20= ATA as is for 10 fsck'ing years. Now, trying to hide this under an AHCI specific suspend/resume fix =20 wont make it better :) As I said suspend/resume should be fixed generically so that it helps =20= ALL chipsets, that wont get done by random hacks to different =20 chipsets, it will lead us right to chaos and kludges all over the =20 place, and that scenario will be without yours truely at the ATA helm. Mind you all the needed code for suspend/resume is already there, its =20= "just" a matter of being able to call the different parts in new ways. >> I'm in doubt as to what makes most sense todo, I'm spare time =20 >> limitted still, so progress here is slow, heck my WIP on NCQ =20 >> support is still just that and touches the same code parts in ACHI =20= >> so they willl get even more behind, oh well... >> I'm starting to wonder if I should just let it go and leave ATA to =20= >> its own faith, and get on with other things... > > What about merging some parts of your WIP (which may be published) to > perforce repository, it may take some time for you, but after that > some people can help to do some work with your review. ATA is a big > subsystem and it isn't easy to maintain it alone. I think.. Well, the WIP's I have here cannot be merged in pieces, its all or =20 nothing as it changes stuff in many subtle places. Right now I have =20 code for NCQ support and for RAID5 support in the outbound queue, but =20= both changes vital parts of the system. I have my own VCS here so =20 getting it to something else is just a waste of time that I dont have :) Some of it still needs clearance before it is let loose in the =20 official repos. Which gets us to the last part about maintenance, yes ATA is a rather =20= big subsystem, and its complicated due to all kinds of broken HW out =20 there and spec violations etc etc. If I had the time, I could write a book on how things are put =20 together, and how I have architected the subsystem to cope with new =20 stuff and feature, but alas that wont happen as my spare time gets =20 smaller by the years and so does the donations that could make me use =20= business hours for it. So its all just in my head and on lots of notes around here in the lab =20= which makes it difficult to get it across to others. This is really a =20= bottleneck, but so far noone has shown the interest or amount of =20 knowledge / motivation to get into the matter. I can understand that =20 as the workload is immense and there are no returns, only new bug =20 reports and requests for support plus the usual whining.. I guess this is a general problem in this kind of project and cannot =20 easily be solved.. Now, back to my much needed vacation... -S=F8ren