Messages in this thread | | | Subject | Re: [PATCH] drivers/rxe: improve rxe loopback | From | Marcel Apfelbaum <> | Date | Mon, 31 Jul 2017 12:53:51 +0300 |
| |
On 30/07/2017 12:57, Moni Shoua wrote: >>> Have you considered using ip_route_output_key() for IPv4 or >>> ip6_route_output() for IPv6 to decide if this is a loopback? >>> For reference you can check the flow starting at rdma_resolve_ip() >>> >> >> Hi Moni, >> >> Yes, I had looked into it, but I haven't seen how I can find >> out if the destination IP belongs to the same RXE. >> The loopback flag will give us the "same host" >> confirmation, but not the same rxe instance, right? >> >> Any ideas would be welcomed. >> >> Thanks, >> Marcel >> > Hi Marcel >
Hi Moni,
> You are right about that. IFF_LOOPBACK tells you that the source and > destination addresses are on the same host but not necessarily on the > same RXE device. > > As Leon mentioned, calling addrX_same_rxe() for each packet seems to > heavy , especially when the use case that justifies it (instead of > calling memcmp() on src and dst) is rare. Do you agree?
I do agree is rare, but is depending on use-case. And since it is a bug we should fix it, but not on the expense of performance of course.
> If so I think that marking a connection as loopback once is the right approach > For RC/UC - when modified to RTR
Sounds good to me.
> For UD - this is harder. IsLoopback() is function of the WQE (or at > least the QP and AH together( but not the QP. I think you can add an > improvement that will work for the majority of cases. This is a sketch > of what I have in mind. Let me know what you think please > > 1. Add bool last_used_qp to AH structure > 2. Add bool is_loopback_with_last_qp to AH structure > 3. Set values to AH.last_used_qp and AH.is_loopback_with_last_qp in > post_send() modify_ah(),... > 4. Mark WQE as loopback depending on the above >
Your pointer is very much appreciated, I will look into it.
Thanks, Marcel
| |