On Fri, 16 Mar 2018 17:04:17 +0800 Jason Wang <jasow...@redhat.com> wrote:
> Looks like the series forget to register memory model for tun and > virtio-net. Well, no. It is actually not strictly necessary to invoke xdp_rxq_info_reg_mem_model() because enum MEM_TYPE_PAGE_SHARED == 0. And if not passing an allocator pointer to the call, then an mem_id is not registered... and __xdp_return_frame() skips the rhashtable_lookup. I designed the API this way, because I want to support later adding an allocator even for the refcnt scheme MEM_TYPE_PAGE_SHARED. (As it would be a performance optimization to return the pages to the originating RX-CPU, and move the page refcnt dec back to that orig CPU). I did add an xdp_rxq_info_reg_mem_model() call to ixgbe, for human programmer "documentation" even-though it isn't strickly necessary. I guess, I could add similar calls to tun and virtio_net, and then we avoid any implicit assumptions. And makes it more clear that XDP_REDIRECT support use the memory model return API. -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer