linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Geoff Levand <geoffrey.levand@am.sony.com>
To: Linas Vepstas <linas@austin.ibm.com>
Cc: akpm@osdl.org, jeff@garzik.org, Arnd Bergmann <arnd@arndb.de>,
	netdev@vger.kernel.org, James K Lewis <jklewis@us.ibm.com>,
	linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 21/21]: powerpc/cell spidernet DMA coalescing
Date: Wed, 11 Oct 2006 08:47:47 -0700	[thread overview]
Message-ID: <452D1223.4090403@am.sony.com> (raw)
In-Reply-To: <20061011152016.GU4381@austin.ibm.com>

Linas Vepstas wrote:
> On Tue, Oct 10, 2006 at 06:46:08PM -0700, Geoff Levand wrote:
>> > Linas Vepstas wrote:
>> >> The current driver code performs 512 DMA mappns of a bunch of 
>> >> 32-byte structures. This is silly, as they are all in contiguous 
>> >> memory. Ths patch changes the code to DMA map the entie area
>> >> with just one call.
>> 
>> Linas, 
>> 
>> Is the motivation for this change to improve performance by reducing the overhead
>> of the mapping calls?  
> 
> Yes.
> 
>> If so, there may be some benefit for some systems.  Could
>> you please elaborate?
> 
> I started writingthe patch thinking it will have some huge effect on
> performance, based on a false assumption on how i/o was done on this
> machine
> 
> *If* this were another pSeries system, then each call to 
> pci_map_single() chews up an actual hardware "translation 
> control entry" (TCE) that maps pci bus addresses into 
> system RAM addresses. These are somewhat limited resources,
> and so one shouldn't squander them.  Furthermore, I thouhght
> TCE's have TLB's associated with them (similar to how virtual
> memory page tables are backed by hardware page TLB's), of which 
> there are even less of. I was thinking that TLB thrashing would 
> have a big hit on performance. 
> 
> Turns out that there was no difference to performance at all, 
> and a quick look at "cell_map_single()" in arch/powerpc/platforms/cell
> made it clear why: there's no fancy i/o address mapping.

OK, thanks for the explanation.  Actually, the current cell DMA mapping
implementation uses a simple 'linear' mapping, in that, all of RAM is
mapped into the bus DMA address space at once, and in fact, it is all
just done at system startup.

There is ongoing work to implement 'dynamic' mapping, where DMA pages are
mapped into the bus DMA address space on demand.  I think a key point to
understand the benefit to this is that the cell processor's I/O controller
maps pages per device, so you can map one DMA page to one device.  I
currently have this working for my platform, but have not released that
work.  There is some overhead to managing the mapped buffers and to request
pages be mapped by the hypervisor, etc., so I was thinking that is this work
of yours to consolidate the memory buffers prior to requesting the mapping
could be of benefit if it was in an often executed code path.

-Geoff

  reply	other threads:[~2006-10-11 15:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-10 20:49 [PATCH 0/21]: powerpc/cell spidernet bugfixes, etc Linas Vepstas
2006-10-10 20:56 ` [PATCH 1/21]: powerpc/cell spidernet ethtool -i version number info Linas Vepstas
2006-10-10 20:57 ` [PATCH 2/21]: powerpc/cell spidernet burst alignment patch Linas Vepstas
2006-10-10 20:59 ` [PATCH 3/21]: Spidernet module parm permissions Linas Vepstas
2006-10-10 21:00 ` [PATCH 4/21]: powerpc/cell spidernet force-end fix Linas Vepstas
2006-10-10 21:00 ` [PATCH 0/21]: powerpc/cell spidernet bugfixes, etc Andrew Morton
2006-10-10 21:01 ` [PATCH 5/21]: powerpc/cell spidernet zlen min packet length Linas Vepstas
2006-10-10 21:01 ` [PATCH 6/21]: powerpc/cell spidernet add missing netdev watchdog Linas Vepstas
2006-10-10 21:02 ` [PATCH 7/21]: Spidernet fix register field definitions Linas Vepstas
2006-10-10 21:04 ` [PATCH 8/21]: Spidernet stop queue when queue is full Linas Vepstas
2006-10-10 21:05 ` [PATCH 9/21]: powerpc/cell spidernet bogus rx interrupt bit Linas Vepstas
2006-10-10 21:06 ` [PATCH 10/21]: powerpc/cell spidernet fix error interrupt print Linas Vepstas
2006-10-10 21:08 ` [PATCH 11/21]: powerpc/cell spidernet stop error printing patch Linas Vepstas
2006-10-10 21:09 ` [PATCH 12/21]: powerpc/cell spidernet incorrect offset Linas Vepstas
2006-10-10 21:11 ` [PATCH 13/21]: powerpc/cell spidernet low watermark patch Linas Vepstas
2006-10-10 21:13 ` [PATCH 14/21]: powerpc/cell spidernet NAPI polling info Linas Vepstas
2006-10-10 21:14 ` [PATCH 15/21]: powerpc/cell spidernet refine locking Linas Vepstas
2006-10-10 21:15 ` [PATCH 16/21]: powerpc/cell spidernet Linas Vepstas
2006-10-10 21:18 ` [PATCH 17/21]: powerpc/cell spidernet reduce DMA kicking Linas Vepstas
2006-10-10 21:19 ` [PATCH 18/21]: powerpc/cell spidernet variable name change Linas Vepstas
2006-10-10 21:21 ` [PATCH 19/21]: powerpc/cell spidernet DMA direction fix Linas Vepstas
2006-10-10 21:22 ` [PATCH 20/21]: powerpc/cell spidernet release all descrs Linas Vepstas
2006-10-10 21:23 ` [PATCH 21/21]: powerpc/cell spidernet DMA coalescing Linas Vepstas
2006-10-10 23:20   ` jschopp
2006-10-11  1:46     ` Geoff Levand
2006-10-11  9:25       ` Arnd Bergmann
2006-10-11 15:20       ` Linas Vepstas
2006-10-11 15:47         ` Geoff Levand [this message]
2006-10-11 22:13         ` Benjamin Herrenschmidt
2006-10-11  7:15     ` Benjamin Herrenschmidt
2006-10-14  2:12   ` Joel Schopp
2006-10-11 16:02 ` [PATCH 0/21]: powerpc/cell spidernet bugfixes, etc Arnd Bergmann
2006-10-11 16:42   ` James K Lewis
2006-10-11 21:06   ` James K Lewis

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=452D1223.4090403@am.sony.com \
    --to=geoffrey.levand@am.sony.com \
    --cc=akpm@osdl.org \
    --cc=arnd@arndb.de \
    --cc=jeff@garzik.org \
    --cc=jklewis@us.ibm.com \
    --cc=linas@austin.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.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).