All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: linux-ide@vger.kernel.org
Subject: Re: [PATCH 4/4] sata_sil: implement Mod15Write workaround by split request processing
Date: Wed, 01 Nov 2006 11:17:31 +0900	[thread overview]
Message-ID: <454803BB.6000006@gmail.com> (raw)
In-Reply-To: <4547FF96.4070808@pobox.com>

Jeff Garzik wrote:
> Tejun Heo wrote:
>> Instead of limiting max_sectors to 15 unconditionally, this patch
>> leaves max_sectors at the default value and process write requests
>> larger than 15 sectors by processing them in <= 15 sectors chunks.
>> This results in unhamplered read performance and better write
>> performance.
>>
>> Split request processing is performed only for DMA write requests > 15
>> sectors.  dev->max_sectors is limited to 15 sectors when the device is
>> put into PIO mode.
>>
>> Signed-off-by: Tejun Heo <htejun@gmail.com>
> 
> I'm still put off by the complexity that this adds to each transfer, and 
> to the overall driver itself.
> 
> It's largely older chips and drives, so I don't think it's worth 
> carrying this code for decades to come, just for some early SATA screwups.

Hey, you are the one who said that this can be included in the mainline. 
I agree that this is a complex workaround, but...

* There are quite some number of users out there.  My sil m15w 
workaround page has quite some visitors and many of them are returning 
visitors.

* The workaround kicks in only under certain circumstances, so it's not 
like it adds overhead to normal command processing.

* It's complex but I've been carrying this around for quite some time 
now and it's pretty easy to maintain.  If you prefer, I can put all the 
workaround implementation inside #if 1 .. #endif, so it can be dropped 
very easily in the future.

I think it's worthwhile to have the workaround included.  It has real 
users out there and they benefit a lot from it.  Complexity is contained 
inside sata_sil proper and it has been shown that maintenance overhead 
isn't too big.

I'll even put /* feel free to turn off #if for m15w workaround if it 
causes any problem to new feature/bug fix/whatsoever.  I'll follow up 
and update it accordingly. */ comment above it.

Thanks.

-- 
tejun

  reply	other threads:[~2006-11-01  2:17 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-19  5:51 [PATCHSET] sata_sil: implement Mod15Write workaround by split request processing Tejun Heo
2006-10-19  5:51 ` [PATCH 1/4] libata: implement ATA_EHI_PRINTINFO Tejun Heo
2006-11-01  1:57   ` Jeff Garzik
2006-10-19  5:51 ` [PATCH 4/4] sata_sil: implement Mod15Write workaround by split request processing Tejun Heo
2006-11-01  1:59   ` Jeff Garzik
2006-11-01  2:17     ` Tejun Heo [this message]
2006-11-01  2:31       ` Jeff Garzik
2006-11-01  9:16         ` Tejun Heo
2006-10-19  5:51 ` [PATCH 2/4] libata: implement ATA_EHI_SETMODE and ATA_EHI_POST_SETMODE Tejun Heo
2006-10-19  5:51 ` [PATCH 3/4] libata: move dev->max_sectors configuration into ata_dev_configure() Tejun Heo

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=454803BB.6000006@gmail.com \
    --to=htejun@gmail.com \
    --cc=jgarzik@pobox.com \
    --cc=linux-ide@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.