On Thu, 2024-01-11 at 20:00 +0800, Wen Gu wrote: > This provides a way to {get|set} whether loopback-ism device supports > merging sndbuf with peer DMB to eliminate data copies between them. > > echo 0 > /sys/devices/virtual/smc/loopback-ism/dmb_copy # support > echo 1 > /sys/devices/virtual/smc/loopback-ism/dmb_copy # not support The two support/no support remarks are a bit confusing because support here seems to mean "support no-copy mode" while the attribute is more like "force copy mode". How about: echo 0 > /sys/devices/virtual/smc/loopback-ism/dmb_copy # one DMB mode echo 1 > /sys/devices/virtual/smc/loopback-ism/dmb_copy # copy mode > > The settings take effect after re-activating loopback-ism by: > > echo 0 > /sys/devices/virtual/smc/loopback-ism/active > echo 1 > /sys/devices/virtual/smc/loopback-ism/active > > After this, the link group related to loopback-ism will be flushed and > the sndbufs of subsequent connections will be merged or not merged with > peer DMB. > > The motivation of this control is that the bandwidth will be highly > improved when sndbuf and DMB are merged, but when virtually contiguous > DMB is provided and merged with sndbuf, it will be concurrently accessed > on Tx and Rx, then there will be a bottleneck caused by lock contention > of find_vmap_area when there are many CPUs and CONFIG_HARDENED_USERCOPY > is set (see link below). So an option is provided. > > Link: https://lore.kernel.org/all/238e63cd-e0e8-4fbf-852f-bc4d5bc35d5a@xxxxxxxxxxxxxxxxx/ > Signed-off-by: Wen Gu <guwen@xxxxxxxxxxxxxxxxx> ---8<---