public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: Robert Hancock <hancockr@shaw.ca>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
	linux-ide@vger.kernel.org, prakash@punnoor.de
Subject: Re: [RFC PATCH] nForce4 ADMA with NCQ: It's aliiiive..
Date: Sat, 07 Oct 2006 11:28:43 -0400	[thread overview]
Message-ID: <4527C7AB.9080801@garzik.org> (raw)
In-Reply-To: <45276085.3040102@shaw.ca>

Robert Hancock wrote:
> I've been working on the patch for sata_nv ADMA support for nForce4 that 
> Jeff Garzik has in a git branch. I've gotten it into a state where the 
> ADMA and NCQ features appear to be working with no obvious problems. 
> I've attached a patch against 2.6.18-mm2.
> 
> The code was mostly in a working state for the non-NCQ case but there 
> were a number of heinous bugs that prevented NCQ from working, like in 
> the sg list to APRD conversion code and in the interrupt handler.
> 
> This is still in quite an experimental state. It has survived system 
> boots into Fedora Core 5 and Bonnie++ benchmark runs without blowing up, 
> but there could still be bugs that could corrupt data, etc. so test with 
> caution.
> 
> There is a module parameter adma_enabled which has to be set to 1 to 
> enable ADMA on CK804/MCP04 chipsets (either that or hack the code to 
> make the default 1). I only enabled ADMA on those chipsets and not 
> MCP51, MCP55 or MCP61 since that was all that the original NVIDIA 
> version did. I assume there was a reason for this, though maybe not. 
> Someone with one of these chipsets should probably try it out (replacing 
> the GENERIC type with CK804 in the PCI device table may be all it takes).

Nice!  Good work.


> A few outstanding issues:
> 
> -Error handling likely needs work. EH works well enough to get past 
> drive detection but that's likely about all. When I ran into errors 
> while debugging, it usually locked up the machine when trying to do a 
> soft reset.
> 
> -Error handling is also noisy at the moment (it dumps a bunch of 
> controller state information).
> 
> -Jeff will probably cringe at how I implemented the 
> bmdma_stop/start/status/setup functions. This kludge of toggling 
> ATA_FLAG_MMIO off for the call into libata was needed since this 
> controller is almost what libata calls ATA_FLAG_MMIO, but not quite (the 
> ATA taskfile registers are MMIO but the BMDMA registers are PIO). This 
> is also why I needed the patch to libata-sff.c to use the adapter's 
> bmdma_status function rather than hardcoded ata_bmdma_status.

*shrug*  I don't cringe if that's the most expedient way to do something.

But I really don't think that is necessary.  I will take a look at docs 
and see how things match up, when I am much more awake.  Most likely you 
need to be using another set of registers, and be all MMIO, all the time.

	Jeff



  parent reply	other threads:[~2006-10-07 15:28 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-07  8:08 [RFC PATCH] nForce4 ADMA with NCQ: It's aliiiive Robert Hancock
2006-10-07  9:42 ` Prakash Punnoor
2006-10-07 15:54   ` Robert Hancock
2006-10-10  6:44     ` Allen Martin
2006-10-10  7:52       ` Prakash Punnoor
2006-11-30 16:46       ` Prakash Punnoor
2006-12-01  0:07         ` Robert Hancock
2006-10-07 15:28 ` Jeff Garzik [this message]
2006-10-07 23:49   ` Robert Hancock
2006-10-10  6:52   ` Allen Martin
2006-10-11  5:07     ` Robert Hancock
2006-10-11 10:30       ` Jens Axboe
2006-10-13  3:17         ` Robert Hancock
2006-10-13  8:04           ` Jens Axboe
2006-10-17  3:34             ` [PATCH] sata_nv ADMA/NCQ support for nForce4 Robert Hancock
2006-10-17  3:37               ` Mark Lord
2006-10-17  4:24                 ` Robert Hancock
2006-10-17 16:22                   ` Mark Lord
2006-10-17 17:58                     ` Roland Dreier
2006-10-17 20:54                       ` Mark Lord
2006-10-16 16:17           ` [RFC PATCH] nForce4 ADMA with NCQ: It's aliiiive Mark Lord
2006-10-16 23:40             ` Robert Hancock
2006-10-17  0:04               ` Mark Lord

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4527C7AB.9080801@garzik.org \
    --to=jeff@garzik.org \
    --cc=hancockr@shaw.ca \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=prakash@punnoor.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox