On 2018/4/10 9:14, Bart Van Assche wrote:
On Tue, 2018-04-10 at 08:22 +0800, Yanjun Zhu wrote:
On 2018/4/8 9:08, Bart Van Assche wrote:
On Sun, 2018-04-08 at 08:54 +0800, Yanjun Zhu wrote:
On 2018/3/31 12:43, Bart Van Assche wrote:
On Sat, 2018-03-31 at 00:18 -0400, Zhu Yanjun wrote:
+ refcount_inc(&res->atomic.skb->users);
Is this perhaps an open-coded skb_get() call? If so, why isn't skb_get()
called here?
Thanks. There are some places that use refcount_inc instead of skb_get.
I will fix it with skb_get later in a patch.
That's a weird approach. What prevents you from modifying this patch such
that it uses skb_get()?
There are some patches use refcount_inc instead of skb_get. If you
insist, I will send a new patch soon.
Hello Yanjun,
In case you would not be aware of this: for Linux kernel patches, just like
for patches for any other open source project I am familiar with, it is
expected that reasonable feedback is addressed before a patch goes upstream.
Hence my surprise when you proposed to introduce skb_get() later instead of
making this change before this patch goes upstream.
In the patch
commit 99dae690255e90f5cbefcc76ad92b35cdf87d14d
Author: Zhu Yanjun <yanjun.zhu@xxxxxxxxxx>
Date: Wed Mar 21 04:08:37 2018 -0400
IB/rxe: optimize mcast recv process
In mcast recv process, the function skb_clone is used. In fact,
the refcount can be increased to replace cloning a new skb since
the original skb will not be modified before it is freed.
This can make the performance better and save the memory.
CC: Srinivas Eeda <srinivas.eeda@xxxxxxxxxx>
CC: Junxiao Bi <junxiao.bi@xxxxxxxxxx>
Signed-off-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxxx>
Reviewed-by: Yuval Shaia <yuval.shaia@xxxxxxxxxx>
Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx>
commit 86af617641512f4aeb78fd25dcec7e0f4bb1d5e5
Author: Zhu Yanjun <yanjun.zhu@xxxxxxxxxx>
Date: Tue Feb 27 06:04:32 2018 -0500
IB/rxe: remove unnecessary skb_clone
In send_atomic_ack function, it is not necessary to make a
skb_clone. To gain better performance (high throughput and
low latency), this skb_clone is removed.
The following tests are made.
server client
--------- ---------
|1.1.1.1|<----rxe-channel--->|1.1.1.2|
--------- ---------
On server: rping -s -a 1.1.1.1 -v -C 1000 -S 512
On client: rping -c -a 1.1.1.1 -v -C 1000 -S 512
The kernel config CONFIG_DEBUG_KMEMLEAK is enabled on both server
and client.
This test runs for several hours. There is no memory leak and the whole
system can work well.
Based on the above network, the following tests are made.
Server: ibv_rc_pingpong -d rxe0 -g 1
Client: ibv_rc_pingpong -d rxe0 -g 1 1.1.1.1
The test results on Server(10 tests are made).
Before:
Throughput is 137.07 Mbit/sec
Latency is 517.76 usec/iter
After:
Throughput is 148.85 Mbit/sec
Latency is 476.64 usec/iter
The throughput is enhanced and the latency is reduced.
CC: Srinivas Eeda <srinivas.eeda@xxxxxxxxxx>
CC: Junxiao Bi <junxiao.bi@xxxxxxxxxx>
Signed-off-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
refcount_inc is used.
So in my opinion, I want to make a new patch to fix all the 3 patches.
If you insist, I will make a new patch.
And I will fix the above patches soon.
Zhu Yanjun
Thanks,
Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html