Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 May 2013 14:06:40 -0700
From:      Haven Hash <havenster@gmail.com>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        net@freebsd.org
Subject:   Re: surprise surprise (VM related) [luigi@FreeBSD.org: svn commit: r250911 - head/sys/kern]
Message-ID:  <CAMUJtRPKmsv9nxS4gSPTZUi1bjvgK03P-TS7D4cEcCt7MNO5Lg@mail.gmail.com>
In-Reply-To: <20130522164244.GB95808@onelab2.iet.unipi.it>
References:  <20130522164244.GB95808@onelab2.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
I notice the commentary by poll_burst_max stating it's suitability to
100Mbit net, perhaps that could use an increase in its default value as
well?




On Wed, May 22, 2013 at 9:42 AM, Luigi Rizzo <rizzo@iet.unipi.it> wrote:

> all that work on paravirtualization (as presented at bsdcan)
>
> http://info.iet.unipi.it/~luigi/netmap/talk-bsdcan-2013.html
>
> just to discover that simply enabling DEVICE_POLLING (10-years old
> technology) gives the same performance gains plus livelock-avoidance.
>
> And no, linux's NAPI is nowhere near us.
>
>         cheers
>         luigi
>
>
> ----- Forwarded message from Luigi Rizzo <luigi@FreeBSD.org> -----
>
> Date: Wed, 22 May 2013 16:32:18 +0000 (UTC)
> From: Luigi Rizzo <luigi@FreeBSD.org>
> Subject: svn commit: r250911 - head/sys/kern
> To: src-committers@freebsd.org, svn-src-all@freebsd.org,
>         svn-src-head@freebsd.org
>
> Author: luigi
> Date: Wed May 22 16:32:18 2013
> New Revision: 250911
> URL: http://svnweb.freebsd.org/changeset/base/250911
>
> Log:
>   Increase the (arbitrary) limit for the number of packets per tick
>   from 1k to 20k The previous value was good 10 years ago, but not
>   anymore now.
>
>   More importantly, lots of good surprises:
>   polling is incredibly effective under virtualization, and not only
>   prevents livelock but also saves most of the VM exit overhead in
>   receive mode.
>
>   Using polling, a FreeBSD instance under qemu-kvm remains perfectly
>   responsive even when bombed with 10 Mpps over an emulated e1000,
>   and happily processes 1.7 Mpps through ipfw.
>
>   Note that some incompatibilities still remain: e.g. polling is not
>   (yet) compatible with netmap, and seems to freeze the guest when
>   kern.polling.idle_poll=1
>
>   MFC after:    3 days
>
> Modified:
>   head/sys/kern/kern_poll.c
>
> Modified: head/sys/kern/kern_poll.c
>
> ==============================================================================
> --- head/sys/kern/kern_poll.c   Wed May 22 15:15:05 2013        (r250910)
> +++ head/sys/kern/kern_poll.c   Wed May 22 16:32:18 2013        (r250911)
> @@ -87,12 +87,11 @@ static struct mtx   poll_mtx;
>   * The following constraints hold
>   *
>   *     1 <= poll_each_burst <= poll_burst <= poll_burst_max
> - *     0 <= poll_each_burst
>   *     MIN_POLL_BURST_MAX <= poll_burst_max <= MAX_POLL_BURST_MAX
>   */
>
>  #define MIN_POLL_BURST_MAX     10
> -#define MAX_POLL_BURST_MAX     1000
> +#define MAX_POLL_BURST_MAX     20000
>
>  static uint32_t poll_burst = 5;
>  static uint32_t poll_burst_max = 150;  /* good for 100Mbit net and
> HZ=1000 */
>
> ----- End forwarded message -----
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMUJtRPKmsv9nxS4gSPTZUi1bjvgK03P-TS7D4cEcCt7MNO5Lg>