netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: Andrew Grover <andrew.grover@intel.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	john.ronciak@intel.com, christopher.leech@intel.com
Subject: Re: [RFC] [PATCH 0/3] ioat: DMA engine support
Date: Wed, 23 Nov 2005 23:30:08 +0100	[thread overview]
Message-ID: <20051123223007.GA5921@wotan.suse.de> (raw)
In-Reply-To: <4384E7F2.2030508@pobox.com>

On Wed, Nov 23, 2005 at 05:06:42PM -0500, Jeff Garzik wrote:
> IOAT is super-neat stuff.

The main problem I see is that it'll likely only pay off when you can keep 
the queue of copies long (to amortize the cost of 
talking to an external chip). At least for the standard recvmsg 
skb->user space, user space-> skb cases these queues are 
likely short in most cases. That's because most applications
do relatively small recvmsg or sendmsgs. 

It definitely will need a threshold under which it is disabled.
With bad luck the threshold will be high enough that it doesn't
help very often :/

Longer term the right way to handle this would be likely to use
POSIX AIO on sockets. With that interface it would be easier
to keep long queues of data in flight, which would be best for
the DMA engine.

> In addition to helping speed up network RX, I would like to see how 
> possible it is to experiment with IOAT uses outside of networking. 
> Sample ideas:  VM page pre-zeroing.  ATA PIO data xfers (async copy to 
> static buffer, to dramatically shorten length of kmap+irqsave time). 
> Extremely large memcpy() calls.

Another proposal was swiotlb.

But it's not clear it's a good idea: a lot of these applications prefer to 
have the target in cache. And IOAT will force it out of cache.

> Additionally, current IOAT is memory->memory.  I would love to be able 
> to convince Intel to add transforms and checksums, to enable offload of 
> memory->transform->memory and memory->checksum->result operations like 
> sha-{1,256} hashing[1], crc32*, aes crypto, and other highly common 
> operations.  All of that could be made async.

I remember the registers in the Amiga Blitter for this and I'm
still scared... Maybe it's better to keep it simple.

-Andi

  reply	other threads:[~2005-11-23 22:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-23 20:26 [RFC] [PATCH 0/3] ioat: DMA engine support Andrew Grover
2005-11-23 22:06 ` Jeff Garzik
2005-11-23 22:30   ` Andi Kleen [this message]
2005-11-23 23:02     ` Jeff Garzik
2005-11-24  0:05     ` Alan Cox
2005-11-23 23:36       ` Jeff Garzik
2005-11-24  0:17     ` Benjamin LaHaise
2005-11-24  0:50       ` David S. Miller
2005-11-24  6:50       ` Andi Kleen
2005-11-24 15:24         ` Avi Kivity
2005-11-24 15:29           ` Andi Kleen
2005-11-24 15:35             ` Avi Kivity
2005-11-24 15:37               ` Andi Kleen
2005-11-23 22:54   ` Alan Cox
2005-11-23 22:56     ` Jeff Garzik
2005-12-08 22:13       ` Kumar Gala
2005-12-08 22:23         ` Roland Dreier
2005-12-08 22:42         ` Alan Cox
2005-12-09  7:12         ` Evgeniy Polyakov
2005-11-23 22:45 ` Jeff Garzik
2005-12-02 17:06   ` Jon Mason
2005-11-23 22:53 ` Jeff Garzik
2005-11-23 23:02 ` Alan Cox

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=20051123223007.GA5921@wotan.suse.de \
    --to=ak@suse.de \
    --cc=andrew.grover@intel.com \
    --cc=christopher.leech@intel.com \
    --cc=jgarzik@pobox.com \
    --cc=john.ronciak@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@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).