From: David Miller <davem@davemloft.net>
To: fujita.tomonori@lab.ntt.co.jp
Cc: jarkao2@gmail.com, alan@lxorguk.ukuu.org.uk,
shemminger@linux-foundation.org, mbreuer@majjas.com,
akpm@linux-foundation.org, flyboy@gmail.com,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
mchan@broadcom.com, pcnet32@verizon.net, romieu@fr.zoreil.com,
mcarlson@broadcom.com, James.Bottomley@suse.de
Subject: Re: [PATCH] sky2: Fix WARNING: at lib/dma-debug.c:902 check_sync
Date: Thu, 21 Jan 2010 22:38:41 -0800 (PST) [thread overview]
Message-ID: <20100121.223841.145479578.davem@davemloft.net> (raw)
In-Reply-To: <20100122141018D.fujita.tomonori@lab.ntt.co.jp>
From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Date: Fri, 22 Jan 2010 14:11:29 +0900
> Even if 'offset' is zero, 'size' still matters, I think. If 'size' is
> not a multiple of the cache line size, it's possible that driver
> writers who aren't familiar with cache would be surprised (it depends
> on the way their drivers use buffers though).
>
> The easiest way for 'completely safe sync for any driver writers' is
> asking for all the sync parameters must be the same as those passed
> into the single mapping API. If writes knows what they do, they can do
> a partial sync with sync_range API. That's the author intention, I
> guess.
This is not reasonable.
You have to think about how people actually use these
interfaces.
They have a large buffer, and if they receive a small request they
want to allocate a smaller buffer, copy into that smaller buffer, and
give the larger buffer back to the hardware.
It's an optimization, it performs better this way.
If you make it so that the DMA sync has to cover the entire large
buffer, the whole point of the optimization is taken away.
That makes no sense at all.
I know that when I designed and wrote the first implementation of the
PCI DMA interfaces, I sure as hell meant to allow partial DMA sync
operations.
I know this as a fact, because the first drivers ported over
to these interfaces were network drivers. And I definitely
knew about the copy-break mechanism I describe above and how
networking drivers use such a scheme pretty much across the
board.
The DMA API documentation is wrong, it must be fixed to allow partial
syncs of arbitrary offsets and sizes.
The issue of cache line boundaries and such are the domain of the DMA
API implementation, and has absolutely no business in the definition
of these interfaces. Nor should it be something driver authors have
to be knowledgable about, that would be completely unreasonable.
next prev parent reply other threads:[~2010-01-22 6:38 UTC|newest]
Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-20 9:41 [PATCH] sky2: Fix WARNING: at lib/dma-debug.c:902 check_sync Jarek Poplawski
2010-01-20 18:03 ` Stephen Hemminger
2010-01-20 20:11 ` Michael Chan
2010-01-20 20:30 ` Stephen Hemminger
2010-01-20 20:58 ` Jarek Poplawski
2010-01-20 22:50 ` David Miller
2010-01-20 22:45 ` David Miller
2010-01-20 18:09 ` Stephen Hemminger
2010-01-20 22:24 ` Alan Cox
2010-01-20 22:53 ` David Miller
2010-01-20 22:53 ` Jarek Poplawski
2010-01-21 15:22 ` FUJITA Tomonori
2010-01-21 18:41 ` Jarek Poplawski
2010-01-22 5:11 ` FUJITA Tomonori
2010-01-22 6:38 ` David Miller [this message]
2010-02-03 1:18 ` FUJITA Tomonori
2010-02-03 1:27 ` David Miller
2010-01-21 19:59 ` Michael Breuer
2010-01-21 20:41 ` Jarek Poplawski
2010-01-21 20:46 ` Michael Breuer
2010-01-21 21:02 ` Jarek Poplawski
2010-01-22 18:01 ` Hang: 2.6.32.4 sky2/DMAR (was [PATCH] sky2: Fix WARNING: at lib/dma-debug.c:902 check_sync) Michael Breuer
2010-01-22 21:53 ` Jarek Poplawski
2010-01-22 22:14 ` Michael Breuer
2010-01-22 23:06 ` Jarek Poplawski
2010-01-22 23:25 ` Michael Breuer
2010-01-22 23:46 ` Jarek Poplawski
2010-01-22 23:50 ` Michael Breuer
2010-01-23 23:21 ` Jarek Poplawski
2010-01-24 1:53 ` Michael Breuer
2010-01-27 15:34 ` Michael Breuer
2010-01-27 16:50 ` Stephen Hemminger
2010-01-27 16:57 ` Michael Breuer
2010-01-27 17:45 ` Stephen Hemminger
2010-01-27 17:57 ` Michael Breuer
2010-01-27 18:33 ` Michael Breuer
2010-01-27 23:54 ` Hang: 2.6.32.4 sky2/DMAR David Miller
2010-01-27 17:56 ` Hang: 2.6.32.4 sky2/DMAR (was [PATCH] sky2: Fix WARNING: at lib/dma-debug.c:902 check_sync) Stephen Hemminger
2010-01-27 17:58 ` Michael Breuer
2010-01-27 18:08 ` Michael Breuer
2010-01-27 18:45 ` Michael Breuer
2010-01-27 19:23 ` Jarek Poplawski
2010-01-27 19:32 ` Jarek Poplawski
2010-01-28 15:32 ` Michael Breuer
2010-01-28 16:43 ` Michael Breuer
2010-01-28 17:08 ` Stephen Hemminger
2010-01-28 18:46 ` Michael Breuer
2010-01-28 22:34 ` Jarek Poplawski
2010-01-28 22:43 ` Michael Breuer
2010-01-28 22:56 ` Jarek Poplawski
2010-01-28 22:59 ` Michael Breuer
2010-01-28 23:36 ` [PATCH] sky2: receive dma mapping error handling Stephen Hemminger
2010-01-29 0:05 ` Michael Breuer
2010-01-30 16:30 ` Michael Breuer
2010-01-30 16:31 ` Michael Breuer
2010-01-31 0:34 ` Jarek Poplawski
2010-01-31 4:17 ` Michael Breuer
2010-01-31 22:25 ` Jarek Poplawski
2010-01-31 23:58 ` Michael Breuer
2010-01-31 4:55 ` Michael Breuer
2010-01-31 18:50 ` Michael Breuer
2010-01-31 21:58 ` Michael Breuer
2010-01-31 22:18 ` Jarek Poplawski
2010-02-01 0:19 ` Michael Breuer
2010-02-01 4:26 ` Michael Breuer
2010-02-01 10:47 ` Jarek Poplawski
2010-02-01 9:17 ` [PATCH v2] sky2: Fix transmit dma mapping handling Jarek Poplawski
2010-02-01 17:52 ` Michael Breuer
2010-02-01 18:08 ` [PATCH] sky2: receive dma mapping error handling Stephen Hemminger
2010-02-01 18:20 ` Stephen Hemminger
2010-02-01 18:44 ` Michael Breuer
2010-02-01 20:13 ` Jarek Poplawski
2010-02-01 20:41 ` Jarek Poplawski
2010-02-01 21:27 ` [PATCH v3] " Jarek Poplawski
2010-02-01 22:29 ` Stephen Hemminger
2010-02-01 22:46 ` Jarek Poplawski
2010-02-01 22:51 ` Stephen Hemminger
2010-02-01 21:42 ` [PATCH v3b resent] sky2: Fix transmit dma mapping handling Jarek Poplawski
2010-02-03 4:07 ` [PATCH] sky2: receive dma mapping error handling Michael Breuer
2010-02-03 16:47 ` Michael Breuer
2010-02-03 16:56 ` Stephen Hemminger
2010-02-03 17:07 ` Michael Breuer
2010-02-03 18:23 ` Justin P. Mattock
2010-02-03 18:25 ` Stephen Hemminger
2010-02-03 18:48 ` Justin P. Mattock
2010-11-06 16:57 ` Sky2 2.6.36-09934-g2aab243 DMAR error with tcp timestamp enabled Michael Breuer
2010-11-08 3:13 ` Stephen Hemminger
2010-11-08 3:38 ` Michael Breuer
2010-11-08 16:46 ` Stephen Hemminger
2010-02-03 17:16 ` [PATCH] sky2: receive dma mapping error handling Justin P. Mattock
2010-02-02 22:44 ` Andi Kleen
2012-01-16 16:39 ` Regression: sky2 kernel between 3.1 and 3.2.1 (last known good 3.0.9) Michael Breuer
2012-01-20 14:24 ` Michael Breuer
2012-01-20 16:10 ` Stephen Hemminger
2012-01-20 16:17 ` Michael Breuer
2012-01-20 16:26 ` Stephen Hemminger
2012-01-20 16:44 ` Michael Breuer
2012-01-21 15:29 ` Michael Breuer
2012-01-22 18:03 ` Stephen Hemminger
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=20100121.223841.145479578.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=James.Bottomley@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=flyboy@gmail.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=jarkao2@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbreuer@majjas.com \
--cc=mcarlson@broadcom.com \
--cc=mchan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=pcnet32@verizon.net \
--cc=romieu@fr.zoreil.com \
--cc=shemminger@linux-foundation.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).