Re: [PATCH net-next 14/15] net/smc: introduce loopback-ism DMB data copy control

From: Niklas Schnelle
Date: Fri Jan 12 2024 - 11:24:56 EST


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<---