From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Pankaj Gupta <pagupta@redhat.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
davem@davemloft.net, dgibson@redhat.com, vfalico@gmail.com,
edumazet@google.com, vyasevic@redhat.com, hkchu@google.com,
wuzhy@linux.vnet.ibm.com, xemul@parallels.com,
therbert@google.com, bhutchings@solarflare.com, xii@google.com,
stephen@networkplumber.org, jiri@resnulli.us,
sergei.shtylyov@cogentembedded.com
Subject: Re: [PATCH v3 net-next 2/2 tuntap: Increase the number of queues in tun.
Date: Thu, 4 Dec 2014 12:20:13 +0200 [thread overview]
Message-ID: <20141204102013.GC17122@redhat.com> (raw)
In-Reply-To: <1417661734.16500.0@smtp.corp.redhat.com>
On Thu, Dec 04, 2014 at 03:03:34AM +0008, Jason Wang wrote:
>
>
> On Wed, Dec 3, 2014 at 5:52 PM, Michael S. Tsirkin <mst@redhat.com> wrote:
> >On Wed, Dec 03, 2014 at 12:49:37PM +0530, Pankaj Gupta wrote:
> >> Networking under kvm works best if we allocate a per-vCPU RX and TX
> >> queue in a virtual NIC. This requires a per-vCPU queue on the host
> >>side.
> >> It is now safe to increase the maximum number of queues.
> >> Preceding patche: 'net: allow large number of rx queues'
> >
> >s/patche/patch/
> >
> >> made sure this won't cause failures due to high order memory
> >> allocations. Increase it to 256: this is the max number of vCPUs
> >> KVM supports.
> >> Signed-off-by: Pankaj Gupta <pagupta@redhat.com>
> >> Reviewed-by: David Gibson <dgibson@redhat.com>
> >
> >Hmm it's kind of nasty that each tun device is now using x16 memory.
> >Maybe we should look at using a flex array instead, and removing the
> >limitation altogether (e.g. make it INT_MAX)?
>
> But this only happens when IFF_MULTIQUEUE were used.
I refer to this field:
struct tun_file __rcu *tfiles[MAX_TAP_QUEUES];
if we make MAX_TAP_QUEUES 256, this will use 4K bytes,
apparently unconditionally.
> And core has vmalloc() fallback.
> So probably not a big issue?
> >
> >
> >
> >> ---
> >> drivers/net/tun.c | 9 +++++----
> >> 1 file changed, 5 insertions(+), 4 deletions(-)
> >> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
> >> index e3fa65a..a19dc5f8 100644
> >> --- a/drivers/net/tun.c
> >> +++ b/drivers/net/tun.c
> >> @@ -113,10 +113,11 @@ struct tap_filter {
> >> unsigned char addr[FLT_EXACT_COUNT][ETH_ALEN];
> >> };
> >> -/* DEFAULT_MAX_NUM_RSS_QUEUES were chosen to let the rx/tx queues
> >>allocated for
> >> - * the netdevice to be fit in one page. So we can make sure the
> >>success of
> >> - * memory allocation. TODO: increase the limit. */
> >> -#define MAX_TAP_QUEUES DEFAULT_MAX_NUM_RSS_QUEUES
> >> +/* MAX_TAP_QUEUES 256 is chosen to allow rx/tx queues to be equal
> >> + * to max number of vCPUS in guest. Also, we are making sure here
> >> + * queue memory allocation do not fail.
> >
> >It's not queue memory allocation anymore, is it?
> >I would say "
> >This also helps the tfiles field fit in 4K, so the whole tun
> >device only needs an order-1 allocation.
> >"
> >
> >> + */
> >> +#define MAX_TAP_QUEUES 256
> >> #define MAX_TAP_FLOWS 4096
> >> #define TUN_FLOW_EXPIRE (3 * HZ)
> >> -- 1.8.3.1
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe netdev" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-12-04 10:21 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-03 7:19 [PATCH v3 net-net 0/2] Increase the limit of tuntap queues Pankaj Gupta
2014-12-03 7:19 ` [PATCH v3 net-next 1/2] net: allow large number of rx queues Pankaj Gupta
2014-12-03 9:42 ` Michael S. Tsirkin
2014-12-04 10:45 ` Pankaj Gupta
2014-12-03 7:19 ` [PATCH v3 net-next 2/2 tuntap: Increase the number of queues in tun Pankaj Gupta
2014-12-03 9:52 ` Michael S. Tsirkin
2014-12-04 2:55 ` Jason Wang
2014-12-04 10:20 ` Michael S. Tsirkin [this message]
2014-12-04 10:42 ` Pankaj Gupta
2014-12-05 7:35 ` Jason Wang
2014-12-10 7:56 ` Pankaj Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141204102013.GC17122@redhat.com \
--to=mst@redhat.com \
--cc=bhutchings@solarflare.com \
--cc=davem@davemloft.net \
--cc=dgibson@redhat.com \
--cc=edumazet@google.com \
--cc=hkchu@google.com \
--cc=jasowang@redhat.com \
--cc=jiri@resnulli.us \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pagupta@redhat.com \
--cc=sergei.shtylyov@cogentembedded.com \
--cc=stephen@networkplumber.org \
--cc=therbert@google.com \
--cc=vfalico@gmail.com \
--cc=vyasevic@redhat.com \
--cc=wuzhy@linux.vnet.ibm.com \
--cc=xemul@parallels.com \
--cc=xii@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.