get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 122078,
    "url": "https://patches.dpdk.org/api/patches/122078/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1673615669-21011-3-git-send-email-vipinp@vmware.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "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",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1673615669-21011-3-git-send-email-vipinp@vmware.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1673615669-21011-3-git-send-email-vipinp@vmware.com",
    "date": "2023-01-13T13:14:29",
    "name": "[2/2] Memory Allocation: Alternative fix for ignore_msk during find_next_n() in fb_array library",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "135753dea4dfcea46bde23461ed6395aa4badc72",
    "submitter": {
        "id": 2933,
        "url": "https://patches.dpdk.org/api/people/2933/?format=api",
        "name": "Vipin P R",
        "email": "vipinp@vmware.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1673615669-21011-3-git-send-email-vipinp@vmware.com/mbox/",
    "series": [
        {
            "id": 26552,
            "url": "https://patches.dpdk.org/api/series/26552/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=26552",
            "date": "2023-01-13T13:14:27",
            "name": "*** Memory Allocation: Fixes ignore_msk during find_next_n() in fb_array library***",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/26552/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/122078/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/122078/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 910FB423E6;\n\tSun, 15 Jan 2023 21:12:26 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 510BB42D2B;\n\tSun, 15 Jan 2023 21:11:47 +0100 (CET)",
            "from CY4PR02CU007-vft-obe.outbound.protection.outlook.com\n (mail-westcentralusazon11011007.outbound.protection.outlook.com\n [40.93.199.7]) by mails.dpdk.org (Postfix) with ESMTP id 9016642DF3;\n Fri, 13 Jan 2023 14:14:50 +0100 (CET)",
            "from DM6PR05MB5577.namprd05.prod.outlook.com (2603:10b6:5:c::16) by\n CY4PR05MB3431.namprd05.prod.outlook.com (2603:10b6:910:59::27) with\n Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.6002.13; Fri, 13 Jan 2023 13:14:48 +0000",
            "from DM6PR05MB5577.namprd05.prod.outlook.com\n ([fe80::4cbc:cca6:3a16:5023]) by DM6PR05MB5577.namprd05.prod.outlook.com\n ([fe80::4cbc:cca6:3a16:5023%4]) with mapi id 15.20.5986.018; Fri, 13 Jan 2023\n 13:14:48 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=d7BHfaDdXaVNCBoaodiWIMZGXkWNudTqhUOlQ9Mpp5vi1V89wTaxXaq0/GoNnedTa2jDEOJxBjYeldKfNS3m/sp93kDnceKf3em6EzaVpApC61FWbN+8zUyFymloelzERX08cjupTVPcgYp7eXr2xgZWE80RArKNF+DgCPkSQA09GYsNGody3DPTHpUoUCAu4kXEUpHuxanJueXggNBGvSXExTmdzB2jMrsvgBpm37TOtDzu2H+NFXDyRCN//6XZWUG+2Dpx3eqOb7l1a9YGqJ4DLolZ++an6Lfp2jr1EfDMRS6yGQPS0gc2eRX4+LUhgHguESYawy5SargTr77FOg==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=+A/uApqO9Hs4rvc9RW0PBktZgxTQNhNoGjLaXTMsV3w=;\n b=Pe7U63OF8/0lMUqNRz4rLGq31h+a0/H1AGIP64zgn+aLBQG7A46ik4BgmbduAQJ/V2OGl8SWlGcrqhkkIfqndgB9Y827CLLXBqhF4SzuXqutvDOacg0iuIXPr4G9IUcs34/duC9noRYQvaGIIp0qAqmNSh701v4bQCb8LEgJZzhePbxdhBHlofZRWamtCfSdHium2NsxV4OKAWJdHl57ch8RHhXw2hg5XQSlF2rS9DlkWBCARw5Q1blv4LnX+CFdx+ggd9peTkyNNeide6uRD1FlP+OUCAXhmMQuas2SDG4PvAw5GiUogfEDQkmugSWQAbgf/zMzkGWAPdoyGMysew==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com;\n dkim=pass header.d=vmware.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=+A/uApqO9Hs4rvc9RW0PBktZgxTQNhNoGjLaXTMsV3w=;\n b=pvvvxbxGWjDOav8391ovSYmeeMNWFT60e2UJ9xhqh9Fi5Q7cwOkG3NLcWUjIYn24/OSpCA3PqxsesD8vuWdIOk6+Hu/qrY/9WgiHU94o7ImdJG01Mo9YbOTHPXvQqxdKxoT9bkvkC8X1v1x5mlpHy4vviy3Lxq7dq6wUrzujasQ=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=vmware.com;",
        "From": "Vipin P R <vipinp@vmware.com>",
        "To": "anatoly.burakov@intel.com",
        "Cc": "dev@dpdk.org,\n\tVipin P R <vipinp@vmware.com>,\n\tstable@dpdk.org",
        "Subject": "[PATCH 2/2] Memory Allocation: Alternative fix for ignore_msk during\n find_next_n() in fb_array library",
        "Date": "Fri, 13 Jan 2023 13:14:29 +0000",
        "Message-Id": "<1673615669-21011-3-git-send-email-vipinp@vmware.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1673615669-21011-1-git-send-email-vipinp@vmware.com>",
        "References": "<1673615669-21011-1-git-send-email-vipinp@vmware.com>",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "BY5PR13CA0009.namprd13.prod.outlook.com\n (2603:10b6:a03:180::22) To DM6PR05MB5577.namprd05.prod.outlook.com\n (2603:10b6:5:c::16)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "DM6PR05MB5577:EE_|CY4PR05MB3431:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "6d32d32d-fc14-45be-8e72-08daf56825b5",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n ROVVqtV1meaDHcoOnvFDiMjxWN6Ksx9TZazRVRFpGR5mWffbvh+Fn9lWUi7bKnYvht2EEHeEels9XeHAeJ9SkcqsoDIjEXUoBGZEZ2sCtOemHXXm26qPBM6ZF6S+t/Z7exB4UBxDKPoSGVlw2lbAm38xk167X2GHZlmfg9j1LdFqdTNHnOJ9PK66jQcP26N/f2l1mH+TuMWBVNN0UvAXCQTThJnqBHVJdPCsEQxfahhpRQ+mj2/C5g/wDKvLWBojtC4kOmLQKPhD7fANmPN/UdYQs5ZIuG3u/IlIaqgnKr+yqq9vtcidIzvsyWFKONrNw1O8XrI15G9FcLc/uuE9FOzw+Hb9M5+BcUvKYxDHi1w0JEGkv5SJZ/mFnjiIQpqoSoRM6wq457c8YNpz5ll3+vU4/eHn5Y8GXHtYhmYT/iSUnUG/q/HFFlXSJOi74pUg+8b5NyYM/dhpZ2W6AjfztHSwlvkvykUlqstJeHu34wV/meEStzMfc/LnRhg4hzKvqjA19a/7U93yt39R5NnX5MIivfSfYWgMGA1ZROmB++44MeIZf+JeYxnA5uJbT3WDsqeL/fbvtVFM60Fdr06BBG6CYi23aU15XCPJcb50zW3EqQYYFbStqnbESm6b2ORq1u0MilxCbwJDutVdVFPnwsYrq042ZxqhNVlYxyjqUrJ5BSEE+UdwT+mShlxLhkFp",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:DM6PR05MB5577.namprd05.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230022)(4636009)(396003)(136003)(346002)(366004)(376002)(39860400002)(451199015)(6506007)(36756003)(6666004)(2906002)(5660300002)(83380400001)(4326008)(6916009)(8936002)(8676002)(38350700002)(6512007)(38100700002)(478600001)(41300700001)(6486002)(26005)(66946007)(52116002)(186003)(66476007)(66556008)(2616005)(86362001)(316002);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n 17KNNT4vVynP6YsYTETctVnVgc+OmoSBwIq+V8DVZDl69U2kp7gpysGPzPKsvy0kRQQpjz9d8UIJtpU2CueVxKang3KVR/4TLa7/lbsPOQMeOuRwkT2cbfWDv0Zk3S8vQYz638O8BZDdf5zQerQvawKh8Gz54SoBmd9DvH/h83dIGzbn/LNHL9r5aolZZE+bjM0MzRwTH01mdMdkbYABh7zGk6Rvz7slufO4/Hg93PEyctzr22G1XvxmmgtLXIQPJl2HfDA0Rasp73oVwr0NclbAFOMJPI5TP9JBopCoa3NgQ9iA+KtjaJZPHLY/7sicIRkJP2CToM4ae4duKbk/qlRZyAAG0vx5xtafPGs/UfqOZUBzdajHQwQbFS/XTanyNQWawFTsgCkqQgO3UoT3SZZqRu/9QoWeX7LeAgn2y1Vnszo8QY7fJv4l1JZ8kfj+eygalcwpI8203/iQmqFWt6Bo2NiA7wP1TXFCul1aI38ws6lGVssKnKLaTBIgDjPJyEPbcsAbc2OlvHrGZADcYpqzkse7PV26HUyibPLz4vy/oQ/LxBAnbX4LpS3CRsRmYcMdDdP+GdTrwMJWwPV5H5xBp2auQGSFMXoMwsaWBopgfIxdfDFhdh/X2mHdQRUiRK6JPTNiPI00I6pV7h+Ht3GPFJ9dGSeKz+VoEFjrcl6OKWP8PEDx6Xv0PxNIY+bpj8CBQnl/ywetyN1Q73vt25ohUY/qo5TjSpYCLPdEhAhn4f0idngXUgaqRpOk+05nUvJRNP6+V9NbJfkbpTjOIMulAnp7B1hSZDeanrABbU1p1Vugq5rBmswAj8zDfI0V4mjkeuNJS8SH6I9Zj+ymoS8CCkq0AM+D7JkXV3f6XzUiYlBWUtuQZ5iAZX0CBtI1dyp7eOCfY0W3SEbVl4LnDNAeGFb0i3STd2hjBEOnlA97/RRNYcqIWkPsBWkSoPThcNaaYbhrMz7HL+Qx1pTbEuI7E0oGN8ocrZ5rJt6rkW8dq5V3+rtKNYM5unMmu1kkfCD+y+89ZGegWaITPNIkEgTVotc1NcUr8zUDIBPDl0/GAZUqLTd3Rbw5XnSlL+g1VX8sLh6vtdnm7AEXImkycmPiqrs51dgCExVlbow6KDJVJwEGwsOQd7gK6VzTzvJzH+PmSffF5xFGzEQi64anG/vTFGox30oOLhz7DGSs1Y1QS1lrnx/8f7ONFNJPLBWuThOvbmogw3C7j5X+T9T43hzULO4Gki1QfhCALbFTxnBT3039417sHI0rN5hqwmY7oW48808iCgKIbYC03061jpOdpoXIagY5HdWpegTInVkFtEreQSQUPC7r1ATjkWqyyVITx2TVfYPlKadHLtGM78IIQJAAWC7h2uoKS5jWyuYKKPk8GGuE/AF2jdf3fpFAfBwJCwK3zbUBzPRvIm7/m7epV2alNqOm7VmZMiJnE/IusqpcBHEXLEsIDvaw1KK2tUX7LcWN6HnmQoaf38Ihfl6OL/wdkIJJT4nm6FyjDbDSZpSc61NL/xxcohcSHHE1m1zQO1cjw9WG1whJ/loZFhFm/EycmtfQtvX2VSRVOqcGl9c2/t0C383uYkkalzNX",
        "X-OriginatorOrg": "vmware.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 6d32d32d-fc14-45be-8e72-08daf56825b5",
        "X-MS-Exchange-CrossTenant-AuthSource": "DM6PR05MB5577.namprd05.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "13 Jan 2023 13:14:48.5655 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n 4vwyldnVoC/2vepmz+iAqCxwIYco4nJ8RjthNIFPI/+iGFQGLQhmvVPLKX5OsX2e400OM6uIaNVLbqZbCqwmWA==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CY4PR05MB3431",
        "X-Mailman-Approved-At": "Sun, 15 Jan 2023 21:11:39 +0100",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Ignore mask ignores essential bits WHICH could have been contiguous.\nThis commit aims to rectify that\n\nCc: stable@dpdk.org\n\nSigned-off-by: Vipin P R <vipinp@vmware.com>\nAcked-by: Kumara Parameshwaran <kparameshwar@vmware.com>\n---\nDepends-on: 0001-Memory-Allocation-Fixes-ms_idx-jump-lookahead-during.patch\nDepends-on: 0002-Memory-Allocation-Fixes-ms_idx-jump-lookbehind-durin.patch\n---\n lib/eal/common/eal_common_fbarray.c | 21 ++++++++++++++++++---\n 1 file changed, 18 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/lib/eal/common/eal_common_fbarray.c b/lib/eal/common/eal_common_fbarray.c\nindex 313681a..29fffb6 100644\n--- a/lib/eal/common/eal_common_fbarray.c\n+++ b/lib/eal/common/eal_common_fbarray.c\n@@ -138,7 +138,7 @@ find_next_n(const struct rte_fbarray *arr, unsigned int start, unsigned int n,\n \tlast_msk = ~(UINT64_MAX << last_mod);\n \n \tfor (msk_idx = first; msk_idx < msk->n_masks; msk_idx++) {\n-\t\tuint64_t cur_msk, lookahead_msk;\n+\t\tuint64_t cur_msk, lookahead_msk, lookahead_msk_;\n \t\tunsigned int run_start, clz, left;\n \t\tbool found = false;\n \t\t/*\n@@ -215,12 +215,14 @@ find_next_n(const struct rte_fbarray *arr, unsigned int start, unsigned int n,\n \n \t\tfor (lookahead_idx = msk_idx + 1; lookahead_idx < msk->n_masks;\n \t\t\t\tlookahead_idx++) {\n-\t\t\tunsigned int s_idx, need;\n+\t\t\tunsigned int s_idx, need, fsb_idx, fcb_idx, ignore_bits;\n \t\t\tlookahead_msk = msk->data[lookahead_idx];\n \n \t\t\t/* if we're looking for free space, invert the mask */\n \t\t\tif (!used)\n \t\t\t\tlookahead_msk = ~lookahead_msk;\n+\t\t\t\n+\t\t\tlookahead_msk_ = lookahead_msk;\n \n \t\t\t/* figure out how many consecutive bits we need here */\n \t\t\tneed = RTE_MIN(left, MASK_ALIGN);\n@@ -236,10 +238,23 @@ find_next_n(const struct rte_fbarray *arr, unsigned int start, unsigned int n,\n \t\t\t\t * as well, so skip that on next iteration.\n \t\t\t\t */\n \t\t\t\tif (!lookahead_msk) {\n-\t\t\t\t\t/* There aren't \"need\" number of contiguous bits anywhere in the mask. \n+\t\t\t\t\t/* There aren't \"need\" number of contiguous bits anywhere in the mask.\n \t\t\t\t\t * Ignore these many number of bits from LSB for the next iteration. \n \t\t\t\t\t */\n \t\t\t\t\tignore_msk = ~((1ULL << need) - 1);\n+\t\t\t\t} else {\n+\t\t\t\t\t/* Find the first clear bit */\n+\t\t\t\t\tfcb_idx = __builtin_ffsll((~lookahead_msk_));\n+\t\t\t\t\t/* clear all bits upto the first clear bit in lookahead_msk_. */\n+\t\t\t\t\tlookahead_msk_ = lookahead_msk_ & ((~0ULL) << fcb_idx);\n+\t\t\t\t\t/* find the first set bit in the modified mask */\n+\t\t\t\t\tfsb_idx = __builtin_ffsll(lookahead_msk_);\n+\t\t\t\t\t/* number of bits to ignore from the next iteration */\n+\t\t\t\t\tignore_bits = fsb_idx - 1;\n+\t\t\t\t\t/* ignore all bits preceding the first set bit after the first clear bit\n+\t\t\t\t\t * starting from LSB of lookahead_msk_. \n+\t\t\t\t\t */\n+\t\t\t\t\tignore_msk = ~((1ULL << ignore_bits) - 1);\n \t\t\t\t}\n \t\t\t\tmsk_idx = lookahead_idx - 1;\n \t\t\t\tbreak;\n",
    "prefixes": [
        "2/2"
    ]
}