From patchwork Tue Nov 14 19:27:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 838001 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="OMxZXamH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ybyFL4dJpz9s82 for ; Wed, 15 Nov 2017 06:27:18 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755653AbdKNT1Q (ORCPT ); Tue, 14 Nov 2017 14:27:16 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:43530 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755298AbdKNT1L (ORCPT ); Tue, 14 Nov 2017 14:27:11 -0500 Received: by mail-pf0-f194.google.com with SMTP id a84so10225814pfl.0 for ; Tue, 14 Nov 2017 11:27:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ZhPpjqjLLhUsfZ/q5AepcIuXExkR2YgFMnZ1DhlsEmM=; b=OMxZXamHwgGq+x9eyUWxbqBuFV/slkHy17xuEspaZ/NmUKdFbGk70Pkm7/BI5mhN5a RIdfOAk6q23OmV8dY2C4CHLfkD8zy7Fmn+QWm+GtP37oNdBebQjVp6lPu0t7bPuG/xeA Tg5ii4CquMmEz9SvC771uwJKp5vJShwdUjV8SMvjOVAHHtSj7QTyMi6gTPyP4IsVCXL1 N+a/473/EQe8SBdPKFHb+hKSAGO4ZZknu8AeuvVjz1gtLsEwZ3THqRPW2COMjKL8rWm/ LL/bgQbRo8fXLZQx7/rbuI0pbKB64Z1A0rf9HQSawtjuh196qaX+aSvuMDbsNJNIpQ1R pwpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ZhPpjqjLLhUsfZ/q5AepcIuXExkR2YgFMnZ1DhlsEmM=; b=SeB4ulnLeJIAe2KOmDtXyXcQ2k/MaGefexRD4f9mGhMOLsCCFAmM9jY80b/f2HC/k2 636JuYs63miceyMsf3hHfUAEYeVVrDoiNa+1TM27AK6zU31cWNl5RDLOKh/sJ/fVpe5U qXpYzNvO7ZJ1fBMJnhakQ9iAKcQpJrSZvesuOlGfU/bkDeqO84TdOSPRQva43ua0hIvu dgI2MGy/qMzxVwyUemJdQ/iilp1HBbfHE4wX2P8OqtDvGchFE8PX/mL4uXEhXLacsB/L P19Fd/qV6k2pfSppph31ZTgU5CiauvPm1FQOdBkepQWaVC8VVWyJeX1GDVBHRAmNQbwi 04ug== X-Gm-Message-State: AJaThX7SCupXFLuDM49FQSjesU1Gd7DyOL/RPzGbDGrpQBlwjHzoLHLg DMlAnfPeZv/8+DVoT16vhqD0RQ== X-Google-Smtp-Source: AGs4zMaQaQs0KwFpdNt5Fw2+YapkokBAYI13X9tDv6qeLM8vtEg6TDtg3EIBRhhhmQemijR4JAZSdA== X-Received: by 10.101.83.143 with SMTP id x15mr13257649pgq.150.1510687630289; Tue, 14 Nov 2017 11:27:10 -0800 (PST) Received: from xeon-e3.lan (76-14-207-240.or.wavecable.com. [76.14.207.240]) by smtp.gmail.com with ESMTPSA id p12sm29997179pgn.60.2017.11.14.11.27.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 14 Nov 2017 11:27:09 -0800 (PST) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: stephen@networkplumber.org, jhs@mojatatu.com, xiyou.wangcong@gmail.com, jiri@resnulli.us, davem@davemloft.net Cc: netdev@vger.kernel.org, Stephen Hemminger Subject: [PATCH net-next v2 1/2] netem: use 64 bit divide by rate Date: Tue, 14 Nov 2017 11:27:01 -0800 Message-Id: <20171114192702.31193-2-sthemmin@microsoft.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171114192702.31193-1-sthemmin@microsoft.com> References: <20171114192702.31193-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Since times are now expressed in nanosecond, need to now do true 64 bit divide. Old code would truncate rate at 32 bits. Rename function to better express current usage. Signed-off-by: Stephen Hemminger --- net/sched/sch_netem.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c index b686e755fda9..644323d6081c 100644 --- a/net/sched/sch_netem.c +++ b/net/sched/sch_netem.c @@ -339,10 +339,8 @@ static s64 tabledist(s64 mu, s64 sigma, return x / NETEM_DIST_SCALE + (sigma / NETEM_DIST_SCALE) * t + mu; } -static u64 packet_len_2_sched_time(unsigned int len, - struct netem_sched_data *q) +static u64 packet_time_ns(u64 len, const struct netem_sched_data *q) { - u64 offset; len += q->packet_overhead; if (q->cell_size) { @@ -352,9 +350,8 @@ static u64 packet_len_2_sched_time(unsigned int len, cells++; len = cells * (q->cell_size + q->cell_overhead); } - offset = (u64)len * NSEC_PER_SEC; - do_div(offset, q->rate); - return offset; + + return div64_u64(len * NSEC_PER_SEC, q->rate); } static void tfifo_reset(struct Qdisc *sch) @@ -556,7 +553,7 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch, now = last->time_to_send; } - delay += packet_len_2_sched_time(qdisc_pkt_len(skb), q); + delay += packet_time_ns(qdisc_pkt_len(skb), q); } cb->time_to_send = now + delay; From patchwork Tue Nov 14 19:27:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 838002 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="1MtO+40k"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ybyFQ2Pvkz9rxj for ; Wed, 15 Nov 2017 06:27:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756083AbdKNT1U (ORCPT ); Tue, 14 Nov 2017 14:27:20 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:57115 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752510AbdKNT1M (ORCPT ); Tue, 14 Nov 2017 14:27:12 -0500 Received: by mail-pg0-f67.google.com with SMTP id z184so10710761pgd.13 for ; Tue, 14 Nov 2017 11:27:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=KwzdlN9u+riXD2LIucJ1moD+N8o8hVIpst7zAyhGa2U=; b=1MtO+40kPY29Kink3mltt7cp0acqCX2Bk8bbuwd/fdztHZdVPg1Db8jpJSQWJaPgep ubLDyH8nTZdrATZAWQU8wmwvv7+i7WitUlPU5umMVrQ2pHkus0bX7I5QawU5IFphhcGE TTsdEZlXLZdJaqzJMBN20MgSEI68BP6iJu28yuFzfeg3YOu1bo0HeJWXWONCGVLezU/d mODhK3klekfZ6pYYfwEIJCqgDnUackk/XFGw4491c806z/v2SDz2/ziA62ttF+PAOT0L iMKuwc0OGX1xQ3Z5vC78cz2dcGisJiNx+6q9KWzey/ya+xtMKBbfz9vTW2duulhGqIbV /IRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=KwzdlN9u+riXD2LIucJ1moD+N8o8hVIpst7zAyhGa2U=; b=XV//URde129Nzj9nCS7ysx0qfosPRviRDK8vKKqg6HoQY6AOjoQ5roHOaO2tH+/C2N HxGRRrfuo13tTbJvZJ+wzUWTrKB1QluN/Jy1o9EoCYKllOsLB1LhF/Uusjh9rL/e+L90 +FSodsMYP2CnB/0Ecq/pyOEeYG5ZhEngX+UZGA7B7j3SU0G0gkOImBoJZqoAeO1bai4+ kH3OGY6npb39BERZQDWngryN7Imr8jQOmJM2lalnmhJP1VJ/Bqze+6AdxY1pjJgBesqh 66gk8hfxAtNYVukj7dfbd+DZXgMatFJPEN3noDoty2YTiIAFpbON0MbI6BpiWuqhlNas BiJA== X-Gm-Message-State: AJaThX4XmXnSi/B5JnImWVuqfJOyLoLlfU+DI3cQ6tvyg0kjAFdh30Xn K111O3hJ5GDekJthAxg8jQ7qVg== X-Google-Smtp-Source: AGs4zMYJnSKeqkmgT3xgQusN0s9F4bJXnyx4U5jyqIXzbcdHDXXoXKybOl98VJLxPTZ184PztkqYUg== X-Received: by 10.101.86.196 with SMTP id w4mr13380786pgs.335.1510687631639; Tue, 14 Nov 2017 11:27:11 -0800 (PST) Received: from xeon-e3.lan (76-14-207-240.or.wavecable.com. [76.14.207.240]) by smtp.gmail.com with ESMTPSA id p12sm29997179pgn.60.2017.11.14.11.27.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 14 Nov 2017 11:27:10 -0800 (PST) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: stephen@networkplumber.org, jhs@mojatatu.com, xiyou.wangcong@gmail.com, jiri@resnulli.us, davem@davemloft.net Cc: netdev@vger.kernel.org, Stephen Hemminger Subject: [PATCH net-next v2 2/2] netem: remove unnecessary 64 bit modulus Date: Tue, 14 Nov 2017 11:27:02 -0800 Message-Id: <20171114192702.31193-3-sthemmin@microsoft.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171114192702.31193-1-sthemmin@microsoft.com> References: <20171114192702.31193-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Fix compilation on 32 bit platforms (where doing modulus operation with 64 bit requires extra glibc functions) by truncation. The jitter for table distribution is limited to a 32 bit value because random numbers are scaled as 32 bit value. Also fix some whitespace. Fixes: 99803171ef04 ("netem: add uapi to express delay and jitter in nanoseconds") Reported-by: Randy Dunlap Signed-off-by: Stephen Hemminger --- net/sched/sch_netem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c index 644323d6081c..dd70924cbcdf 100644 --- a/net/sched/sch_netem.c +++ b/net/sched/sch_netem.c @@ -312,9 +312,9 @@ static bool loss_event(struct netem_sched_data *q) * std deviation sigma. Uses table lookup to approximate the desired * distribution, and a uniformly-distributed pseudo-random source. */ -static s64 tabledist(s64 mu, s64 sigma, +static s64 tabledist(s64 mu, s32 sigma, struct crndstate *state, - const struct disttable *dist) + const struct disttable *dist) { s64 x; long t; @@ -327,7 +327,7 @@ static s64 tabledist(s64 mu, s64 sigma, /* default uniform distribution */ if (dist == NULL) - return (rnd % (2*sigma)) - sigma + mu; + return (rnd % (2 * sigma)) - sigma + mu; t = dist->table[rnd % dist->size]; x = (sigma % NETEM_DIST_SCALE) * t;