From patchwork Fri Jan 12 11:17:04 2018
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Ilya Maximets
X-Patchwork-Id: 859766
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Authentication-Results: ozlabs.org;
spf=pass (mailfrom) smtp.mailfrom=openvswitch.org
(client-ip=140.211.169.12; helo=mail.linuxfoundation.org;
envelope-from=ovs-dev-bounces@openvswitch.org;
receiver=)
Authentication-Results: ozlabs.org;
dkim=fail reason="signature verification failed" (1024-bit key;
unprotected) header.d=samsung.com header.i=@samsung.com
header.b="QI12aY+O"; dkim-atps=neutral
Received: from mail.linuxfoundation.org (mail.linuxfoundation.org
[140.211.169.12])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256
bits)) (No client certificate requested)
by ozlabs.org (Postfix) with ESMTPS id 3zJ0bw5Qn2z9sQm
for ;
Fri, 12 Jan 2018 22:18:20 +1100 (AEDT)
Received: from mail.linux-foundation.org (localhost [127.0.0.1])
by mail.linuxfoundation.org (Postfix) with ESMTP id D7BCEEF5;
Fri, 12 Jan 2018 11:17:36 +0000 (UTC)
X-Original-To: ovs-dev@openvswitch.org
Delivered-To: ovs-dev@mail.linuxfoundation.org
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id DC815EE5
for ; Fri, 12 Jan 2018 11:17:34 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com
[210.118.77.11])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id BC1CF12E
for ; Fri, 12 Jan 2018 11:17:32 +0000 (UTC)
Received: from eucas1p1.samsung.com (unknown [182.198.249.206])
by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id
20180112111730euoutp01bae172c145851b8c004fb2c1b75a41f7~JC_pFzyku2223122231euoutp01j;
Fri, 12 Jan 2018 11:17:30 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com
20180112111730euoutp01bae172c145851b8c004fb2c1b75a41f7~JC_pFzyku2223122231euoutp01j
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
s=mail20170921; t=1515755850;
bh=fU/M0iPmzJO8EDZkeJK+cMBXgqGB0r1edWNSvzWdyq8=;
h=From:To:Cc:Subject:Date:In-reply-to:References:From;
b=QI12aY+OCGuXKBeve3zoBs6moce7yPdQ4YDwEeF/iJu4y0F/ogqiEwMb++fIb5SW7
kYBRkzBALTKfnWMIuI3FSh8OJ70LD4h6AzGS/2/KUOR2covM0lqVtgTRTisoo23lFa
Esl4e2xzEr4fMOTSHhCNCxk+c0/WH2cyDUT+3+ag=
Received: from eusmges5.samsung.com (unknown [203.254.199.245]) by
eucas1p1.samsung.com (KnoxPortal) with ESMTP id
20180112111729eucas1p1458eae449cead8b8f2d09f69eb46b3ca~JC_ogjKSv1568915689eucas1p1A;
Fri, 12 Jan 2018 11:17:29 +0000 (GMT)
Received: from eucas1p2.samsung.com ( [182.198.249.207]) by
eusmges5.samsung.com (EUCPMTA) with SMTP id 11.3C.12743.949985A5;
Fri, 12 Jan 2018 11:17:29 +0000 (GMT)
Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by
eucas1p1.samsung.com (KnoxPortal) with ESMTP id
20180112111729eucas1p1bc421486d04e3fcba119875e8efcfab0~JC_n6WLiw2219022190eucas1p1Z;
Fri, 12 Jan 2018 11:17:29 +0000 (GMT)
X-AuditID: cbfec7f5-f79d06d0000031c7-b2-5a5899499da5
Received: from eusync1.samsung.com ( [203.254.199.211]) by
eusmgms1.samsung.com (EUCPMTA) with SMTP id EC.27.18832.949985A5;
Fri, 12 Jan 2018 11:17:29 +0000 (GMT)
Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by
eusync1.samsung.com (Oracle Communications Messaging Server
7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id
<0P2F00EP4WORX3A0@eusync1.samsung.com>;
Fri, 12 Jan 2018 11:17:29 +0000 (GMT)
From: Ilya Maximets
To: ovs-dev@openvswitch.org
Date: Fri, 12 Jan 2018 14:17:04 +0300
Message-id: <1515755828-1848-2-git-send-email-i.maximets@samsung.com>
X-Mailer: git-send-email 2.7.4
In-reply-to: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFrrIIsWRmVeSWpSXmKPExsWy7djP87qeMyOiDLqaFCxW/+K02PlM2WLH
2qWMFi39M5kt7lz5yWYx7fNtdosr7T/ZLTY+PMtqceT7aUaLtYc+sFvM/fSc0YHb49fXq2we
i/e8ZPJ4dvM/o8f7fUBu35ZVjAGsUVw2Kak5mWWpRfp2CVwZzd+WsBXMUKyYc/sPWwNjn2QX
IyeHhICJxI9F+9khbDGJC/fWs3UxcnEICSxllNh8/SMzhPOZUeLfh3lsMB3fbr5igkgsY5To
PfqVEcJpZpJ4eq8HbBabgI7EqdVHGEFsEQFpide9b1hBbGaBrcwSC/vUQGxhASeJ5uUnwaay
CKhKzJ37HayGV8BV4vraE6wQ2+Qkbp7rBDqDg4NTwE3iwq4oiPAGNolJZ1IhbBeJv52voI4T
lnh1fAvUOzISnR0HwQ6VEGhmlGhYdYkRwpnAKPGleTkTRJW9xKmbV5kgjuOTmLRtOtgyCQFe
iY42IYgSD4kPS74yQtiOEhOubIEGy0xGiRk7PjNNYJRewMiwilEktbQ4Nz212FSvODG3uDQv
XS85P3cTIzCiT/87/nUH49JjVocYBTgYlXh4LQrCo4RYE8uKK3MPMUpwMCuJ8LIURUQJ8aYk
VlalFuXHF5XmpBYfYpTmYFES57WNaosUEkhPLEnNTk0tSC2CyTJxcEo1MLb8i/7yJkE3kqtS
2eSMkqru1Fu+WVNE/5fxNG1ovVPwSUPjpNhmp9TAmSb19+qS5/NdZ14Yvrv8UBxDgMRqXY91
1mfnJCRdSb+jkdes+tVroWP/Pl+2qusHTdN6T/2LtFDerPvr+PnQspPX9L0X2qws/HLjut3K
W3sidVT4InZXnRLniOwtUGIpzkg01GIuKk4EANUkmpbkAgAA
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFlrGLMWRmVeSWpSXmKPExsVy+t/xy7qeMyOiDA42slus/sVpsfOZssWO
tUsZLVr6ZzJb3Lnyk81i2ufb7BZX2n+yW2x8eJbV4sj304wWaw99YLeY++k5owO3x6+vV9k8
Fu95yeTx7OZ/Ro/3+4Dcvi2rGANYo7hsUlJzMstSi/TtErgymr8tYSuYoVgx5/YftgbGPsku
Rk4OCQETiW83XzFB2GISF+6tZ+ti5OIQEljCKHFqzgZmCKeVSaJ5RTs7SBWbgI7EqdVHGEFs
EQFpide9b1hBipgFtjNLnGydyAKSEBZwkmhefpINxGYRUJWYO/c7K4jNK+AqcX3tCVaIdXIS
N891Am3g4OAUcJO4sCsKJCwEVDJ1023GCYy8CxgZVjGKpJYW56bnFhvqFSfmFpfmpesl5+du
YgSG3rZjPzfvYLy0MfgQowAHoxIPr0VBeJQQa2JZcWXuIUYJDmYlEV6WoogoId6UxMqq1KL8
+KLSnNTiQ4zSHCxK4ry9e1ZHCgmkJ5akZqemFqQWwWSZODilGhg9ZX4VfhJ9ppW+xOb4nnWP
3jM7Xtq88NJrEd7uguZbr34G7bGo3Wz/SmrS6SuPi66cPLLlZ6Owq8SBnOxTHz82OBzyKZdZ
XL9vUtCa3IzVxUYVzeeLpuju+jTrgTYfx6mlPtGrTTvvhM4yXBN6cP7019O9OWLXPH1ZOPfq
i8d8y1iao9/773m0QYmlOCPRUIu5qDgRAPXHNv45AgAA
X-CMS-MailID: 20180112111729eucas1p1bc421486d04e3fcba119875e8efcfab0
X-Msg-Generator: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20180112111729eucas1p1bc421486d04e3fcba119875e8efcfab0
X-RootMTR: 20180112111729eucas1p1bc421486d04e3fcba119875e8efcfab0
References: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI,
T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
Cc: Heetae Ahn ,
Ilya Maximets
Subject: [ovs-dev] [PATCH v10 1/5] dpif-netdev: Use microsecond granularity.
X-BeenThere: ovs-dev@openvswitch.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
MIME-Version: 1.0
Sender: ovs-dev-bounces@openvswitch.org
Errors-To: ovs-dev-bounces@openvswitch.org
Upcoming time-based output batching will require microsecond
granularity for it's flexible configuration.
Signed-off-by: Ilya Maximets
Acked-by: Jan Scheurich
---
lib/dpif-netdev.c | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index dc26026..b35700d 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -180,12 +180,13 @@ struct emc_cache {
/* Simple non-wildcarding single-priority classifier. */
-/* Time in ms between successive optimizations of the dpcls subtable vector */
-#define DPCLS_OPTIMIZATION_INTERVAL 1000
+/* Time in microseconds between successive optimizations of the dpcls
+ * subtable vector */
+#define DPCLS_OPTIMIZATION_INTERVAL 1000000LL
-/* Time in ms of the interval in which rxq processing cycles used in
- * rxq to pmd assignments is measured and stored. */
-#define PMD_RXQ_INTERVAL_LEN 10000
+/* Time in microseconds of the interval in which rxq processing cycles used
+ * in rxq to pmd assignments is measured and stored. */
+#define PMD_RXQ_INTERVAL_LEN 10000000LL
/* Number of intervals for which cycles are stored
* and used during rxq to pmd assignment. */
@@ -341,7 +342,7 @@ enum rxq_cycles_counter_type {
RXQ_N_CYCLES
};
-#define XPS_TIMEOUT_MS 500LL
+#define XPS_TIMEOUT 500000LL /* In microseconds. */
/* Contained by struct dp_netdev_port's 'rxqs' member. */
struct dp_netdev_rxq {
@@ -758,7 +759,7 @@ emc_cache_slow_sweep(struct emc_cache *flow_cache)
static inline void
pmd_thread_ctx_time_update(struct dp_netdev_pmd_thread *pmd)
{
- pmd->ctx.now = time_msec();
+ pmd->ctx.now = time_usec();
}
/* Returns true if 'dpif' is a netdev or dummy dpif, false otherwise. */
@@ -4145,7 +4146,7 @@ dp_netdev_run_meter(struct dp_netdev *dp, struct dp_packet_batch *packets_,
memset(exceeded_rate, 0, cnt * sizeof *exceeded_rate);
/* All packets will hit the meter at the same time. */
- long_delta_t = (now - meter->used); /* msec */
+ long_delta_t = (now - meter->used) / 1000; /* msec */
/* Make sure delta_t will not be too large, so that bucket will not
* wrap around below. */
@@ -4301,7 +4302,7 @@ dpif_netdev_meter_set(struct dpif *dpif, ofproto_meter_id *meter_id,
meter->flags = config->flags;
meter->n_bands = config->n_bands;
meter->max_delta_t = 0;
- meter->used = time_msec();
+ meter->used = time_usec();
/* set up bands */
for (i = 0; i < config->n_bands; ++i) {
@@ -4843,7 +4844,7 @@ packet_batch_per_flow_execute(struct packet_batch_per_flow *batch,
struct dp_netdev_flow *flow = batch->flow;
dp_netdev_flow_used(flow, batch->array.count, batch->byte_count,
- batch->tcp_flags, pmd->ctx.now);
+ batch->tcp_flags, pmd->ctx.now / 1000);
actions = dp_netdev_flow_get_actions(flow);
@@ -5228,7 +5229,7 @@ dpif_netdev_xps_revalidate_pmd(const struct dp_netdev_pmd_thread *pmd,
continue;
}
interval = pmd->ctx.now - tx->last_used;
- if (tx->qid >= 0 && (purge || interval >= XPS_TIMEOUT_MS)) {
+ if (tx->qid >= 0 && (purge || interval >= XPS_TIMEOUT)) {
port = tx->port;
ovs_mutex_lock(&port->txq_used_mutex);
port->txq_used[tx->qid]--;
@@ -5249,7 +5250,7 @@ dpif_netdev_xps_get_tx_qid(const struct dp_netdev_pmd_thread *pmd,
interval = pmd->ctx.now - tx->last_used;
tx->last_used = pmd->ctx.now;
- if (OVS_LIKELY(tx->qid >= 0 && interval < XPS_TIMEOUT_MS)) {
+ if (OVS_LIKELY(tx->qid >= 0 && interval < XPS_TIMEOUT)) {
return tx->qid;
}
@@ -5628,7 +5629,7 @@ dp_execute_cb(void *aux_, struct dp_packet_batch *packets_,
conntrack_execute(&dp->conntrack, packets_, aux->flow->dl_type, force,
commit, zone, setmark, setlabel, aux->flow->tp_src,
aux->flow->tp_dst, helper, nat_action_info_ref,
- pmd->ctx.now);
+ pmd->ctx.now / 1000);
break;
}
From patchwork Fri Jan 12 11:17:05 2018
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Ilya Maximets
X-Patchwork-Id: 859767
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Authentication-Results: ozlabs.org;
spf=pass (mailfrom) smtp.mailfrom=openvswitch.org
(client-ip=140.211.169.12; helo=mail.linuxfoundation.org;
envelope-from=ovs-dev-bounces@openvswitch.org;
receiver=)
Authentication-Results: ozlabs.org;
dkim=fail reason="signature verification failed" (1024-bit key;
unprotected) header.d=samsung.com header.i=@samsung.com
header.b="mbRfxXw8"; dkim-atps=neutral
Received: from mail.linuxfoundation.org (mail.linuxfoundation.org
[140.211.169.12])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256
bits)) (No client certificate requested)
by ozlabs.org (Postfix) with ESMTPS id 3zJ0cf01Dbz9t3G
for ;
Fri, 12 Jan 2018 22:18:57 +1100 (AEDT)
Received: from mail.linux-foundation.org (localhost [127.0.0.1])
by mail.linuxfoundation.org (Postfix) with ESMTP id E6CCEEF8;
Fri, 12 Jan 2018 11:17:38 +0000 (UTC)
X-Original-To: ovs-dev@openvswitch.org
Delivered-To: ovs-dev@mail.linuxfoundation.org
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id 0BD97EB3
for ; Fri, 12 Jan 2018 11:17:37 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com
[210.118.77.12])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 7A739D0
for ; Fri, 12 Jan 2018 11:17:36 +0000 (UTC)
Received: from eucas1p2.samsung.com (unknown [182.198.249.207])
by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id
20180112111734euoutp023cee11b209fbb5a1b3740a79f19c986b~JC_swn6zh1126311263euoutp02o;
Fri, 12 Jan 2018 11:17:34 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com
20180112111734euoutp023cee11b209fbb5a1b3740a79f19c986b~JC_swn6zh1126311263euoutp02o
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
s=mail20170921; t=1515755854;
bh=7jCD0PPWncE+gjM9PAWv+aHEeUQkKkXx/2F15AQtzPE=;
h=From:To:Cc:Subject:Date:In-reply-to:References:From;
b=mbRfxXw8t2a1K2TSXqJWUDKR7JEvh4E/ENu7ISh7yqiwQBrjJEgNIIdDfpUGkNWXE
O7Vh4VIlTVzN5YPfYOejTWSs4LKerRstPmvHd8Cg9FkTJytcjUo4ti2P2ZuL7VyGrU
edRFRgh876VpWjRAjZVEfyO4GrxPT7PKihrJqCfs=
Received: from eusmges5.samsung.com (unknown [203.254.199.245]) by
eucas1p2.samsung.com (KnoxPortal) with ESMTP id
20180112111733eucas1p2e693ccf585f7aa0d002a2227b61b8e59~JC_sDfoRa0432804328eucas1p2t;
Fri, 12 Jan 2018 11:17:33 +0000 (GMT)
Received: from eucas1p1.samsung.com ( [182.198.249.206]) by
eusmges5.samsung.com (EUCPMTA) with SMTP id E2.3C.12743.D49985A5;
Fri, 12 Jan 2018 11:17:33 +0000 (GMT)
Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by
eucas1p1.samsung.com (KnoxPortal) with ESMTP id
20180112111732eucas1p176c14030cc8c8faa4909da74f41c2a44~JC_rNx4qO2218022180eucas1p1l;
Fri, 12 Jan 2018 11:17:32 +0000 (GMT)
X-AuditID: cbfec7f5-f79d06d0000031c7-b8-5a58994d7895
Received: from eusync1.samsung.com ( [203.254.199.211]) by
eusmgms1.samsung.com (EUCPMTA) with SMTP id 3E.27.18832.C49985A5;
Fri, 12 Jan 2018 11:17:32 +0000 (GMT)
Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by
eusync1.samsung.com (Oracle Communications Messaging Server
7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id
<0P2F00EP4WORX3A0@eusync1.samsung.com>;
Fri, 12 Jan 2018 11:17:32 +0000 (GMT)
From: Ilya Maximets
To: ovs-dev@openvswitch.org
Date: Fri, 12 Jan 2018 14:17:05 +0300
Message-id: <1515755828-1848-3-git-send-email-i.maximets@samsung.com>
X-Mailer: git-send-email 2.7.4
In-reply-to: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFrrIIsWRmVeSWpSXmKPExsWy7djPc7q+MyOiDCYuErZY/YvTYuczZYsd
a5cyWrT0z2S2uHPlJ5vFtM+32S2utP9kt9j48CyrxZHvpxkt1h76wG4x99NzRgduj19fr7J5
LN7zksnj2c3/jB7v9wG5fVtWMQawRnHZpKTmZJalFunbJXBl/NomVnBCpeLjnf3MDYzbpLsY
OTkkBEwkLv1pYoawxSQu3FvP1sXIxSEksJRRounBR1YI5zOjxK0771lhOn48uscMkVjGKNG4
ZhWU08wk8fHmHCaQKjYBHYlTq48wgtgiAtISr3vfgHUzC2xllljYpwZiCwu4SNxe8gWsnkVA
VeLsk3lgNbwCrhLvl62CuklO4ua5TiCbg4NTwE3iwq4okF0SAmvYJCZ8bGWDqHGRmHrvHtR1
whKvjm9hh7BlJDo7DjJBNDQzSjSsusQI4UxglPjSvJwJospe4tTNq0wQ1/FJTNo2HWybhACv
REebEESJh8TbCSeghjpK7Dt8kgXi45mMEneWrmWZwCi9gJFhFaNIamlxbnpqsalecWJucWle
ul5yfu4mRmBEn/53/OsOxqXHrA4xCnAwKvHwWhSERwmxJpYVV+YeYpTgYFYS4WUpiogS4k1J
rKxKLcqPLyrNSS0+xCjNwaIkzmsb1RYpJJCeWJKanZpakFoEk2Xi4JRqYBRzz4kVzWSt4M97
rbpVxKiqd+uUgud3FJZlGV9w3ieb03D2yQ+No84/H5+br5J2RUnD+u6uTZzeP3v+MVn6JB1/
ybvf4svR41qZ85O+LakVvsg3SVgnXnjdoUXMJ4rtHklXOQcETN666cXtpuObT7nOMFZ6+f7X
5Sn/D9702RaxXejElq/rH7ErsRRnJBpqMRcVJwIANq7dv+QCAAA=
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFlrCLMWRmVeSWpSXmKPExsVy+t/xy7o+MyOiDK7+U7dY/YvTYuczZYsd
a5cyWrT0z2S2uHPlJ5vFtM+32S2utP9kt9j48CyrxZHvpxkt1h76wG4x99NzRgduj19fr7J5
LN7zksnj2c3/jB7v9wG5fVtWMQawRnHZpKTmZJalFunbJXBl/NomVnBCpeLjnf3MDYzbpLsY
OTkkBEwkfjy6xwxhi0lcuLeerYuRi0NIYAmjxOnVr9hBEkICrUwSV3b6g9hsAjoSp1YfYQSx
RQSkJV73vmEFaWAW2M4scbJ1IgtIQljAReL2ki9MIDaLgKrE2SfzWEFsXgFXiffLVkFtk5O4
ea4TyObg4BRwk7iwKwpil6vE1E23GScw8i5gZFjFKJJaWpybnltsqFecmFtcmpeul5yfu4kR
GHbbjv3cvIPx0sbgQ4wCHIxKPLwWBeFRQqyJZcWVuYcYJTiYlUR4WYoiooR4UxIrq1KL8uOL
SnNSiw8xSnOwKInz9u5ZHSkkkJ5YkpqdmlqQWgSTZeLglGpgjJ7etO+2yJG32Vop9vMsT23e
H1ixJdfizZZnM/8euj7l25wD7hn7cvintU8qZDzSsWvZ+5Cfm5QrrvvPS2j/bqTipV5ytEij
pXSC+9zMSRvP7vy2YsmPZ1YL7F+u6885bRaWuHbPX7GKVqmVMvsad5XLt9zg3qHexF9nVKdo
MSM2dHXg+oMfFJVYijMSDbWYi4oTAaJEDGc3AgAA
X-CMS-MailID: 20180112111732eucas1p176c14030cc8c8faa4909da74f41c2a44
X-Msg-Generator: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20180112111732eucas1p176c14030cc8c8faa4909da74f41c2a44
X-RootMTR: 20180112111732eucas1p176c14030cc8c8faa4909da74f41c2a44
References: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI,
T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
Cc: Heetae Ahn ,
Ilya Maximets
Subject: [ovs-dev] [PATCH v10 2/5] dpif-netdev: Count cycles on per-rxq
basis.
X-BeenThere: ovs-dev@openvswitch.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
MIME-Version: 1.0
Sender: ovs-dev-bounces@openvswitch.org
Errors-To: ovs-dev-bounces@openvswitch.org
Upcoming time-based output batching will allow to collect in a single
output batch packets from different RX queues. Lets keep the list of
RX queues for each output packet and collect cycles for them on send.
Signed-off-by: Ilya Maximets
Tested-by: Jan Scheurich
Acked-by: Jan Scheurich
---
lib/dpif-netdev.c | 31 +++++++++++++++++++++++++++++--
1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index b35700d..6909a03 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -501,6 +501,7 @@ struct tx_port {
long long last_used;
struct hmap_node node;
struct dp_packet_batch output_pkts;
+ struct dp_netdev_rxq *output_pkts_rxqs[NETDEV_MAX_BURST];
};
/* A set of properties for the current processing loop that is not directly
@@ -510,6 +511,8 @@ struct tx_port {
struct dp_netdev_pmd_thread_ctx {
/* Latest measured time. See 'pmd_thread_ctx_time_update()'. */
long long now;
+ /* RX queue from which last packet was received. */
+ struct dp_netdev_rxq *last_rxq;
};
/* PMD: Poll modes drivers. PMD accesses devices via polling to eliminate
@@ -3155,9 +3158,14 @@ static void
dp_netdev_pmd_flush_output_on_port(struct dp_netdev_pmd_thread *pmd,
struct tx_port *p)
{
+ int i;
int tx_qid;
int output_cnt;
bool dynamic_txqs;
+ struct cycle_timer timer;
+ uint64_t cycles;
+
+ cycle_timer_start(&pmd->perf_stats, &timer);
dynamic_txqs = p->port->dynamic_txqs;
if (dynamic_txqs) {
@@ -3167,12 +3175,22 @@ dp_netdev_pmd_flush_output_on_port(struct dp_netdev_pmd_thread *pmd,
}
output_cnt = dp_packet_batch_size(&p->output_pkts);
+ ovs_assert(output_cnt > 0);
netdev_send(p->port->netdev, tx_qid, &p->output_pkts, dynamic_txqs);
dp_packet_batch_init(&p->output_pkts);
pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_SENT_PKTS, output_cnt);
pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_SENT_BATCHES, 1);
+
+ /* Update send cycles for all the rx queues evenly. */
+ cycles = cycle_timer_stop(&pmd->perf_stats, &timer) / output_cnt;
+ for (i = 0; i < output_cnt; i++) {
+ if (p->output_pkts_rxqs[i]) {
+ dp_netdev_rxq_add_cycles(p->output_pkts_rxqs[i],
+ RXQ_CYCLES_PROC_CURR, cycles);
+ }
+ }
}
static void
@@ -3196,10 +3214,14 @@ dp_netdev_process_rxq_port(struct dp_netdev_pmd_thread *pmd,
struct cycle_timer timer;
int error;
int batch_cnt = 0;
+ uint64_t cycles;
/* Measure duration for polling and processing rx burst. */
cycle_timer_start(&pmd->perf_stats, &timer);
+
+ pmd->ctx.last_rxq = rxq;
dp_packet_batch_init(&batch);
+
error = netdev_rxq_recv(rxq->rx, &batch);
if (!error) {
/* At least one packet received. */
@@ -3208,12 +3230,12 @@ dp_netdev_process_rxq_port(struct dp_netdev_pmd_thread *pmd,
batch_cnt = batch.count;
dp_netdev_input(pmd, &batch, port_no);
- dp_netdev_pmd_flush_output_packets(pmd);
/* Assign processing cycles to rx queue. */
- uint64_t cycles = cycle_timer_stop(&pmd->perf_stats, &timer);
+ cycles = cycle_timer_stop(&pmd->perf_stats, &timer);
dp_netdev_rxq_add_cycles(rxq, RXQ_CYCLES_PROC_CURR, cycles);
+ dp_netdev_pmd_flush_output_packets(pmd);
} else {
/* Discard cycles. */
cycle_timer_stop(&pmd->perf_stats, &timer);
@@ -3225,6 +3247,8 @@ dp_netdev_process_rxq_port(struct dp_netdev_pmd_thread *pmd,
}
}
+ pmd->ctx.last_rxq = NULL;
+
return batch_cnt;
}
@@ -4512,6 +4536,7 @@ dp_netdev_configure_pmd(struct dp_netdev_pmd_thread *pmd, struct dp_netdev *dp,
ovs_mutex_init(&pmd->port_mutex);
cmap_init(&pmd->flow_table);
cmap_init(&pmd->classifiers);
+ pmd->ctx.last_rxq = NULL;
pmd_thread_ctx_time_update(pmd);
pmd->next_optimization = pmd->ctx.now + DPCLS_OPTIMIZATION_INTERVAL;
pmd->rxq_next_cycle_store = pmd->ctx.now + PMD_RXQ_INTERVAL_LEN;
@@ -5389,6 +5414,8 @@ dp_execute_cb(void *aux_, struct dp_packet_batch *packets_,
dp_netdev_pmd_flush_output_on_port(pmd, p);
}
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
+ p->output_pkts_rxqs[dp_packet_batch_size(&p->output_pkts)] =
+ pmd->ctx.last_rxq;
dp_packet_batch_add(&p->output_pkts, packet);
}
return;
From patchwork Fri Jan 12 11:17:06 2018
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Ilya Maximets
X-Patchwork-Id: 859768
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Authentication-Results: ozlabs.org;
spf=pass (mailfrom) smtp.mailfrom=openvswitch.org
(client-ip=140.211.169.12; helo=mail.linuxfoundation.org;
envelope-from=ovs-dev-bounces@openvswitch.org;
receiver=)
Authentication-Results: ozlabs.org;
dkim=fail reason="signature verification failed" (1024-bit key;
unprotected) header.d=samsung.com header.i=@samsung.com
header.b="Jpjvb83Z"; dkim-atps=neutral
Received: from mail.linuxfoundation.org (mail.linuxfoundation.org
[140.211.169.12])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256
bits)) (No client certificate requested)
by ozlabs.org (Postfix) with ESMTPS id 3zJ0dL4Ywkz9sQm
for ;
Fri, 12 Jan 2018 22:19:34 +1100 (AEDT)
Received: from mail.linux-foundation.org (localhost [127.0.0.1])
by mail.linuxfoundation.org (Postfix) with ESMTP id D16E3F22;
Fri, 12 Jan 2018 11:17:41 +0000 (UTC)
X-Original-To: ovs-dev@openvswitch.org
Delivered-To: ovs-dev@mail.linuxfoundation.org
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id 73AB7F56
for ; Fri, 12 Jan 2018 11:17:40 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com
[210.118.77.11])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 2345AD0
for ; Fri, 12 Jan 2018 11:17:39 +0000 (UTC)
Received: from eucas1p1.samsung.com (unknown [182.198.249.206])
by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id
20180112111737euoutp012977092b4adf0b3c8068def15d0abc1e~JC_vPhEVu2224622246euoutp01l;
Fri, 12 Jan 2018 11:17:37 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com
20180112111737euoutp012977092b4adf0b3c8068def15d0abc1e~JC_vPhEVu2224622246euoutp01l
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
s=mail20170921; t=1515755857;
bh=ZSkCmpX2K9VNebwFStKKUm66a+i34RiUfjkGfyhpWzI=;
h=From:To:Cc:Subject:Date:In-reply-to:References:From;
b=Jpjvb83ZDNgK13WpAejyx+J+RzPQmR0RxD3ERIssqOhRsAP7Ra5xZbKz5cR9ZpjaK
xdqofEDVbq2d4SDPwZwUdiVu44wyZ3jXdWqxGgN7uL+L0ecapsAduQehXc/bCdoHOu
acMFdYOJ6oaiURse/JZ3y4IF1xT8e87IHgWKIkAM=
Received: from eusmges5.samsung.com (unknown [203.254.199.245]) by
eucas1p1.samsung.com (KnoxPortal) with ESMTP id
20180112111736eucas1p13ef629e5b35719ed876dc3e4cd7a2903~JC_un-X1-2218922189eucas1p1d;
Fri, 12 Jan 2018 11:17:36 +0000 (GMT)
Received: from eucas1p1.samsung.com ( [182.198.249.206]) by
eusmges5.samsung.com (EUCPMTA) with SMTP id 14.3C.12743.059985A5;
Fri, 12 Jan 2018 11:17:36 +0000 (GMT)
Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by
eucas1p1.samsung.com (KnoxPortal) with ESMTP id
20180112111735eucas1p1c61f5aa366c29f04933af45ed6c4e5e4~JC_uANZhg2218922189eucas1p1c;
Fri, 12 Jan 2018 11:17:35 +0000 (GMT)
X-AuditID: cbfec7f5-f79d06d0000031c7-be-5a5899504c2f
Received: from eusync1.samsung.com ( [203.254.199.211]) by
eusmgms1.samsung.com (EUCPMTA) with SMTP id BF.27.18832.F49985A5;
Fri, 12 Jan 2018 11:17:35 +0000 (GMT)
Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by
eusync1.samsung.com (Oracle Communications Messaging Server
7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id
<0P2F00EP4WORX3A0@eusync1.samsung.com>;
Fri, 12 Jan 2018 11:17:35 +0000 (GMT)
From: Ilya Maximets
To: ovs-dev@openvswitch.org
Date: Fri, 12 Jan 2018 14:17:06 +0300
Message-id: <1515755828-1848-4-git-send-email-i.maximets@samsung.com>
X-Mailer: git-send-email 2.7.4
In-reply-to: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFrrEIsWRmVeSWpSXmKPExsWy7djPc7oBMyOiDGa8ZLVY/YvTYuczZYsd
a5cyWrT0z2S2uHPlJ5vFtM+32S2utP9kt9j48CyrxZHvpxkt1h76wG4x99NzRgduj19fr7J5
LN7zksnj2c3/jB7v9wG5fVtWMQawRnHZpKTmZJalFunbJXBl3Nk8ia1gRnrF39f3mRsYD3h1
MXJySAiYSOw5dZYRwhaTuHBvPVsXIxeHkMBSRokdXXtYIJzPjBIfbzczwXTsPbCIFSKxjFHi
7oMmKKeZSeLuyelgVWwCOhKnVh8BmysiIC3xuvcNK4jNLLCVWWJhnxqILSzgKHH+8UmwehYB
VYmLl/+D1fAKuEpc+f+EBWKbnMTNc53MXYwcHJwCbhIXdkWB7JIQ2MAmce1qIxtEjYvEq47D
zBC2sMSr41vYIWwZic6Og0wQDc2MEg2rLjFCOBMYJb40L4f6x17i1M2rTBDX8UlM2jYdbJuE
AK9ER5sQRImHxPMbq1khbEeJG23voYE0k1Hi9cTPrBMYpRcwMqxiFEktLc5NTy021StOzC0u
zUvXS87P3cQIjOnT/45/3cG49JjVIUYBDkYlHl6LgvAoIdbEsuLK3EOMEhzMSiK8LEURUUK8
KYmVValF+fFFpTmpxYcYpTlYlMR5baPaIoUE0hNLUrNTUwtSi2CyTBycUg2MydHpmzInnZtx
eJ0C4xytpuDly39ImE/xKn7/rjj+TghfVo/r840vfrgdV+eO3dxbNcnb6a5ajWB2UTiv+9VI
UzvpRwvupgh82mP0eYu4Cfss07bZSlt/d5kvLpi39KJAgO7WduvjE1iU9+VrVnVY1C3MW/HB
IGrDVNHUi1ctWPpbdupt+OalxFKckWioxVxUnAgAmP6rpeUCAAA=
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFlrGLMWRmVeSWpSXmKPExsVy+t/xy7r+MyOiDKa0a1is/sVpsfOZssWO
tUsZLVr6ZzJb3Lnyk81i2ufb7BZX2n+yW2x8eJbV4sj304wWaw99YLeY++k5owO3x6+vV9k8
Fu95yeTx7OZ/Ro/3+4Dcvi2rGANYo7hsUlJzMstSi/TtErgy7myexFYwI73i7+v7zA2MB7y6
GDk5JARMJPYeWMQKYYtJXLi3nq2LkYtDSGAJo0R39wd2CKeVSeLd1GeMIFVsAjoSp1YfAbNF
BKQlXve+YQUpYhbYzixxsnUiC0hCWMBR4vzjk0wgNouAqsTFy//BVvAKuEpc+f+EBWKdnMTN
c53MXYwcHJwCbhIXdkWBhIWASqZuus04gZF3ASPDKkaR1NLi3PTcYkO94sTc4tK8dL3k/NxN
jMDQ23bs5+YdjJc2Bh9iFOBgVOLhtSgIjxJiTSwrrsw9xCjBwawkwstSFBElxJuSWFmVWpQf
X1Sak1p8iFGag0VJnLd3z+pIIYH0xJLU7NTUgtQimCwTB6dUA6PJtKNTBYzmFB1x3hz/QXqx
LR+Hgvq/1Fafu2VXP6i/LrtZb/Cyeesqn8/yOxfxJh3VaHpyRNWobPXyet/Wn5fmi8dvWXxv
dVjOMsGkd+2HT4lN2s15d8bPRWtte4oYfD1+MG5uUXI8e4xndt52S67fR9ju5M1NkYqsemNg
tXZjfNqJhVMyV7xQYinOSDTUYi4qTgQA9T8HuDkCAAA=
X-CMS-MailID: 20180112111735eucas1p1c61f5aa366c29f04933af45ed6c4e5e4
X-Msg-Generator: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20180112111735eucas1p1c61f5aa366c29f04933af45ed6c4e5e4
X-RootMTR: 20180112111735eucas1p1c61f5aa366c29f04933af45ed6c4e5e4
References: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI,
T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
Cc: Heetae Ahn ,
Ilya Maximets
Subject: [ovs-dev] [PATCH v10 3/5] dpif-netdev: Time based output batching.
X-BeenThere: ovs-dev@openvswitch.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
MIME-Version: 1.0
Sender: ovs-dev-bounces@openvswitch.org
Errors-To: ovs-dev-bounces@openvswitch.org
This allows to collect packets from more than one RX burst
and send them together with a configurable intervals.
'other_config:tx-flush-interval' can be used to configure
time that a packet can wait in output batch for sending.
'tx-flush-interval' has microsecond resolution.
Signed-off-by: Ilya Maximets
Tested-by: Jan Scheurich
Acked-by: Jan Scheurich
---
lib/dpif-netdev.c | 108 ++++++++++++++++++++++++++++++++++++++++-----------
vswitchd/vswitch.xml | 16 ++++++++
2 files changed, 102 insertions(+), 22 deletions(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 6909a03..f0ba2b2 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -87,6 +87,9 @@ VLOG_DEFINE_THIS_MODULE(dpif_netdev);
#define MAX_RECIRC_DEPTH 6
DEFINE_STATIC_PER_THREAD_DATA(uint32_t, recirc_depth, 0)
+/* Use instant packet send by default. */
+#define DEFAULT_TX_FLUSH_INTERVAL 0
+
/* Configuration parameters. */
enum { MAX_FLOWS = 65536 }; /* Maximum number of flows in flow table. */
enum { MAX_METERS = 65536 }; /* Maximum number of meters. */
@@ -273,6 +276,9 @@ struct dp_netdev {
struct hmap ports;
struct seq *port_seq; /* Incremented whenever a port changes. */
+ /* The time that a packet can wait in output batch for sending. */
+ atomic_uint32_t tx_flush_interval;
+
/* Meters. */
struct ovs_mutex meter_locks[N_METER_LOCKS];
struct dp_meter *meters[MAX_METERS]; /* Meter bands. */
@@ -500,6 +506,7 @@ struct tx_port {
int qid;
long long last_used;
struct hmap_node node;
+ long long flush_time;
struct dp_packet_batch output_pkts;
struct dp_netdev_rxq *output_pkts_rxqs[NETDEV_MAX_BURST];
};
@@ -581,6 +588,9 @@ struct dp_netdev_pmd_thread {
* than 'cmap_count(dp->poll_threads)'. */
uint32_t static_tx_qid;
+ /* Number of filled output batches. */
+ int n_output_batches;
+
struct ovs_mutex port_mutex; /* Mutex for 'poll_list' and 'tx_ports'. */
/* List of rx queues to poll. */
struct hmap poll_list OVS_GUARDED;
@@ -670,8 +680,9 @@ static void dp_netdev_add_rxq_to_pmd(struct dp_netdev_pmd_thread *pmd,
static void dp_netdev_del_rxq_from_pmd(struct dp_netdev_pmd_thread *pmd,
struct rxq_poll *poll)
OVS_REQUIRES(pmd->port_mutex);
-static void
-dp_netdev_pmd_flush_output_packets(struct dp_netdev_pmd_thread *pmd);
+static int
+dp_netdev_pmd_flush_output_packets(struct dp_netdev_pmd_thread *pmd,
+ bool force);
static void reconfigure_datapath(struct dp_netdev *dp)
OVS_REQUIRES(dp->port_mutex);
@@ -1245,6 +1256,7 @@ create_dp_netdev(const char *name, const struct dpif_class *class,
conntrack_init(&dp->conntrack);
atomic_init(&dp->emc_insert_min, DEFAULT_EM_FLOW_INSERT_MIN);
+ atomic_init(&dp->tx_flush_interval, DEFAULT_TX_FLUSH_INTERVAL);
cmap_init(&dp->poll_threads);
@@ -2911,7 +2923,7 @@ dpif_netdev_execute(struct dpif *dpif, struct dpif_execute *execute)
dp_packet_batch_init_packet(&pp, execute->packet);
dp_netdev_execute_actions(pmd, &pp, false, execute->flow,
execute->actions, execute->actions_len);
- dp_netdev_pmd_flush_output_packets(pmd);
+ dp_netdev_pmd_flush_output_packets(pmd, true);
if (pmd->core_id == NON_PMD_CORE_ID) {
ovs_mutex_unlock(&dp->non_pmd_mutex);
@@ -2960,6 +2972,16 @@ dpif_netdev_set_config(struct dpif *dpif, const struct smap *other_config)
smap_get_ullong(other_config, "emc-insert-inv-prob",
DEFAULT_EM_FLOW_INSERT_INV_PROB);
uint32_t insert_min, cur_min;
+ uint32_t tx_flush_interval, cur_tx_flush_interval;
+
+ tx_flush_interval = smap_get_int(other_config, "tx-flush-interval",
+ DEFAULT_TX_FLUSH_INTERVAL);
+ atomic_read_relaxed(&dp->tx_flush_interval, &cur_tx_flush_interval);
+ if (tx_flush_interval != cur_tx_flush_interval) {
+ atomic_store_relaxed(&dp->tx_flush_interval, tx_flush_interval);
+ VLOG_INFO("Flushing interval for tx queues set to %"PRIu32" us",
+ tx_flush_interval);
+ }
if (!nullable_string_is_equal(dp->pmd_cmask, cmask)) {
free(dp->pmd_cmask);
@@ -3154,7 +3176,7 @@ dp_netdev_rxq_get_intrvl_cycles(struct dp_netdev_rxq *rx, unsigned idx)
return processing_cycles;
}
-static void
+static int
dp_netdev_pmd_flush_output_on_port(struct dp_netdev_pmd_thread *pmd,
struct tx_port *p)
{
@@ -3164,6 +3186,7 @@ dp_netdev_pmd_flush_output_on_port(struct dp_netdev_pmd_thread *pmd,
bool dynamic_txqs;
struct cycle_timer timer;
uint64_t cycles;
+ uint32_t tx_flush_interval;
cycle_timer_start(&pmd->perf_stats, &timer);
@@ -3180,6 +3203,13 @@ dp_netdev_pmd_flush_output_on_port(struct dp_netdev_pmd_thread *pmd,
netdev_send(p->port->netdev, tx_qid, &p->output_pkts, dynamic_txqs);
dp_packet_batch_init(&p->output_pkts);
+ /* Update time of the next flush. */
+ atomic_read_relaxed(&pmd->dp->tx_flush_interval, &tx_flush_interval);
+ p->flush_time = pmd->ctx.now + tx_flush_interval;
+
+ ovs_assert(pmd->n_output_batches > 0);
+ pmd->n_output_batches--;
+
pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_SENT_PKTS, output_cnt);
pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_SENT_BATCHES, 1);
@@ -3191,18 +3221,28 @@ dp_netdev_pmd_flush_output_on_port(struct dp_netdev_pmd_thread *pmd,
RXQ_CYCLES_PROC_CURR, cycles);
}
}
+
+ return output_cnt;
}
-static void
-dp_netdev_pmd_flush_output_packets(struct dp_netdev_pmd_thread *pmd)
+static int
+dp_netdev_pmd_flush_output_packets(struct dp_netdev_pmd_thread *pmd,
+ bool force)
{
struct tx_port *p;
+ int output_cnt = 0;
+
+ if (!pmd->n_output_batches) {
+ return 0;
+ }
HMAP_FOR_EACH (p, node, &pmd->send_port_cache) {
- if (!dp_packet_batch_is_empty(&p->output_pkts)) {
- dp_netdev_pmd_flush_output_on_port(pmd, p);
+ if (!dp_packet_batch_is_empty(&p->output_pkts)
+ && (force || pmd->ctx.now >= p->flush_time)) {
+ output_cnt += dp_netdev_pmd_flush_output_on_port(pmd, p);
}
}
+ return output_cnt;
}
static int
@@ -3213,7 +3253,7 @@ dp_netdev_process_rxq_port(struct dp_netdev_pmd_thread *pmd,
struct dp_packet_batch batch;
struct cycle_timer timer;
int error;
- int batch_cnt = 0;
+ int batch_cnt = 0, output_cnt = 0;
uint64_t cycles;
/* Measure duration for polling and processing rx burst. */
@@ -3235,7 +3275,7 @@ dp_netdev_process_rxq_port(struct dp_netdev_pmd_thread *pmd,
cycles = cycle_timer_stop(&pmd->perf_stats, &timer);
dp_netdev_rxq_add_cycles(rxq, RXQ_CYCLES_PROC_CURR, cycles);
- dp_netdev_pmd_flush_output_packets(pmd);
+ output_cnt = dp_netdev_pmd_flush_output_packets(pmd, false);
} else {
/* Discard cycles. */
cycle_timer_stop(&pmd->perf_stats, &timer);
@@ -3249,7 +3289,7 @@ dp_netdev_process_rxq_port(struct dp_netdev_pmd_thread *pmd,
pmd->ctx.last_rxq = NULL;
- return batch_cnt;
+ return batch_cnt + output_cnt;
}
static struct tx_port *
@@ -3872,6 +3912,7 @@ dpif_netdev_run(struct dpif *dpif)
struct dp_netdev *dp = get_dp_netdev(dpif);
struct dp_netdev_pmd_thread *non_pmd;
uint64_t new_tnl_seq;
+ bool need_to_flush = true;
ovs_mutex_lock(&dp->port_mutex);
non_pmd = dp_netdev_get_pmd(dp, NON_PMD_CORE_ID);
@@ -3882,13 +3923,22 @@ dpif_netdev_run(struct dpif *dpif)
int i;
for (i = 0; i < port->n_rxq; i++) {
- dp_netdev_process_rxq_port(non_pmd,
- &port->rxqs[i],
- port->port_no);
+ if (dp_netdev_process_rxq_port(non_pmd,
+ &port->rxqs[i],
+ port->port_no)) {
+ need_to_flush = false;
+ }
}
}
}
- pmd_thread_ctx_time_update(non_pmd);
+ if (need_to_flush) {
+ /* We didn't receive anything in the process loop.
+ * Check if we need to send something.
+ * There was no time updates on current iteration. */
+ pmd_thread_ctx_time_update(non_pmd);
+ dp_netdev_pmd_flush_output_packets(non_pmd, false);
+ }
+
dpif_netdev_xps_revalidate_pmd(non_pmd, false);
ovs_mutex_unlock(&dp->non_pmd_mutex);
@@ -3939,6 +3989,8 @@ pmd_free_cached_ports(struct dp_netdev_pmd_thread *pmd)
{
struct tx_port *tx_port_cached;
+ /* Flush all the queued packets. */
+ dp_netdev_pmd_flush_output_packets(pmd, true);
/* Free all used tx queue ids. */
dpif_netdev_xps_revalidate_pmd(pmd, true);
@@ -4069,6 +4121,7 @@ reload:
cycles_counter_update(s);
for (;;) {
uint64_t iter_packets = 0;
+
pmd_perf_start_iteration(s);
for (i = 0; i < poll_cnt; i++) {
process_packets =
@@ -4077,15 +4130,20 @@ reload:
iter_packets += process_packets;
}
+ if (!iter_packets) {
+ /* We didn't receive anything in the process loop.
+ * Check if we need to send something.
+ * There was no time updates on current iteration. */
+ pmd_thread_ctx_time_update(pmd);
+ iter_packets += dp_netdev_pmd_flush_output_packets(pmd, false);
+ }
+
if (lc++ > 1024) {
bool reload;
lc = 0;
coverage_try_clear();
- /* It's possible that the time was not updated on current
- * iteration, if there were no received packets. */
- pmd_thread_ctx_time_update(pmd);
dp_netdev_pmd_try_optimize(pmd, poll_list, poll_cnt);
if (!ovsrcu_try_quiesce()) {
emc_cache_slow_sweep(&pmd->flow_cache);
@@ -4524,6 +4582,7 @@ dp_netdev_configure_pmd(struct dp_netdev_pmd_thread *pmd, struct dp_netdev *dp,
pmd->core_id = core_id;
pmd->numa_id = numa_id;
pmd->need_reload = false;
+ pmd->n_output_batches = 0;
ovs_refcount_init(&pmd->ref_cnt);
latch_init(&pmd->exit_latch);
@@ -4713,6 +4772,7 @@ dp_netdev_add_port_tx_to_pmd(struct dp_netdev_pmd_thread *pmd,
tx->port = port;
tx->qid = -1;
+ tx->flush_time = 0LL;
dp_packet_batch_init(&tx->output_pkts);
hmap_insert(&pmd->tx_ports, &tx->node, hash_port_no(tx->port->port_no));
@@ -5407,12 +5467,16 @@ dp_execute_cb(void *aux_, struct dp_packet_batch *packets_,
dp_netdev_pmd_flush_output_on_port(pmd, p);
}
#endif
- if (OVS_UNLIKELY(dp_packet_batch_size(&p->output_pkts)
- + dp_packet_batch_size(packets_) > NETDEV_MAX_BURST)) {
- /* Some packets was generated while input batch processing.
- * Flush here to avoid overflow. */
+ if (dp_packet_batch_size(&p->output_pkts)
+ + dp_packet_batch_size(packets_) > NETDEV_MAX_BURST) {
+ /* Flush here to avoid overflow. */
dp_netdev_pmd_flush_output_on_port(pmd, p);
}
+
+ if (dp_packet_batch_is_empty(&p->output_pkts)) {
+ pmd->n_output_batches++;
+ }
+
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
p->output_pkts_rxqs[dp_packet_batch_size(&p->output_pkts)] =
pmd->ctx.last_rxq;
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index 58c0ebd..61fb7b1 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -359,6 +359,22 @@
+
+
+ Specifies the time in microseconds that a packet can wait in output
+ batch for sending i.e. amount of time that packet can spend in an
+ intermediate output queue before sending to netdev.
+ This option can be used to configure balance between throughput
+ and latency. Lower values decreases latency while higher values
+ may be useful to achieve higher performance.
+
+
+ Defaults to 0 i.e. instant packet sending (latency optimized).
+
+
+
From patchwork Fri Jan 12 11:17:07 2018
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Ilya Maximets
X-Patchwork-Id: 859770
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Authentication-Results: ozlabs.org;
spf=pass (mailfrom) smtp.mailfrom=openvswitch.org
(client-ip=140.211.169.12; helo=mail.linuxfoundation.org;
envelope-from=ovs-dev-bounces@openvswitch.org;
receiver=)
Authentication-Results: ozlabs.org;
dkim=fail reason="signature verification failed" (1024-bit key;
unprotected) header.d=samsung.com header.i=@samsung.com
header.b="C9eWzhR2"; dkim-atps=neutral
Received: from mail.linuxfoundation.org (mail.linuxfoundation.org
[140.211.169.12])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256
bits)) (No client certificate requested)
by ozlabs.org (Postfix) with ESMTPS id 3zJ0f25gcyz9sQm
for ;
Fri, 12 Jan 2018 22:20:10 +1100 (AEDT)
Received: from mail.linux-foundation.org (localhost [127.0.0.1])
by mail.linuxfoundation.org (Postfix) with ESMTP id 081DDFC6;
Fri, 12 Jan 2018 11:17:47 +0000 (UTC)
X-Original-To: ovs-dev@openvswitch.org
Delivered-To: ovs-dev@mail.linuxfoundation.org
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id B9896FB5
for ; Fri, 12 Jan 2018 11:17:45 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com
[210.118.77.11])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 0CE5814D
for ; Fri, 12 Jan 2018 11:17:44 +0000 (UTC)
Received: from eucas1p2.samsung.com (unknown [182.198.249.207])
by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id
20180112111742euoutp0118a4dfd94a18b7cba2772711e8297465~JC_0q8Tzw2224622246euoutp01n;
Fri, 12 Jan 2018 11:17:42 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com
20180112111742euoutp0118a4dfd94a18b7cba2772711e8297465~JC_0q8Tzw2224622246euoutp01n
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
s=mail20170921; t=1515755862;
bh=gqditQ2La4HuUP+j0On6yR1xkR6alLcU6cbu4fhWnfY=;
h=From:To:Cc:Subject:Date:In-reply-to:References:From;
b=C9eWzhR2k3RTRkiYxAJyMNAD8ULbSo04nLcfsvv4RpSpOuqES7IcwmNpPWbgrAQXM
lS293/KhrE9G2nl0jOLr97Zhp1syuTlcM+/9DcaIpSdGiT38z7mdV1dbNh4qdnHu2x
nocJloeQkZmMYywGsY9QwD4GZzRp/cGUIMcJZPy8=
Received: from eusmges4.samsung.com (unknown [203.254.199.244]) by
eucas1p1.samsung.com (KnoxPortal) with ESMTP id
20180112111741eucas1p1e22d03fba8344ed109d89a1e8d461622~JC_zoURU12220422204eucas1p1W;
Fri, 12 Jan 2018 11:17:41 +0000 (GMT)
Received: from eucas1p2.samsung.com ( [182.198.249.207]) by
eusmges4.samsung.com (EUCPMTA) with SMTP id 2F.46.30163.559985A5;
Fri, 12 Jan 2018 11:17:41 +0000 (GMT)
Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by
eucas1p2.samsung.com (KnoxPortal) with ESMTP id
20180112111740eucas1p2e3a41edaa48080695a9fda755f5753e7~JC_yzE2hK1165511655eucas1p2U;
Fri, 12 Jan 2018 11:17:40 +0000 (GMT)
X-AuditID: cbfec7f4-f790c6d0000075d3-e4-5a58995598b6
Received: from eusync1.samsung.com ( [203.254.199.211]) by
eusmgms2.samsung.com (EUCPMTA) with SMTP id 5A.C3.20118.459985A5;
Fri, 12 Jan 2018 11:17:40 +0000 (GMT)
Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by
eusync1.samsung.com (Oracle Communications Messaging Server
7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id
<0P2F00EP4WORX3A0@eusync1.samsung.com>;
Fri, 12 Jan 2018 11:17:40 +0000 (GMT)
From: Ilya Maximets
To: ovs-dev@openvswitch.org
Date: Fri, 12 Jan 2018 14:17:07 +0300
Message-id: <1515755828-1848-5-git-send-email-i.maximets@samsung.com>
X-Mailer: git-send-email 2.7.4
In-reply-to: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFjrPIsWRmVeSWpSXmKPExsWy7djP87qhMyOiDK4+lLFY/YvTYuczZYsd
a5cyWrT0z2S2uHPlJ5vFtM+32S2utP9kt9j48CyrxZHvpxkt1h76wG4x99NzRgduj19fr7J5
LN7zksnj2c3/jB7v9wG5fVtWMQawRnHZpKTmZJalFunbJXBlXNy6mLngpmzFxAMvmBoYP0l0
MbJzSAiYSFyy7GLkBLLEJC7cW8/WxcjFISSwlFGi/cRedgjnM6PEyZOv2CGqTCQer/oEVbWM
UeLU2xZWkISQQDOTxPcrciA2m4COxKnVRxhBbBEBaYnXvW/AapgFtjJLLOxTA7GFBfwlTp67
yQJiswioSuzpmAZm8wq4Sjztv8cIsUxO4ua5TuYuRg4OTgE3iQu7okD2SgisYZOYdWUJM0SN
i8SHXa1sELawxKvjW6AOlZG4PLmbBaKhmVGiYdUlRghnAqPEl+blTBBV9hKnbl5lgriOT2LS
tulg2yQEeCU62oQgSjwkjvd+hip3lFi7YSs0WGYySsxZ+J5lAqP0AkaGVYwiqaXFuempxSZ6
xYm5xaV56XrJ+bmbGIHRfPrf8S87GBcfszrEKMDBqMTDa1EQHiXEmlhWXJl7iFGCg1lJhJel
KCJKiDclsbIqtSg/vqg0J7X4EKM0B4uSOK9tVFukkEB6YklqdmpqQWoRTJaJg1OqgVF1W3n7
zNwEDeUO3ptVy4uEA1aoBv6pOcr5e8Ph13u5O/WdbTva+i8dO196aH1/6Nejit9Ol7Izb/lR
F3JAYVJdgtenD3fyd9WvXXdmreiRL6/LH8xtO1f35+Ic0Xull5yV5O5uEVCUdVm1b+6HQ1qW
Cy+cjq+a+vug9bGS52/vHPO4qtUqV52hxFKckWioxVxUnAgAvyYereICAAA=
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFlrGLMWRmVeSWpSXmKPExsVy+t/xy7ohMyOiDF7MNLRY/YvTYuczZYsd
a5cyWrT0z2S2uHPlJ5vFtM+32S2utP9kt9j48CyrxZHvpxkt1h76wG4x99NzRgduj19fr7J5
LN7zksnj2c3/jB7v9wG5fVtWMQawRnHZpKTmZJalFunbJXBlXNy6mLngpmzFxAMvmBoYP0l0
MXJySAiYSDxe9YkNwhaTuHBvPZDNxSEksIRR4tbzSYwQTiuTxP3PjxhBqtgEdCROrT4CZosI
SEu87n3DClLELLCdWeJk60QWkISwgK/E7baZYDaLgKrEno5pYDavgKvE0/57jBDr5CRunutk
7mLk4OAUcJO4sCsKJCwEVDJ1023GCYy8CxgZVjGKpJYW56bnFhvpFSfmFpfmpesl5+duYgSG
3rZjP7fsYOx6F3yIUYCDUYmH16IgPEqINbGsuDL3EKMEB7OSCC9LUUSUEG9KYmVValF+fFFp
TmrxIUZpDhYlcd7ePasjhQTSE0tSs1NTC1KLYLJMHJxSDYwuG2e/ti3d99/bNHbXc0uJJ8qb
n78q/ZI863rlvblLH8zY3d3ZoZCgcMh9Wv1miXPbpl+eUeX5kkVfjy/yun2KPaPHHyELmxXL
0k2KX68ttF5sbPN9zpo1CZ8mrLP1OV//MnrP03+cp99rPbUIerN6nvnrT0wXVkU9usac2Vl0
6KJpa8mJgKY4JZbijERDLeai4kQAtuUWozkCAAA=
X-CMS-MailID: 20180112111740eucas1p2e3a41edaa48080695a9fda755f5753e7
X-Msg-Generator: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20180112111740eucas1p2e3a41edaa48080695a9fda755f5753e7
X-RootMTR: 20180112111740eucas1p2e3a41edaa48080695a9fda755f5753e7
References: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI,
T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
Cc: Heetae Ahn ,
Ilya Maximets
Subject: [ovs-dev] [PATCH v10 4/5] docs: Describe output packet batching in
DPDK guide.
X-BeenThere: ovs-dev@openvswitch.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
MIME-Version: 1.0
Sender: ovs-dev-bounces@openvswitch.org
Errors-To: ovs-dev-bounces@openvswitch.org
Added information about output packet batching and a way to
configure 'tx-flush-interval'.
Signed-off-by: Ilya Maximets
Co-authored-by: Jan Scheurich
Signed-off-by: Jan Scheurich
Acked-by: Jan Scheurich
---
Documentation/intro/install/dpdk.rst | 58 ++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst
index 3fecb5c..040e62e 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -568,6 +568,64 @@ not needed i.e. jumbo frames are not needed, it can be forced off by adding
chains of descriptors it will make more individual virtio descriptors available
for rx to the guest using dpdkvhost ports and this can improve performance.
+Output Packet Batching
+~~~~~~~~~~~~~~~~~~~~~~
+
+To make advantage of batched transmit functions, OVS collects packets in
+intermediate queues before sending when processing a batch of received packets.
+Even if packets are matched by different flows, OVS uses a single send
+operation for all packets destined to the same output port.
+
+Furthermore, OVS is able to buffer packets in these intermediate queues for a
+configurable amount of time to reduce the frequency of send bursts at medium
+load levels when the packet receive rate is high, but the receive batch size
+still very small. This is particularly beneficial for packets transmitted to
+VMs using an interrupt-driven virtio driver, where the interrupt overhead is
+significant for the OVS PMD, the host operating system and the guest driver.
+
+The ``tx-flush-interval`` parameter can be used to specify the time in
+microseconds OVS should wait between two send bursts to a given port (default
+is ``0``). When the intermediate queue fills up before that time is over, the
+buffered packet batch is sent immediately::
+
+ $ ovs-vsctl set Open_vSwitch . other_config:tx-flush-interval=50
+
+This parameter influences both throughput and latency, depending on the traffic
+load on the port. In general lower values decrease latency while higher values
+may be useful to achieve higher throughput.
+
+Low traffic (``packet rate < 1 / tx-flush-interval``) should not experience
+any significant latency or throughput increase as packets are forwarded
+immediately.
+
+At intermediate load levels
+(``1 / tx-flush-interval < packet rate < 32 / tx-flush-interval``) traffic
+should experience an average latency increase of up to
+``1 / 2 * tx-flush-interval`` and a possible throughput improvement.
+
+Very high traffic (``packet rate >> 32 / tx-flush-interval``) should experience
+the average latency increase equal to ``32 / (2 * packet rate)``. Most send
+batches in this case will contain the maximum number of packets (``32``).
+
+A ``tx-burst-interval`` value of ``50`` microseconds has shown to provide a
+good performance increase in a ``PHY-VM-PHY`` scenario on ``x86`` system for
+interrupt-driven guests while keeping the latency increase at a reasonable
+level:
+
+ https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341628.html
+
+.. note::
+ Throughput impact of this option significantly depends on the scenario and
+ the traffic patterns. For example: ``tx-burst-interval`` value of ``50``
+ microseconds shows performance degradation in ``PHY-VM-PHY`` with bonded PHY
+ scenario while testing with ``256 - 1024`` packet flows:
+
+ https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341700.html
+
+The average number of packets per output batch can be checked in PMD stats::
+
+ $ ovs-appctl dpif-netdev/pmd-stats-show
+
Limitations
------------
From patchwork Fri Jan 12 11:17:08 2018
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Ilya Maximets
X-Patchwork-Id: 859771
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Authentication-Results: ozlabs.org;
spf=pass (mailfrom) smtp.mailfrom=openvswitch.org
(client-ip=140.211.169.12; helo=mail.linuxfoundation.org;
envelope-from=ovs-dev-bounces@openvswitch.org;
receiver=)
Authentication-Results: ozlabs.org;
dkim=fail reason="signature verification failed" (1024-bit key;
unprotected) header.d=samsung.com header.i=@samsung.com
header.b="m+kZIIYk"; dkim-atps=neutral
Received: from mail.linuxfoundation.org (mail.linuxfoundation.org
[140.211.169.12])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256
bits)) (No client certificate requested)
by ozlabs.org (Postfix) with ESMTPS id 3zJ0fb09S8z9t3B
for ;
Fri, 12 Jan 2018 22:20:38 +1100 (AEDT)
Received: from mail.linux-foundation.org (localhost [127.0.0.1])
by mail.linuxfoundation.org (Postfix) with ESMTP id E39F0FD2;
Fri, 12 Jan 2018 11:17:49 +0000 (UTC)
X-Original-To: ovs-dev@openvswitch.org
Delivered-To: ovs-dev@mail.linuxfoundation.org
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id 500BAFC0
for ; Fri, 12 Jan 2018 11:17:48 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com
[210.118.77.12])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id D6E9C12E
for ; Fri, 12 Jan 2018 11:17:47 +0000 (UTC)
Received: from eucas1p2.samsung.com (unknown [182.198.249.207])
by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id
20180112111745euoutp021923343dd208e8e2ff929ba674f02024~JC_3RDfJ-1128811288euoutp02i;
Fri, 12 Jan 2018 11:17:45 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com
20180112111745euoutp021923343dd208e8e2ff929ba674f02024~JC_3RDfJ-1128811288euoutp02i
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
s=mail20170921; t=1515755865;
bh=GK6vaps7mnxxPSvGiogllTEAOGVuWxpZcE8FdO1prMk=;
h=From:To:Cc:Subject:Date:In-reply-to:References:From;
b=m+kZIIYkfNif9k0t5YRNQrgMT4UePW1nA4iqFlUSWlhCYpgREmLpRlsak5aLEXjIR
f3+XBtTRuSPI3TWYY1kbs6zzgSIcU41Jr2EtThMIktaeRJTsrwrh4kdK+BMXFBrXLV
rEykPKnDTpNPxoL8eY/vuJrg7RsrwudY2seKFP00=
Received: from eusmges2.samsung.com (unknown [203.254.199.241]) by
eucas1p1.samsung.com (KnoxPortal) with ESMTP id
20180112111744eucas1p1e7c4264afd36cedc3c2a0ab387aa32bc~JC_2n4wm91762917629eucas1p1N;
Fri, 12 Jan 2018 11:17:44 +0000 (GMT)
Received: from eucas1p2.samsung.com ( [182.198.249.207]) by
eusmges2.samsung.com (EUCPMTA) with SMTP id 34.BA.12907.859985A5;
Fri, 12 Jan 2018 11:17:44 +0000 (GMT)
Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by
eucas1p1.samsung.com (KnoxPortal) with ESMTP id
20180112111744eucas1p1db3ea8975f6282b2f7736d2dd9ee732c~JC_12IM5w2218922189eucas1p1h;
Fri, 12 Jan 2018 11:17:44 +0000 (GMT)
X-AuditID: cbfec7f1-f793a6d00000326b-92-5a58995843c6
Received: from eusync1.samsung.com ( [203.254.199.211]) by
eusmgms1.samsung.com (EUCPMTA) with SMTP id 43.37.18832.859985A5;
Fri, 12 Jan 2018 11:17:44 +0000 (GMT)
Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by
eusync1.samsung.com (Oracle Communications Messaging Server
7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id
<0P2F00EP4WORX3A0@eusync1.samsung.com>;
Fri, 12 Jan 2018 11:17:44 +0000 (GMT)
From: Ilya Maximets
To: ovs-dev@openvswitch.org
Date: Fri, 12 Jan 2018 14:17:08 +0300
Message-id: <1515755828-1848-6-git-send-email-i.maximets@samsung.com>
X-Mailer: git-send-email 2.7.4
In-reply-to: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFrrIIsWRmVeSWpSXmKPExsWy7djP87oRMyOiDCb+07RY/YvTYuczZYsd
a5cyWrT0z2S2uHPlJ5vFtM+32S2utP9kt9j48CyrxZHvpxkt1h76wG4x99NzRgduj19fr7J5
LN7zksnj2c3/jB7v9wG5fVtWMQawRnHZpKTmZJalFunbJXBl/F9xg6XgA2vFnJtdLA2MO1m6
GDk5JARMJM7smsMKYYtJXLi3ng3EFhJYyihxqk+yi5ELyP7MKLH93AtWmIZDjU1MEIlljBIH
Z52DcpqZJG6evAc2lk1AR+LU6iOMILaIgLTE6943YN3MAluZJRb2qYHYwgLOErdXXACLswio
SsyZcAtsNa+Aq8SNjwfZIbbJSdw818ncxcjBwSngJnFhVxTILgmBDWwSKw6/YYOocZFY/HIJ
VL2wxKvjW6BsGYnOjoNMEA3NjBINqy4xQjgTGCW+NC9ngqiylzh18yoTxHV8EpO2TQfbJiHA
K9HRJgRR4iHx999PqKGOEl8ff2CE+HgmMIy2vWWbwCi9gJFhFaNIamlxbnpqsZFecWJucWle
ul5yfu4mRmBEn/53/OMOxvcnrA4xCnAwKvHwWhSERwmxJpYVV+YeYpTgYFYS4WUpiogS4k1J
rKxKLcqPLyrNSS0+xCjNwaIkzmsb1RYpJJCeWJKanZpakFoEk2Xi4JRqYFwh2aAitfeCa/dc
DbaKdTPq2LNiS5tnl5ZbF15azlsaeIL/4UHH7RdDFr+QNfBy8rw5cd7Kf6Y8y7bvKpkvXvD8
83OZdo/gVC6OuvJfD9b/Xyr4X2514e/ceeahxpdDs5Z7pm7b9U3lyVFvZeuLC/pmbvK5IHvi
xubOQm4TTcGsneo90/3kZiqxFGckGmoxFxUnAgAtbmcz5AIAAA==
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFlrGLMWRmVeSWpSXmKPExsVy+t/xy7oRMyOiDN5OYbVY/YvTYuczZYsd
a5cyWrT0z2S2uHPlJ5vFtM+32S2utP9kt9j48CyrxZHvpxkt1h76wG4x99NzRgduj19fr7J5
LN7zksnj2c3/jB7v9wG5fVtWMQawRnHZpKTmZJalFunbJXBl/F9xg6XgA2vFnJtdLA2MO1m6
GDk5JARMJA41NjFB2GISF+6tZ+ti5OIQEljCKLH8wjp2CKeVSWL/lLmsIFVsAjoSp1YfYQSx
RQSkJV73vmEFKWIW2M4scbJ1IthYYQFnidsrLoA1sAioSsyZcIsNxOYVcJW48fEgO8Q6OYmb
5zqZuxg5ODgF3CQu7IoCCQsBlUzddJtxAiPvAkaGVYwiqaXFuem5xYZ6xYm5xaV56XrJ+bmb
GIGht+3Yz807GC9tDD7EKMDBqMTDa1EQHiXEmlhWXJl7iFGCg1lJhJelKCJKiDclsbIqtSg/
vqg0J7X4EKM0B4uSOG/vntWRQgLpiSWp2ampBalFMFkmDk6pBsY5Gc1y2g/n3/7zNe9vrELs
ub32HiYNH06vi1o767TVc+NEr0u52mn6GQeD5VRyKsvOL7qQfsuziivpQnB+CNv0q1vc57yu
cvm0RDtZrKTPmvvaXtuXpybZV+j+m/Lx7RHdObm687gTT8810FQPfnbULtdnmXbPwS+7z7ss
Z7mT+GbZ23L/oyxKLMUZiYZazEXFiQBqC8EpOQIAAA==
X-CMS-MailID: 20180112111744eucas1p1db3ea8975f6282b2f7736d2dd9ee732c
X-Msg-Generator: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20180112111744eucas1p1db3ea8975f6282b2f7736d2dd9ee732c
X-RootMTR: 20180112111744eucas1p1db3ea8975f6282b2f7736d2dd9ee732c
References: <1515755828-1848-1-git-send-email-i.maximets@samsung.com>
X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI,
T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
Cc: Heetae Ahn ,
Ilya Maximets
Subject: [ovs-dev] [PATCH v10 5/5] NEWS: Mark output packet batching support.
X-BeenThere: ovs-dev@openvswitch.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
MIME-Version: 1.0
Sender: ovs-dev-bounces@openvswitch.org
Errors-To: ovs-dev-bounces@openvswitch.org
New feature should be mentioned in news, especially because it has
user-visible configuration options.
Signed-off-by: Ilya Maximets
---
NEWS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/NEWS b/NEWS
index 95e93c0..93e3941 100644
--- a/NEWS
+++ b/NEWS
@@ -42,6 +42,8 @@ Post-v2.8.0
"management" statistics.
- ovs-ofctl dump-ports command now prints new of set custom statistics
if available (for OpenFlow 1.4+).
+ - Userspace datapath:
+ * Output packet batching support.
- vswitchd:
* Datapath IDs may now be specified as 0x1 (etc.) instead of 16 digits.
* Configuring a controller, or unconfiguring all controllers, now deletes