On Fri, Mar 21, 2014 at 2:48 PM, Thomas Graf <tg...@redhat.com> wrote: > On 03/21/2014 10:28 PM, Pravin Shelar wrote: > >> I think it is not possible. Why vswitchd would generate such action if >> the packet is not going somewhere? > > > [...] > > >> right, there is memory leak for packet size less than eth-header. >> unfortunately dp_netdev_port_input() would not know if packet is >> deleted, since it can send it to odp-execute. >> At this point there is three places where we delete packet: >> 1. dp_netdev_port_input() >> 2. odp action (drop) >> 3. odp-actions callback. >> >> I do not think if we can centralize it. > > > odp_execute_actions() and the callback can be made returning a bool > indicating whether the buffer was consumed, much like the kernel > rx handler. > > I think it's slightly fragile as-is. Definitely don't want to hold > up the series because of this. I'm happy to propose this as a follow up > as well. > OK, But passing around values and checking it is not efficient specially for fast path loop.
> >>>> - retval = rx->netdev->netdev_class->rx_recv(rx, buffer); >>>> + retval = rx->netdev->netdev_class->rx_recv(rx, buffers, cnt); >>>> if (!retval) { >>>> COVERAGE_INC(netdev_received); >>> >>> >>> >>> What would be awesome here is a COVERAGE_ADD(netdev_batched, cnt). >> >> >> I am not sure what do u mean, but we can get avg batch size by looking >> at all packets recved and this count for given period of time. > > > True, hit+miss/netdev_received will provide a similar average. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev