From: 康剑斌 <kjbmail@gmail.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: "Koul, Vinod" <vinod.koul@intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: Can I/OAT DMA engineer access PCI MMIO space
Date: Thu, 05 May 2011 16:45:58 +0800 [thread overview]
Message-ID: <4DC263C6.1040805@gmail.com> (raw)
In-Reply-To: <4DC02622.90000@intel.com>
于 2011年05月03日 23:58, Dan Williams 写道:
>
>> Do you mean that if I have mapped the mmio, I can' use I/OAT dma
>> transfer to this region any more?
>> I can use memcpy to copy data, but it consumes lots of cpu as PCI access
>> is too slow.
>> If I can use i/oat dma and asyc_tx api to do the job, the performance
>> should be imporved.
>> Thanks
>
>
> The async_tx api only supports memory-to-memory transfers. To write
> to mmio space with ioatdma you would need a custom method, like the
> dma-slave support in other drivers, to program the descriptors with
> the physical mmio bus address.
>
> --
> Dan
Thanks.
I directly read pci bar address and program it into descriptors, ioatdma
works.
Some problem is, when PCI transfer failed (Using a NTB connect to
another system, and the system power down),
ioatdma will cause kernel oops.
BUG_ON(is_ioat_bug(chanerr));
in drivers/dma/ioat/dma_v3.c, line 365
It seems that HW reports a 'IOAT_CHANERR_DEST_ADDR_ERR', and drivers
can't recover from this situation.
What does dma-slave mean? Just like DMA_SLAVE flag existing in other DMA
drivers?
next prev parent reply other threads:[~2011-05-05 8:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-29 10:13 Can I/OAT DMA engineer access PCI MMIO space 康剑斌
2011-05-02 6:04 ` Koul, Vinod
2011-05-03 2:21 ` 康剑斌
2011-05-03 4:12 ` Koul, Vinod
2011-05-03 6:31 ` 康剑斌
2011-05-03 15:58 ` Dan Williams
2011-05-05 8:45 ` 康剑斌 [this message]
2011-05-05 15:11 ` Dan Williams
2011-05-03 16:05 ` Dan Williams
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=4DC263C6.1040805@gmail.com \
--to=kjbmail@gmail.com \
--cc=dan.j.williams@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=vinod.koul@intel.com \
/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.