linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: Mark Lord <liml@rtr.ca>
Cc: linux-ide@vger.kernel.org
Subject: Re: [PATCH 2/7] sata_mv: deal with interrupt coalescing interrupts
Date: Mon, 22 May 2006 02:35:07 -0400	[thread overview]
Message-ID: <44715B9B.6010208@pobox.com> (raw)
In-Reply-To: <446F2138.9060406@rtr.ca>

Mark Lord wrote:
> Jeff Garzik wrote:
>>
>> Unless you have a _lot_ of ports active at the same time, irq 
>> coalescing can increase latency.
> 
> I agree, which is why I haven't actually turned it on yet.
> But a runtime sysfs attr for it should allow us to benchmark
> things, and see if it really helps or not under various loads.
> 
>> Ideally, for this, AHCI, and any other SATA controller that does 
>> coalescing, we have a runtime dynamic trigger that turns on coalescing 
>> when interrupt traffic exceeds a runtime limit.
> 
> Yeah, if coalescing turns out to be a win under hight load,
> then a generic strategy like that would be a great feature.

It should definitely be a win.  Every irq raised by the system, even 
with MSI, has a fixed overhead, with spinlocks being taken along the way 
or disable/enable_irq() deep in the system irq handler code.  Its a 
measurable CPU usage win reducing that overhead, if nothing else.

I've already "been there, done that" in the networking area, which 
benefits from hardware (coalescing) and software (polling) interrupt 
mitigation.  Hardware miti mitigates interrupts on a per-hardware basis, 
but doesn't have any inherent overall-system-load feedback mechanisms. 
Software miti takes into account overall system load, but can be 
somewhat dumb at times (can add overhead at low loads).  However, "high 
load" in networking easily means 10x or 100x the number of interrupts 
per second.  Networking also processes data in smaller chunks (== more 
interrupt events).  SATA is catching up though, at 3.0Gbps+ and 8-port 
cards.

	Jeff




  reply	other threads:[~2006-05-22  6:35 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-19 15:48 [PATCHSET 03/03] add hotplug support, take 3 Tejun Heo
2006-05-19 15:48 ` [PATCH 09/13] sata_sil: convert to new probing mechanism and add hotplug support Tejun Heo
2006-05-19 15:48 ` [PATCH 06/13] libata-hp: implement bootplug Tejun Heo
2006-05-19 16:09   ` Jeff Garzik
2006-05-19 15:48 ` [PATCH 03/13] libata-hp: implement SCSI part of hotplug Tejun Heo
2006-05-19 16:05   ` Jeff Garzik
2006-05-23 14:52     ` Tejun Heo
2006-05-19 15:48 ` [PATCH 01/13] libata-hp: implement ata_eh_detach_dev() Tejun Heo
2006-05-19 15:48 ` [PATCH 07/13] libata-hp: implement unload-unplug Tejun Heo
2006-05-19 16:10   ` Jeff Garzik
2006-05-23 14:53     ` Tejun Heo
2006-05-19 15:48 ` [PATCH 02/13] libata-hp: implement hotplug Tejun Heo
2006-05-19 16:04   ` Jeff Garzik
2006-05-19 15:48 ` [PATCH 05/13] libata-hp: hook warmplug Tejun Heo
2006-05-19 15:48 ` [PATCH 04/13] libata-hp: implement warmplug Tejun Heo
2006-05-19 15:48 ` [PATCH 08/13] ata_piix: convert ata_piix to new probing mechanism Tejun Heo
2006-05-19 15:48 ` [PATCH 13/13] libata-hp: move ata_do_reset() to libata-eh.c Tejun Heo
2006-05-19 16:13   ` Jeff Garzik
2006-05-19 20:13     ` [PATCH 0/7] sata_mv: assorted fixes Mark Lord
2006-05-19 20:21       ` [PATCH 1/7] sata_mv: prevent unnecessary double-resets Mark Lord
2006-05-19 20:24       ` [PATCH 2/7] sata_mv: deal with interrupt coalescing interrupts Mark Lord
2006-05-20  4:32         ` Jeff Garzik
2006-05-20 13:13           ` Mark Lord
2006-05-20 13:24             ` Jeff Garzik
2006-05-20 14:01               ` Mark Lord
2006-05-22  6:35                 ` Jeff Garzik [this message]
2006-05-19 20:29       ` [PATCH 3/7] sata_mv: chip initialization fixes Mark Lord
2006-05-19 20:33       ` [PATCH 4/7] sata_mv: spurious interrupt workaround Mark Lord
2006-05-19 20:36       ` [PATCH 5/7] sata_mv: remove local copy of queue indexes Mark Lord
2006-05-19 20:40       ` [PATCH 6/7] sata_mv: endian fix Mark Lord
2006-05-19 20:41       ` [PATCH 7/7] sata_mv: version bump Mark Lord
2006-05-19 15:48 ` [PATCH 11/13] sata_sil24: convert to new probing mechanism and add hotplug support Tejun Heo
2006-05-19 15:48 ` [PATCH 10/13] ahci: " Tejun Heo
2006-05-19 15:48 ` [PATCH 12/13] libata-hp: killl ops->probe_reset 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=44715B9B.6010208@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=liml@rtr.ca \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).