Thread (41 messages) 41 messages, 5 authors, 2021-12-03

Re: [RFC 00/12] io_uring zerocopy send

From: Pavel Begunkov <asml.silence@gmail.com>
Date: 2021-12-02 15:48:38
Also in: io-uring, lkml

On 12/1/21 21:51, Martin KaFai Lau wrote:
On Wed, Dec 01, 2021 at 08:15:28PM +0000, Pavel Begunkov wrote:
quoted
On 12/1/21 19:20, David Ahern wrote:
quoted
On 12/1/21 12:11 PM, Pavel Begunkov wrote:
quoted
btw, why a dummy device would ever go through loopback? It doesn't
seem to make sense, though may be missing something.
You are sending to a local ip address, so the fib_lookup returns
RTN_LOCAL. The code makes dev_out the loopback:

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/net/ipv4/route.c#n2773
I see, thanks. I still don't use the skb_orphan_frags_rx() hack
and it doesn't go through the loopback (for my dummy tests), just
dummy_xmit() and no mention of loopback in perf data, see the
flamegraph. Don't know what is the catch.

I'm illiterate of the routing paths. Can it be related to
the "ip route add"? How do you get an ipv4 address for the device?
I also bumped into the udp-connect() => ECONNREFUSED (111) error from send-zc.
because I assumed no server is needed by using dummy.  Then realized
the cover letter mentioned msg_zerocopy is used as the server.
Mentioning just in case someone hits it also.

To tx out dummy, I did:
#> ip a add 10.0.0.1/24 dev dummy0
Works well for me, IOW getting the same behaviour as with my
ip route add <ip> dev dummy0

I'm curious what is the difference bw them?

#> ip -4 r
10.0.0.0/24 dev dummy0 proto kernel scope link src 10.0.0.1

#> ./send-zc -4 -D 10.0.0.(2) -t 10 udp
ip -s link show dev dummy0
2: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 65535 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 82:0f:e0:dc:f7:e6 brd ff:ff:ff:ff:ff:ff
    RX:    bytes packets errors dropped  missed   mcast
               0       0      0       0       0       0
    TX:    bytes packets errors dropped carrier collsns
    140800890299 2150397      0       0       0       0
-- 
Pavel Begunkov
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help