Re: [PATCH net 1/2] geneve, vxlan: Don't check skb_dst() twice
Le 15/10/2018 à 13:08, Stefano Brivio a écrit : > On Mon, 15 Oct 2018 12:19:41 +0200 > Nicolas Dichtel wrote: > >> Le 12/10/2018 à 23:53, Stefano Brivio a écrit : >>> Commit f15ca723c1eb ("net: don't call update_pmtu unconditionally") avoids >>> that we try updating PMTU for a non-existent destination, but didn't clean >>> up cases where the check was already explicit. Drop those redundant checks. >>> >> Yes, I leave them to avoid calculating the new mtu value when not needed. We >> are >> in the xmit path. > > Before 2/2 of this series, though, we call skb_dst_update_pmtu() (and > in turn dst->ops->update_pmtu()) for *every* packet with a dst, which Not if dst is of type md_dst_ops. > I'd dare saying is by far the most common case. Besides, 2/2 needs > anyway to calculate the MTU to fix a bug. > > So I think this is a vast improvement overall. Fair point.
Re: [PATCH net 1/2] geneve, vxlan: Don't check skb_dst() twice
On Mon, 15 Oct 2018 12:19:41 +0200 Nicolas Dichtel wrote: > Le 12/10/2018 à 23:53, Stefano Brivio a écrit : > > Commit f15ca723c1eb ("net: don't call update_pmtu unconditionally") avoids > > that we try updating PMTU for a non-existent destination, but didn't clean > > up cases where the check was already explicit. Drop those redundant checks. > > > Yes, I leave them to avoid calculating the new mtu value when not needed. We > are > in the xmit path. Before 2/2 of this series, though, we call skb_dst_update_pmtu() (and in turn dst->ops->update_pmtu()) for *every* packet with a dst, which I'd dare saying is by far the most common case. Besides, 2/2 needs anyway to calculate the MTU to fix a bug. So I think this is a vast improvement overall. If we want to improve this further and avoid any indirect calls in the most common path, we would need to cache the MTU in the dst -- it's probably doable, but I would fix the specific issue addressed by 2/2 first. -- Stefano
Re: [PATCH net 1/2] geneve, vxlan: Don't check skb_dst() twice
Le 12/10/2018 à 23:53, Stefano Brivio a écrit : > Commit f15ca723c1eb ("net: don't call update_pmtu unconditionally") avoids > that we try updating PMTU for a non-existent destination, but didn't clean > up cases where the check was already explicit. Drop those redundant checks. Yes, I leave them to avoid calculating the new mtu value when not needed. We are in the xmit path. As skb_dst_update_pmtu() is inlined, we probably don't care, but gcc could still decide to not inline it. Regards, Nicolas