On Thu, 2015-02-19 at 12:51 +0200, Vladimir Kondratiev wrote:
> I am looking for ideas how can one process AMSDU in the software, without 
> copying data.
> Current implementation like ieee80211_amsdu_to_8023s() do copy packet data.
> 
> Assume I got in the driver, MPDU that is AMSDU containing several MSDU's.
> It is in the single memory buffer that was allocated for DMA.
> Can I construct skb's per MSDU with minimal data copy, having most of the
> original data in place? Any ideas for this?

As you noticed, this implementation is very inefficient.

If the SKB has pages (rather than being linear, as
ieee80211_amsdu_to_8023s() assumes) then what Emmanuel said would
probably be the best approach, although it could be possible that would
mess up truesize accounting and lead to lower performance. Certainly
you'd want to do it only for suitably large packets (at least bigger
than 128 bytes or so)

johannes

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

Reply via email to