【Question】Whether it's legal to enable same physical DMA memory mapped for different NIC device?

December 07th, 2011 - 09:20 am ET by ustc.mail | Report spam
Dear all,

In NIC driver, to eliminate the overhead of dma_map_single() for DMA
packet data, we have statically allocated huge DMA memory buffer ring
at once instead of calling dma_map_single() per packet. Considering
to further reduce the copy overhead between different NIC(port) ring
while forwarding, one packet from a input NIC(port) will be
transferred to output NIC(port) with no any copy action.

To satisfy this requirement, the packet memory should be mapped into
input port and unmapped when leaving input port, then mapped into
output port and unmapped later.

Whether it's legal to map the same DMA memory into input and output
port simultaneously? If it's not, then the zero-copy for packet
forwarding is not feasible?

Hope PCI expert to post your suggestion.

Thanks!


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

Replies

#1 Konrad Rzeszutek Wilk
January 03rd, 2012 - 03:40 pm ET | Report spam
On Wed, Dec 07, 2011 at 10:16:40PM +0800, ustc.mail wrote:
Dear all,

In NIC driver, to eliminate the overhead of dma_map_single() for DMA
packet data, we have statically allocated huge DMA memory buffer ring
at once instead of calling dma_map_single() per packet. Considering
to further reduce the copy overhead between different NIC(port) ring
while forwarding, one packet from a input NIC(port) will be
transferred to output NIC(port) with no any copy action.

To satisfy this requirement, the packet memory should be mapped into
input port and unmapped when leaving input port, then mapped into
output port and unmapped later.

Whether it's legal to map the same DMA memory into input and output
port simultaneously? If it's not, then the zero-copy for packet
forwarding is not feasible?




Did you ever a get a response about this?

Is the output/input port on a seperate device function? Or is it
just a specific MMIO BAR in your PCI device?

Hope PCI expert to post your suggestion.

Thanks!


To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to
More majordomo info at http://vger.kernel.org/majordomo-info.html


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

Similar topics