Show a patch.

GET /api/patches/358/
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 358,
    "url": "https://patches.dpdk.org/api/patches/358/",
    "web_url": "https://patches.dpdk.org/patch/358/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk"
    },
    "msgid": "<1410457641-3540-3-git-send-email-balazs.nemeth@intel.com>",
    "date": "2014-09-11T17:47:19",
    "name": "[dpdk-dev,2/4] lib/librte_table: Fix checking extended buckets in unoptimized case",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "5d07e07a8b064d8566f3a0a9b8978eb393a6a542",
    "submitter": {
        "id": 67,
        "url": "https://patches.dpdk.org/api/people/67/",
        "name": "Balazs Nemeth",
        "email": "balazs.nemeth@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/patch/358/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/358/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/358/checks/",
    "tags": {},
    "headers": {
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Cc": "Balazs Nemeth <balazs.nemeth@intel.com>",
        "X-Original-To": "patchwork@dpdk.org",
        "Date": "Thu, 11 Sep 2014 19:47:19 +0200",
        "In-Reply-To": "<1410457641-3540-1-git-send-email-balazs.nemeth@intel.com>",
        "Precedence": "list",
        "X-BeenThere": "dev@dpdk.org",
        "References": "<1410457641-3540-1-git-send-email-balazs.nemeth@intel.com>",
        "X-Mailer": "git-send-email 2.1.0",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "To": "dev@dpdk.org",
        "Errors-To": "dev-bounces@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 78ECFB39E;\n\tThu, 11 Sep 2014 19:41:35 +0200 (CEST)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id 255EAB399\n\tfor <dev@dpdk.org>; Thu, 11 Sep 2014 19:41:32 +0200 (CEST)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby orsmga102.jf.intel.com with ESMTP; 11 Sep 2014 10:40:11 -0700",
            "from bnemeth-mobl.ger.corp.intel.com (HELO localhost.localdomain)\n\t([172.22.195.53])\n\tby orsmga002.jf.intel.com with ESMTP; 11 Sep 2014 10:46:17 -0700"
        ],
        "From": "Balazs Nemeth <balazs.nemeth@intel.com>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "Delivered-To": "patchwork@dpdk.org",
        "Message-Id": "<1410457641-3540-3-git-send-email-balazs.nemeth@intel.com>",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "Subject": "[dpdk-dev] [PATCH 2/4] lib/librte_table: Fix checking extended\n\tbuckets in unoptimized case",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-IronPort-AV": "E=Sophos;i=\"5.04,506,1406617200\"; d=\"scan'208\";a=\"601588444\"",
        "X-ExtLoop1": "1",
        "List-Post": "<mailto:dev@dpdk.org>",
        "X-Mailman-Version": "2.1.15"
    },
    "content": "If a key is not found in a bucket and the bucket has been extended,\nthe extended buckets also have to checked for potentially matching\nkeys. The extended buckets are checked at the end of the lookup. In\nmost cases, this logic is skipped as it is uncommon to have buckets in\nan extended state.\n\nIn case the lookup is performed with less than 5 packets, an\nunoptimized version is run instead (the optimized version requires at\nleast 5 packets). The extended buckets should also be checked in this\ncase instead of simply ignoring the extended buckets.\n\nSigned-off-by: Balazs Nemeth <balazs.nemeth@intel.com>\n---\n lib/librte_table/rte_table_hash_key16.c | 4 ++--\n lib/librte_table/rte_table_hash_key32.c | 4 ++--\n lib/librte_table/rte_table_hash_key8.c  | 8 ++++----\n 3 files changed, 8 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/lib/librte_table/rte_table_hash_key16.c b/lib/librte_table/rte_table_hash_key16.c\nindex f5ec87d..f78db77 100644\n--- a/lib/librte_table/rte_table_hash_key16.c\n+++ b/lib/librte_table/rte_table_hash_key16.c\n@@ -968,8 +968,7 @@ rte_table_hash_lookup_key16_ext(\n \t\t\t\tbuckets, keys, f);\n \t\t}\n \n-\t\t*lookup_hit_mask = pkts_mask_out;\n-\t\treturn 0;\n+\t\tgoto grind_next_buckets;\n \t}\n \n \t/*\n@@ -1060,6 +1059,7 @@ rte_table_hash_lookup_key16_ext(\n \t\tbucket20, bucket21, pkts_mask_out, entries,\n \t\tbuckets_mask, buckets, keys, f);\n \n+grind_next_buckets:\n \t/* Grind next buckets */\n \tfor ( ; buckets_mask; ) {\n \t\tuint64_t buckets_mask_next = 0;\ndiff --git a/lib/librte_table/rte_table_hash_key32.c b/lib/librte_table/rte_table_hash_key32.c\nindex e8f4812..10e281d 100644\n--- a/lib/librte_table/rte_table_hash_key32.c\n+++ b/lib/librte_table/rte_table_hash_key32.c\n@@ -988,8 +988,7 @@ rte_table_hash_lookup_key32_ext(\n \t\t\t\tkeys, f);\n \t\t}\n \n-\t\t*lookup_hit_mask = pkts_mask_out;\n-\t\treturn 0;\n+\t\tgoto grind_next_buckets;\n \t}\n \n \t/*\n@@ -1080,6 +1079,7 @@ rte_table_hash_lookup_key32_ext(\n \t\tbucket20, bucket21, pkts_mask_out, entries,\n \t\tbuckets_mask, buckets, keys, f);\n \n+grind_next_buckets:\n \t/* Grind next buckets */\n \tfor ( ; buckets_mask; ) {\n \t\tuint64_t buckets_mask_next = 0;\ndiff --git a/lib/librte_table/rte_table_hash_key8.c b/lib/librte_table/rte_table_hash_key8.c\nindex d60c96e..606805d 100644\n--- a/lib/librte_table/rte_table_hash_key8.c\n+++ b/lib/librte_table/rte_table_hash_key8.c\n@@ -1104,8 +1104,7 @@ rte_table_hash_lookup_key8_ext(\n \t\t\t\tkeys, f);\n \t\t}\n \n-\t\t*lookup_hit_mask = pkts_mask_out;\n-\t\treturn 0;\n+\t\tgoto grind_next_buckets;\n \t}\n \n \t/*\n@@ -1196,6 +1195,7 @@ rte_table_hash_lookup_key8_ext(\n \t\tbucket20, bucket21, pkts_mask_out, entries,\n \t\tbuckets_mask, buckets, keys, f);\n \n+grind_next_buckets:\n \t/* Grind next buckets */\n \tfor ( ; buckets_mask; ) {\n \t\tuint64_t buckets_mask_next = 0;\n@@ -1250,8 +1250,7 @@ rte_table_hash_lookup_key8_ext_dosig(\n \t\t\t\tbuckets, keys, f);\n \t\t}\n \n-\t\t*lookup_hit_mask = pkts_mask_out;\n-\t\treturn 0;\n+\t\tgoto grind_next_buckets;\n \t}\n \n \t/*\n@@ -1342,6 +1341,7 @@ rte_table_hash_lookup_key8_ext_dosig(\n \t\tbucket20, bucket21, pkts_mask_out, entries,\n \t\tbuckets_mask, buckets, keys, f);\n \n+grind_next_buckets:\n \t/* Grind next buckets */\n \tfor ( ; buckets_mask; ) {\n \t\tuint64_t buckets_mask_next = 0;\n",
    "prefixes": [
        "dpdk-dev",
        "2/4"
    ]
}