From patchwork Sun Mar 19 22:27:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Dobriyan X-Patchwork-Id: 740762 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vmYcQ6VmFz9s3l for ; Mon, 20 Mar 2017 09:27:50 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="MnBxjgU4"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752356AbdCSW1t (ORCPT ); Sun, 19 Mar 2017 18:27:49 -0400 Received: from mail-lf0-f67.google.com ([209.85.215.67]:35706 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752177AbdCSW1s (ORCPT ); Sun, 19 Mar 2017 18:27:48 -0400 Received: by mail-lf0-f67.google.com with SMTP id v2so8835439lfi.2 for ; Sun, 19 Mar 2017 15:27:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=1U7w96kofYplT3uWNfRYxgTbC54jX9FW+EPuaek866o=; b=MnBxjgU4Pn37zlwvAxhu4FqLGB2uM6XPdFHjLZHygE+ctWwEUFh8oWHReK6KPXZq0/ niHlx2g+GQuobt4Z9SFMpZltFK7E4hijroWKShPGW4DGtZp8EZeoppA4e4kz7RimOxXK dNQlq4ZiATtxm0uWd96H6quPFEl6m9lj5lizNrbvW/4TdW3wrM0eMpM2NEbt4DcsInrp iVmldYxyL4pei9J33Y3N2FeQB5NUr1rx4kh8/irQyfGqFQs2RjBYd/n6R1xIb6y7YHLm et1Od2SUZAyvyVysKRi72ms9QF5uoPT5ZMGVFjxEyT1izALILv7yN0AsPyjZeEZE6V+Z 96Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=1U7w96kofYplT3uWNfRYxgTbC54jX9FW+EPuaek866o=; b=pW73w/KEwX+vyKELutcM8TFGvAGYHxHplzBD5H/s0x4IYe8GphK8O6bx5+DrNZZxGx a5H1/OkG44MXMW7zyYgkRSQnOmr/8xDBcRkgQ0TZ5AbG3uboM/Rmsz7shw2bK4/5L9/s VVFcrOBL/a0kMk0F1MS33Io192kUneQTNa7ZggKc9iklXJuaKm1AK/96YC1lEcTbTvrA 96XoyIhVtDccy415SJHipFIqTzwsbSvEPfvuzDEWNrDnZNJ1oshA+GWFdJnu8QR3iJRw 4BQ83ygSbjW5/mcpyjgfD7ObtsMpykhrZpq+W93P0f144zdM4Z/xHxlLaDhapy3tNYy0 sRDg== X-Gm-Message-State: AFeK/H1SY6BPOCsEplLBu5/NJRaMltfK5DLBcQQE1UXZEZ7q4JUPeKQnl8Phuqg5EyImgw== X-Received: by 10.25.163.193 with SMTP id m184mr6619461lfe.114.1489962466447; Sun, 19 Mar 2017 15:27:46 -0700 (PDT) Received: from avx2 (nat6-minsk-pool-46-53-208-182.telecom.by. [46.53.208.182]) by smtp.gmail.com with ESMTPSA id m27sm2673482ljb.24.2017.03.19.15.27.45 (version=TLS1_2 cipher=AES128-GCM-SHA256 bits=128/128); Sun, 19 Mar 2017 15:27:45 -0700 (PDT) Date: Mon, 20 Mar 2017 01:27:43 +0300 From: Alexey Dobriyan To: steffen.klassert@secunet.com Cc: herbert@gondor.apana.org.au, davem@davemloft.net, netdev@vger.kernel.org Subject: [PATCH 3/4] flowcache: make struct flow_cache_percpu::hash_rnd_recalc bool Message-ID: <20170319222743.GC17015@avx2> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org ->hash_rnd_recalc is only used in boolean context. Space savings on x86_64 come from the fact that "MOV rm8, imm8" is shorter than "MOV rm32, imm32" by at least 3 bytes. add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-10 (-10) function old new delta flow_cache_new_hashrnd 166 163 -3 flow_cache_cpu_up_prep 171 168 -3 flow_cache_lookup 1148 1144 -4 Total: Before=170822872, After=170822862, chg -0.00% Signed-off-by: Alexey Dobriyan --- include/net/flowcache.h | 2 +- net/core/flow.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) --- a/include/net/flowcache.h +++ b/include/net/flowcache.h @@ -10,7 +10,7 @@ struct flow_cache_percpu { struct hlist_head *hash_table; int hash_count; u32 hash_rnd; - int hash_rnd_recalc; + bool hash_rnd_recalc; struct tasklet_struct flush_tasklet; }; --- a/net/core/flow.c +++ b/net/core/flow.c @@ -56,7 +56,7 @@ static void flow_cache_new_hashrnd(unsigned long arg) int i; for_each_possible_cpu(i) - per_cpu_ptr(fc->percpu, i)->hash_rnd_recalc = 1; + per_cpu_ptr(fc->percpu, i)->hash_rnd_recalc = true; fc->rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD; add_timer(&fc->rnd_timer); @@ -155,7 +155,7 @@ static void flow_new_hash_rnd(struct flow_cache *fc, struct flow_cache_percpu *fcp) { get_random_bytes(&fcp->hash_rnd, sizeof(u32)); - fcp->hash_rnd_recalc = 0; + fcp->hash_rnd_recalc = false; __flow_cache_shrink(fc, fcp, 0); } @@ -412,7 +412,7 @@ static int flow_cache_cpu_prepare(struct flow_cache *fc, int cpu) pr_err("NET: failed to allocate flow cache sz %u\n", sz); return -ENOMEM; } - fcp->hash_rnd_recalc = 1; + fcp->hash_rnd_recalc = true; fcp->hash_count = 0; tasklet_init(&fcp->flush_tasklet, flow_cache_flush_tasklet, 0); }