lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <535CB615.7070504@rozsnyo.com>
Date:	Sun, 27 Apr 2014 09:47:33 +0200
From:	"Ing. Daniel RozsnyĆ³" <daniel@...snyo.com>
To:	linux-kernel@...r.kernel.org
Subject: Provision for direct device to device DMA

We are working on a product with PCIe based backplane (with PLX switch 
chips) to connect various high-bandwidth devices (namely an image sensor 
and multiple SSDs). The Linux system runs on a small (ARM based) 
processor, which has limited memory bandwidth (32bit/800MHz) and more 
importantly limited PCIe bandwidth (x1 root port). From linux sources, 
we could understand, that all DMA is towards or from system memory, 
which is the bottleneck in our use case (we peak at 2000MB/s).

What is the advised way of doing disk i/o with data coming from/to 
another PCIe device? We would prefer to keep a filesystem on the target 
drives, but it is not a hard requirement. The storage solution is AHCI 
(multiple ASM1061) and the other end are our FPGA devices. For future, 
it would be nice to stream over PCIe fabric into a 10GE nic, like i82599 
(ixgbe), from both the storage and from FPGA.

Do we need to write a kernel module to handle such transfers on a very 
low level (like a combined ahci-fpga-nic driver)?

Or a special mmap() before write() would auto-magically do the right job?


Thank you,
Daniel Rozsnyo

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ