All of lore.kernel.org
 help / color / mirror / Atom feed
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?


  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.