Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/807335/?format=api
{ "id": 807335, "url": "http://patchwork.ozlabs.org/api/patches/807335/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1504044961.11498.100.camel@edumazet-glaptop3.roam.corp.google.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/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": "<1504044961.11498.100.camel@edumazet-glaptop3.roam.corp.google.com>", "list_archive_url": null, "date": "2017-08-29T22:16:01", "name": "[net-next] neigh: increase queue_len_bytes to match wmem_default", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "b891dfd2f50eaf52bceab6917e2acf44f966085f", "submitter": { "id": 2404, "url": "http://patchwork.ozlabs.org/api/people/2404/?format=api", "name": "Eric Dumazet", "email": "eric.dumazet@gmail.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1504044961.11498.100.camel@edumazet-glaptop3.roam.corp.google.com/mbox/", "series": [ { "id": 494, "url": "http://patchwork.ozlabs.org/api/series/494/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=494", "date": "2017-08-29T22:16:01", "name": "[net-next] neigh: increase queue_len_bytes to match wmem_default", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/494/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/807335/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/807335/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=\"QqU2gaD6\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xhjdg3Nmlz9sN5\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 30 Aug 2017 08:16:07 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751858AbdH2WQF (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 29 Aug 2017 18:16:05 -0400", "from mail-pf0-f193.google.com ([209.85.192.193]:35714 \"EHLO\n\tmail-pf0-f193.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751318AbdH2WQE (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 29 Aug 2017 18:16:04 -0400", "by mail-pf0-f193.google.com with SMTP id g13so3135579pfm.2\n\tfor <netdev@vger.kernel.org>; Tue, 29 Aug 2017 15:16:03 -0700 (PDT)", "from ?IPv6:2620:15c:2c1:100:5c25:69da:43fc:a7c6?\n\t([2620:15c:2c1:100:5c25:69da:43fc:a7c6])\n\tby smtp.googlemail.com with ESMTPSA id\n\tc201sm6787504pfb.149.2017.08.29.15.16.01\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 29 Aug 2017 15:16:02 -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=NwK/kVUN0kahkRjDZV28trjfdDjgG8MfoLw9uccaSfY=;\n\tb=QqU2gaD6oOwQrTjdmmJLWi4mmbLoqxrV7SdtZUKh87HhM7AuB8GZ2VuRR8TK6/zCt2\n\tAQFPbj6MkNmaaiN/MdhYg5QsSJIrL6mPDr5ErQaQNC35cy0TiFDZhxEumwAHGfurgW05\n\tnUhN06H3I002ul8lOUF6A+3wFWzlV7pT74erdQqQAQ9ruVYqzmaGcwMnI4domCFDzT5N\n\tJlR07Vd0MKPsT6LTs49QlJlQqkhk7iyNr+fByEzhuV5NeR0xiLPkSlz1U/FtazMS+ve5\n\t9Xpv2e2saU6fQVIKU2F9dKncwR58dIPrieaj7NOGSsPYzgFMnvkJXutdNUlbZoQst6Tr\n\t02DQ==", "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=NwK/kVUN0kahkRjDZV28trjfdDjgG8MfoLw9uccaSfY=;\n\tb=BYJSXD2XdxrViJhoL/M+DMbBKsKSWh1u62WuXQINYUnGIF1nlBz0T4/uoKAQAck3Pe\n\tjzy+T5Ae1t7fuwJ4Ix8X/2muEYoKhHcbLjA7JtIFPeiDiQ0NWf1c0FAihke8KDCEtsmW\n\t+eDrImkFLTbc8deeTTOVxbXXKzC3a2QrEmLWc6d33kG3v20b6tOcUhW8kZbr/OKiPBcD\n\t9Utu5nQIA1dvbyxG/TLo2mV8DfcuzYcg7OWcoO7Mp0dUkLs6hcq8bof+cCUybTZuL8XY\n\t/6gaPpkUNYVcKqoHNCu5fzn1SCxOAcNt6shCeXxePQhM/+mJMiYc7Lsgb5keWGQQuLW1\n\teRmw==", "X-Gm-Message-State": "AHYfb5g6/viivLT3hVE/wtNyIER4DBmu0Zlva6cc60CHm88eq1ecUGTN\n\tbYACJpSc9oXTkyHY", "X-Received": "by 10.99.7.211 with SMTP id 202mr1733033pgh.443.1504044963563;\n\tTue, 29 Aug 2017 15:16:03 -0700 (PDT)", "Message-ID": "<1504044961.11498.100.camel@edumazet-glaptop3.roam.corp.google.com>", "Subject": "[PATCH net-next] neigh: increase queue_len_bytes to match\n\twmem_default", "From": "Eric Dumazet <eric.dumazet@gmail.com>", "To": "Florian Fainelli <f.fainelli@gmail.com>", "Cc": "David Miller <davem@davemloft.net>, netdev@vger.kernel.org", "Date": "Tue, 29 Aug 2017 15:16:01 -0700", "In-Reply-To": "<1504029689.11498.79.camel@edumazet-glaptop3.roam.corp.google.com>", "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>\n\t<1503751671.11498.25.camel@edumazet-glaptop3.roam.corp.google.com>\n\t<deb227c9-728a-bd98-f282-1478d71353a8@gmail.com>\n\t<353aa37f-c62b-f5af-8c89-f67af6509497@gmail.com>\n\t<1504029689.11498.79.camel@edumazet-glaptop3.roam.corp.google.com>", "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": "From: Eric Dumazet <edumazet@google.com>\n\nFlorian reported UDP xmit drops that could be root caused to the\ntoo small neigh limit.\n\nCurrent limit is 64 KB, meaning that even a single UDP socket would hit\nit, since its default sk_sndbuf comes from net.core.wmem_default\n(~212992 bytes on 64bit arches).\n\nOnce ARP/ND resolution is in progress, we should allow a little more\npackets to be queued, at least for one producer.\n\nOnce neigh arp_queue is filled, a rogue socket should hit its sk_sndbuf\nlimit and either block in sendmsg() or return -EAGAIN.\n\nSigned-off-by: Eric Dumazet <edumazet@google.com>\nReported-by: Florian Fainelli <f.fainelli@gmail.com>\n---\n Documentation/networking/ip-sysctl.txt | 7 +++++--\n include/net/sock.h | 10 ++++++++++\n net/core/sock.c | 10 ----------\n net/decnet/dn_neigh.c | 2 +-\n net/ipv4/arp.c | 2 +-\n net/ipv4/tcp_input.c | 2 +-\n net/ipv6/ndisc.c | 2 +-\n 7 files changed, 19 insertions(+), 16 deletions(-)", "diff": "diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt\nindex 6b0bc0f715346a097a6df46e2ba2771359abcd23..b3345d0fe0a67e477a6754848e7fc7be144322d5 100644\n--- a/Documentation/networking/ip-sysctl.txt\n+++ b/Documentation/networking/ip-sysctl.txt\n@@ -109,7 +109,10 @@ 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, (same as net.core.wmem_default).\n+\t\tExact value depends on architecture and kernel options,\n+\t\tbut should be enough to allow queuing 256 packets\n+\t\tof medium size.\n \n neigh/default/unres_qlen - INTEGER\n \tThe maximum number of packets which may be queued for each\n@@ -119,7 +122,7 @@ neigh/default/unres_qlen - INTEGER\n \tunexpected packet loss. The current default value is calculated\n \taccording to default value of unres_qlen_bytes and true size of\n \tpacket.\n-\tDefault: 31\n+\tDefault: 101\n \n mtu_expires - INTEGER\n \tTime, in seconds, that cached PMTU information is kept.\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/ipv4/tcp_input.c b/net/ipv4/tcp_input.c\nindex 568ccfd6dd371d88136ffabe5cfcc36f099786b6..7616cd76f6f6a62f395da897baef2c66c0098193 100644\n--- a/net/ipv4/tcp_input.c\n+++ b/net/ipv4/tcp_input.c\n@@ -6086,9 +6086,9 @@ int tcp_conn_request(struct request_sock_ops *rsk_ops,\n \tstruct tcp_sock *tp = tcp_sk(sk);\n \tstruct net *net = sock_net(sk);\n \tstruct sock *fastopen_sk = NULL;\n-\tstruct dst_entry *dst = NULL;\n \tstruct request_sock *req;\n \tbool want_cookie = false;\n+\tstruct dst_entry *dst;\n \tstruct flowi fl;\n \n \t/* TW buckets are converted to open requests without\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": [ "net-next" ] }