Re: [PATCH net-next 3/3] tap: XDP support

2017-07-28 Thread Daniel Borkmann
On 07/28/2017 05:46 AM, Michael S. Tsirkin wrote: On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: + old_prog = rtnl_dereference(tun->xdp_prog); + if (old_prog) + bpf_prog_put(old_prog); + rcu_assign_pointer(tun->xdp_prog, prog); Is this OK? Could

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-28 Thread Daniel Borkmann
On 07/28/2017 05:46 AM, Michael S. Tsirkin wrote: On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: + old_prog = rtnl_dereference(tun->xdp_prog); + if (old_prog) + bpf_prog_put(old_prog); + rcu_assign_pointer(tun->xdp_prog, prog); Is this OK? Could

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Michael S. Tsirkin
On Fri, Jul 28, 2017 at 11:50:45AM +0800, Jason Wang wrote: > > > On 2017年07月28日 11:46, Michael S. Tsirkin wrote: > > On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: > > > > > + old_prog = rtnl_dereference(tun->xdp_prog); > > > > > + if (old_prog) > > > > > +

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Michael S. Tsirkin
On Fri, Jul 28, 2017 at 11:50:45AM +0800, Jason Wang wrote: > > > On 2017年07月28日 11:46, Michael S. Tsirkin wrote: > > On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: > > > > > + old_prog = rtnl_dereference(tun->xdp_prog); > > > > > + if (old_prog) > > > > > +

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jakub Kicinski
On Fri, 28 Jul 2017 06:46:40 +0300, Michael S. Tsirkin wrote: > On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: > > > > + old_prog = rtnl_dereference(tun->xdp_prog); > > > > + if (old_prog) > > > > + bpf_prog_put(old_prog); > > > > +

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jakub Kicinski
On Fri, 28 Jul 2017 06:46:40 +0300, Michael S. Tsirkin wrote: > On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: > > > > + old_prog = rtnl_dereference(tun->xdp_prog); > > > > + if (old_prog) > > > > + bpf_prog_put(old_prog); > > > > +

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jason Wang
On 2017年07月28日 11:46, Michael S. Tsirkin wrote: On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: + old_prog = rtnl_dereference(tun->xdp_prog); + if (old_prog) + bpf_prog_put(old_prog); + rcu_assign_pointer(tun->xdp_prog, prog); Is this OK? Could

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jason Wang
On 2017年07月28日 11:46, Michael S. Tsirkin wrote: On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: + old_prog = rtnl_dereference(tun->xdp_prog); + if (old_prog) + bpf_prog_put(old_prog); + rcu_assign_pointer(tun->xdp_prog, prog); Is this OK? Could

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Michael S. Tsirkin
On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: > > > + old_prog = rtnl_dereference(tun->xdp_prog); > > > + if (old_prog) > > > + bpf_prog_put(old_prog); > > > + rcu_assign_pointer(tun->xdp_prog, prog); > > Is this OK? Could this lead to the program getting freed and then > >

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Michael S. Tsirkin
On Fri, Jul 28, 2017 at 11:28:54AM +0800, Jason Wang wrote: > > > + old_prog = rtnl_dereference(tun->xdp_prog); > > > + if (old_prog) > > > + bpf_prog_put(old_prog); > > > + rcu_assign_pointer(tun->xdp_prog, prog); > > Is this OK? Could this lead to the program getting freed and then > >

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jason Wang
On 2017年07月28日 11:13, Jakub Kicinski wrote: On Thu, 27 Jul 2017 17:25:33 +0800, Jason Wang wrote: This patch tries to implement XDP for tun. The implementation was split into two parts: - fast path: small and no gso packet. We try to do XDP at page level before build_skb(). For XDP_TX,

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jason Wang
On 2017年07月28日 11:13, Jakub Kicinski wrote: On Thu, 27 Jul 2017 17:25:33 +0800, Jason Wang wrote: This patch tries to implement XDP for tun. The implementation was split into two parts: - fast path: small and no gso packet. We try to do XDP at page level before build_skb(). For XDP_TX,

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jakub Kicinski
On Thu, 27 Jul 2017 17:25:33 +0800, Jason Wang wrote: > This patch tries to implement XDP for tun. The implementation was > split into two parts: > > - fast path: small and no gso packet. We try to do XDP at page level > before build_skb(). For XDP_TX, since creating/destroying queues > were

Re: [PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jakub Kicinski
On Thu, 27 Jul 2017 17:25:33 +0800, Jason Wang wrote: > This patch tries to implement XDP for tun. The implementation was > split into two parts: > > - fast path: small and no gso packet. We try to do XDP at page level > before build_skb(). For XDP_TX, since creating/destroying queues > were

[PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jason Wang
This patch tries to implement XDP for tun. The implementation was split into two parts: - fast path: small and no gso packet. We try to do XDP at page level before build_skb(). For XDP_TX, since creating/destroying queues were completely under control of userspace, it was implemented

[PATCH net-next 3/3] tap: XDP support

2017-07-27 Thread Jason Wang
This patch tries to implement XDP for tun. The implementation was split into two parts: - fast path: small and no gso packet. We try to do XDP at page level before build_skb(). For XDP_TX, since creating/destroying queues were completely under control of userspace, it was implemented