Netdev List
 help / color / mirror / Atom feed
* Multicast/Broadcast enhancement: SKB read-only with copy-on-write
@ 2013-03-04 15:29 Yannick Koehler
  2013-03-04 16:28 ` Eric Dumazet
  0 siblings, 1 reply; 2+ messages in thread
From: Yannick Koehler @ 2013-03-04 15:29 UTC (permalink / raw)
  To: netdev

Hi,

  Recently I was working into the kernel area where the code handle
broadcast/multicast in bridge logical interface for example.  It seems
today inevitable that when we flood, the bridge code has to duplicate
the full SKB, metadata as well as data, in order to transmit to each
link under it.  I was wondering if there was way for the SKB system to
support copy-on-write, such that, from a starting point, the SKB would
be "frozen" into a read-only mode and then if someone wants to modify
the SKB metadata/data it is done in a way to preserve the original SKB
memory, as to ensure that after the SKB has been transmitted over that
particular link, it can also be used without a full memory copy to be
sent to subsequent link, simultaneously on multi-core/mutli-interface
system.

  I am wondering at what level such work would be consider, is it
relatively easy, does Linux have anything like that, is it major work,
since pretty much everyone expect SKB data to be writable (like
skb_may_pull could be used to obtain a specific client SKB version
area).  It would probably require a new field in the SKB to indicate
that this is a read-only/copy-on-write version of a specific "original
SKB".

  Anyway, just wanted some thoughts/opinions on the topic regarding
the scale of such a change.

--
Yannick Koehler

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-03-04 16:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-04 15:29 Multicast/Broadcast enhancement: SKB read-only with copy-on-write Yannick Koehler
2013-03-04 16:28 ` Eric Dumazet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox