Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/806118/?format=api
{ "id": 806118, "url": "http://patchwork.ozlabs.org/api/1.2/patches/806118/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1503751671.11498.25.camel@edumazet-glaptop3.roam.corp.google.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/1.2/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1503751671.11498.25.camel@edumazet-glaptop3.roam.corp.google.com>", "list_archive_url": null, "date": "2017-08-26T12:47:51", "name": "UDP sockets oddities", "commit_ref": null, "pull_url": null, "state": "rfc", "archived": true, "hash": "9e809927af90d66101c14e59b8b8028d041ce7c5", "submitter": { "id": 2404, "url": "http://patchwork.ozlabs.org/api/1.2/people/2404/?format=api", "name": "Eric Dumazet", "email": "eric.dumazet@gmail.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/1.2/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1503751671.11498.25.camel@edumazet-glaptop3.roam.corp.google.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/806118/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/806118/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"hLtaPMdc\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xfd9d50nJz9t4k\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat, 26 Aug 2017 22:48:05 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754209AbdHZMrz (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 26 Aug 2017 08:47:55 -0400", "from mail-pf0-f195.google.com ([209.85.192.195]:33551 \"EHLO\n\tmail-pf0-f195.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752356AbdHZMry (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Sat, 26 Aug 2017 08:47:54 -0400", "by mail-pf0-f195.google.com with SMTP id c28so913246pfe.0\n\tfor <netdev@vger.kernel.org>; Sat, 26 Aug 2017 05:47:53 -0700 (PDT)", "from [192.168.86.171] (c-67-180-167-114.hsd1.ca.comcast.net.\n\t[67.180.167.114]) by smtp.googlemail.com with ESMTPSA id\n\t63sm737431pgg.35.2017.08.26.05.47.51\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tSat, 26 Aug 2017 05:47:52 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=message-id:subject:from:to:cc:date:in-reply-to:references\n\t:mime-version:content-transfer-encoding;\n\tbh=J83dYrG8x2p67j1ZnAbENk2TSW4T4q+EOM5yytibQBc=;\n\tb=hLtaPMdcwvKBjPaAO0PtZmg3WgW2olsprQ1kyGsQsZy0cxu2kvZPAoCSjZnw8JV9R6\n\tKpjTdj7/ls66mbwR2C9BpHj7+QBs971dsBp/hfFFlnBT2/7sak2OD5Cm/CzWa9mcVjCe\n\tSYNUeOK01c+8+oPPh0x3/M2wynHV50Mg5spKmJrF8kjKF0qfTBON/x1+6e3zq81ws2hu\n\tD/hM2EQrLgp5zg7etKL2EmbyD2J5zrf4n5EUbWQlCv9aPiaBjmDH2SZcPk/QMhPksLlv\n\tNbyZf/Z5WvVOyjfaQiSD+FC35dk9JH4RZb1lTbZ7BSTEaEAaPW0Zl5btBGtFCTvN26HS\n\tNlDQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to\n\t:references:mime-version:content-transfer-encoding;\n\tbh=J83dYrG8x2p67j1ZnAbENk2TSW4T4q+EOM5yytibQBc=;\n\tb=Y9o9gLgQc0dhdYLS7Ot8Xkse1TUrd6mVmEWwW8ZOeBWEqJfv5WWz9lZLZcR7cirJwE\n\tVAT7HFvkhyD9sWQMAVXAkRFBwqINo/Y18pi44oAnd5o4zgo1jO6E0GR9kSR+tDOGtq/g\n\tfeMA5R6l37Oymd5kmV87UqpTxlVfmbw4nPytNbUrIIy6BvbaFBhmsVrfLsAWkWxSPAvK\n\tZHOcVDvPA0N8VaAwWBw7dl6ZyR6jUYSwXqAOVYVOgwqe0dGbPef5XpHkRHhfOxAX+ygy\n\t32KK6nn/dQIjhz+r30Qum9I51QP5JdrhCGaGmOeesBuYt4mnZMpW2JsqvWKIEYImF8D7\n\tpASQ==", "X-Gm-Message-State": "AHYfb5g6lE+kebzseleduEdthQgRtVhCiP23823dCyQe1ZBPrJ9W5o4i\n\t1aibNnkINW/07A==", "X-Received": "by 10.99.144.74 with SMTP id a71mr1588404pge.285.1503751673548; \n\tSat, 26 Aug 2017 05:47:53 -0700 (PDT)", "Message-ID": "<1503751671.11498.25.camel@edumazet-glaptop3.roam.corp.google.com>", "Subject": "Re: UDP sockets oddities", "From": "Eric Dumazet <eric.dumazet@gmail.com>", "To": "David Miller <davem@davemloft.net>", "Cc": "f.fainelli@gmail.com, netdev@vger.kernel.org, pabeni@redhat.com,\n\twillemb@google.com", "Date": "Sat, 26 Aug 2017 05:47:51 -0700", "In-Reply-To": "<20170825.211905.920493778125075310.davem@davemloft.net>", "References": "<1503712322.11498.12.camel@edumazet-glaptop3.roam.corp.google.com>\n\t<354e6c3a-1771-e8a7-24dd-1b70266563af@gmail.com>\n\t<1503718844.11498.19.camel@edumazet-glaptop3.roam.corp.google.com>\n\t<20170825.211905.920493778125075310.davem@davemloft.net>", "Content-Type": "text/plain; charset=\"UTF-8\"", "X-Mailer": "Evolution 3.10.4-0ubuntu2 ", "Mime-Version": "1.0", "Content-Transfer-Encoding": "7bit", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "On Fri, 2017-08-25 at 21:19 -0700, David Miller wrote:\n\n> Agreed, but the ARP resolution queue really needs to scale it's backlog\n> to the physical technology it is attached to.\nYes, last time (in 2011) we increased the old limit of 3 packets :/\n\nWe probably should match sysctl_wmem_max so that a single socket\nprovider would hit its sk_sndbuf limit\n\nSomething like :", "diff": "diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt\nindex 6b0bc0f715346a097a6df46e2ba2771359abcd23..7777dceb78107c0019fb39d5b69be1959005b78e 100644\n--- a/Documentation/networking/ip-sysctl.txt\n+++ b/Documentation/networking/ip-sysctl.txt\n@@ -109,7 +109,8 @@ neigh/default/unres_qlen_bytes - INTEGER\n \tqueued for each\tunresolved address by other network layers.\n \t(added in linux 3.3)\n \tSetting negative value is meaningless and will return error.\n-\tDefault: 65536 Bytes(64KB)\n+\tDefault: SK_WMEM_MAX, enough to store 256 packets of medium size\n+\t\t (less than 256 bytes per packet)\n \n neigh/default/unres_qlen - INTEGER\n \tThe maximum number of packets which may be queued for each\ndiff --git a/include/net/sock.h b/include/net/sock.h\nindex 1c2912d433e81b10f3fdc87bcfcbb091570edc03..03a362568357acc7278a318423dd3873103f90ca 100644\n--- a/include/net/sock.h\n+++ b/include/net/sock.h\n@@ -2368,6 +2368,16 @@ bool sk_net_capable(const struct sock *sk, int cap);\n \n void sk_get_meminfo(const struct sock *sk, u32 *meminfo);\n \n+/* Take into consideration the size of the struct sk_buff overhead in the\n+ * determination of these values, since that is non-constant across\n+ * platforms. This makes socket queueing behavior and performance\n+ * not depend upon such differences.\n+ */\n+#define _SK_MEM_PACKETS\t\t256\n+#define _SK_MEM_OVERHEAD\tSKB_TRUESIZE(256)\n+#define SK_WMEM_MAX\t\t(_SK_MEM_OVERHEAD * _SK_MEM_PACKETS)\n+#define SK_RMEM_MAX\t\t(_SK_MEM_OVERHEAD * _SK_MEM_PACKETS)\n+\n extern __u32 sysctl_wmem_max;\n extern __u32 sysctl_rmem_max;\n \ndiff --git a/net/core/sock.c b/net/core/sock.c\nindex dfdd14cac775e9bfcee0085ee32ffcd0ab28b67b..9b7b6bbb2a23e7652a1f34a305f29d49de00bc8c 100644\n--- a/net/core/sock.c\n+++ b/net/core/sock.c\n@@ -307,16 +307,6 @@ static struct lock_class_key af_wlock_keys[AF_MAX];\n static struct lock_class_key af_elock_keys[AF_MAX];\n static struct lock_class_key af_kern_callback_keys[AF_MAX];\n \n-/* Take into consideration the size of the struct sk_buff overhead in the\n- * determination of these values, since that is non-constant across\n- * platforms. This makes socket queueing behavior and performance\n- * not depend upon such differences.\n- */\n-#define _SK_MEM_PACKETS\t\t256\n-#define _SK_MEM_OVERHEAD\tSKB_TRUESIZE(256)\n-#define SK_WMEM_MAX\t\t(_SK_MEM_OVERHEAD * _SK_MEM_PACKETS)\n-#define SK_RMEM_MAX\t\t(_SK_MEM_OVERHEAD * _SK_MEM_PACKETS)\n-\n /* Run time adjustable parameters. */\n __u32 sysctl_wmem_max __read_mostly = SK_WMEM_MAX;\n EXPORT_SYMBOL(sysctl_wmem_max);\ndiff --git a/net/decnet/dn_neigh.c b/net/decnet/dn_neigh.c\nindex 21dedf6fd0f76dec22b2b3685beb89cfefea7ded..22bf0b95d6edc3c27ef3a99d27cb70a1551e3e0e 100644\n--- a/net/decnet/dn_neigh.c\n+++ b/net/decnet/dn_neigh.c\n@@ -94,7 +94,7 @@ struct neigh_table dn_neigh_table = {\n \t\t\t[NEIGH_VAR_BASE_REACHABLE_TIME] = 30 * HZ,\n \t\t\t[NEIGH_VAR_DELAY_PROBE_TIME] = 5 * HZ,\n \t\t\t[NEIGH_VAR_GC_STALETIME] = 60 * HZ,\n-\t\t\t[NEIGH_VAR_QUEUE_LEN_BYTES] = 64*1024,\n+\t\t\t[NEIGH_VAR_QUEUE_LEN_BYTES] = SK_WMEM_MAX,\n \t\t\t[NEIGH_VAR_PROXY_QLEN] = 0,\n \t\t\t[NEIGH_VAR_ANYCAST_DELAY] = 0,\n \t\t\t[NEIGH_VAR_PROXY_DELAY] = 0,\ndiff --git a/net/ipv4/arp.c b/net/ipv4/arp.c\nindex 8b52179ddc6e54eabf6d3c2ed0132083228680bb..7c45b8896709815c5dde5972fd57cb5c3bcb2648 100644\n--- a/net/ipv4/arp.c\n+++ b/net/ipv4/arp.c\n@@ -171,7 +171,7 @@ struct neigh_table arp_tbl = {\n \t\t\t[NEIGH_VAR_BASE_REACHABLE_TIME] = 30 * HZ,\n \t\t\t[NEIGH_VAR_DELAY_PROBE_TIME] = 5 * HZ,\n \t\t\t[NEIGH_VAR_GC_STALETIME] = 60 * HZ,\n-\t\t\t[NEIGH_VAR_QUEUE_LEN_BYTES] = 64 * 1024,\n+\t\t\t[NEIGH_VAR_QUEUE_LEN_BYTES] = SK_WMEM_MAX,\n \t\t\t[NEIGH_VAR_PROXY_QLEN] = 64,\n \t\t\t[NEIGH_VAR_ANYCAST_DELAY] = 1 * HZ,\n \t\t\t[NEIGH_VAR_PROXY_DELAY]\t= (8 * HZ) / 10,\ndiff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c\nindex 5e338eb89509b1df6ebd060f8bd19fcb4b86fe05..266a530414d7be4f1e7be922e465bbab46f7cbac 100644\n--- a/net/ipv6/ndisc.c\n+++ b/net/ipv6/ndisc.c\n@@ -127,7 +127,7 @@ struct neigh_table nd_tbl = {\n \t\t\t[NEIGH_VAR_BASE_REACHABLE_TIME] = ND_REACHABLE_TIME,\n \t\t\t[NEIGH_VAR_DELAY_PROBE_TIME] = 5 * HZ,\n \t\t\t[NEIGH_VAR_GC_STALETIME] = 60 * HZ,\n-\t\t\t[NEIGH_VAR_QUEUE_LEN_BYTES] = 64 * 1024,\n+\t\t\t[NEIGH_VAR_QUEUE_LEN_BYTES] = SK_WMEM_MAX,\n \t\t\t[NEIGH_VAR_PROXY_QLEN] = 64,\n \t\t\t[NEIGH_VAR_ANYCAST_DELAY] = 1 * HZ,\n \t\t\t[NEIGH_VAR_PROXY_DELAY] = (8 * HZ) / 10,\n", "prefixes": [] }