Show a cover letter.

GET /api/covers/2216000/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2216000,
    "url": "http://patchwork.ozlabs.org/api/covers/2216000/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/cover/20260325160125.3469231-1-fmzakari@meta.com/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/projects/17/?format=api",
        "name": "GNU Compiler Collection",
        "link_name": "gcc",
        "list_id": "gcc-patches.gcc.gnu.org",
        "list_email": "gcc-patches@gcc.gnu.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260325160125.3469231-1-fmzakari@meta.com>",
    "list_archive_url": null,
    "date": "2026-03-25T16:01:24",
    "name": "[0/1] libgcc: Add sdata8 binary search support to _Unwind_Find_FDE",
    "submitter": {
        "id": 92969,
        "url": "http://patchwork.ozlabs.org/api/people/92969/?format=api",
        "name": "Farid Zakaria",
        "email": "fmzakari@meta.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/gcc/cover/20260325160125.3469231-1-fmzakari@meta.com/mbox/",
    "series": [
        {
            "id": 497470,
            "url": "http://patchwork.ozlabs.org/api/series/497470/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=497470",
            "date": "2026-03-25T16:01:25",
            "name": "libgcc: Add sdata8 binary search support to _Unwind_Find_FDE",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/497470/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2216000/comments/",
    "headers": {
        "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=meta.com header.i=@meta.com header.a=rsa-sha256\n header.s=s2048-2025-q2 header.b=NZQNFuvJ;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=meta.com header.i=@meta.com header.a=rsa-sha256\n header.s=s2048-2025-q2 header.b=NZQNFuvJ",
            "sourceware.org;\n dmarc=pass (p=reject dis=none) header.from=meta.com",
            "sourceware.org; spf=pass smtp.mailfrom=meta.com",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=67.231.153.30"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fgsBS65vVz1xy3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 03:02:56 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 6B2364BB58E1\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 16:02:54 +0000 (GMT)",
            "from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com\n [67.231.153.30])\n by sourceware.org (Postfix) with ESMTPS id E6FF74BA23CB\n for <gcc-patches@gcc.gnu.org>; Wed, 25 Mar 2026 16:01:40 +0000 (GMT)",
            "from pps.filterd (m0089730.ppops.net [127.0.0.1])\n by m0089730.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 62PDoPI41516741\n for <gcc-patches@gcc.gnu.org>; Wed, 25 Mar 2026 09:01:40 -0700",
            "from mail.thefacebook.com ([163.114.134.16])\n by m0089730.ppops.net (PPS) with ESMTPS id 4d42hg1q7v-2\n (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Wed, 25 Mar 2026 09:01:40 -0700 (PDT)",
            "from localhost (2620:10d:c085:108::150d) by mail.thefacebook.com\n (2620:10d:c08b:78::c78f) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.35; Wed, 25 Mar\n 2026 16:01:31 +0000"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 6B2364BB58E1",
            "OpenDKIM Filter v2.11.0 sourceware.org E6FF74BA23CB"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org E6FF74BA23CB",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org E6FF74BA23CB",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774454501; cv=none;\n b=oK29CXrAJ1YKh8R4DrSwBINXtXUtTkcuP1AwPBpEXVjMk1ftgvp//I9wCn4va7GcJG94JTYL2a5NRx3Z6YHZn1/HlYys9STneUYZjtA30t84VEYESUnu0yWXBuv3E9riDzJfiC7iej5aGw5hZVZWBwIEKOyIe0si/n/Yax9yoc4=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1774454501; c=relaxed/simple;\n bh=4yqNfKusH8xZjE+Z4a7rh5zxEbh/INzmIuLxTUQBb34=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=cCwpIB/D42eZmjThnS6RQTwBIPNNQVr8ip/wLirP1XUJB7EUhOKKiZBMefhQhgKRdtyjMrX08C5YKwIiw2Mu4QNAf1EPuZu/nsfcFX0WqHfN6UBt5AQVW8j8aRlLQ61pP5xevsg6jZb7Jj2vD/boLejMqPGxmYro6MzkhL4QRJ0=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc\n :content-transfer-encoding:content-type:date:from:message-id\n :mime-version:subject:to; s=s2048-2025-q2; bh=IJKcLbqlaQcX8wX5Vn\n UBlegdTfMTCZVU4xfGpMK4WII=; b=NZQNFuvJXl82ccG2x+5cpSTXmlhzW3/gdB\n myEDY8j60qZMiyoFnGLhfh7SnNP8Vzy1QGD9SwoHRT1Xh0IxwChq5ezDiGlUn47a\n Q6oEQ1R0MLGIaP8zJEgRRL2eXOHaUq1/SrfxMlvdzlbw2c2g1jXmg5cog7Aqo7M/\n X7Hg191zTHKsaXtWfjqXnTo8dvPPltWSyvWf7XIC3HFid3pPGlNzPRdja+lhz6rv\n an7FLprqclEwPs+hr0sjU8vvoIyHZ0e5LvIevvURJn4SdunH75j8sAC4tc7/gkPD\n PzDvQc8O+uuGnN29jMxLB8UCP3hyZdrPlvgzSF2x9QDN3Flr+Tsw==",
        "From": "Farid Zakaria <fmzakari@meta.com>",
        "To": "<gcc-patches@gcc.gnu.org>",
        "CC": "Farid Zakaria <fmzakari@meta.com>",
        "Subject": "[PATCH 0/1] libgcc: Add sdata8 binary search support to\n _Unwind_Find_FDE",
        "Date": "Wed, 25 Mar 2026 09:01:24 -0700",
        "Message-ID": "<20260325160125.3469231-1-fmzakari@meta.com>",
        "X-Mailer": "git-send-email 2.52.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[2620:10d:c085:108::150d]",
        "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMzI1MDExNSBTYWx0ZWRfXyG/suaS+8MoC\n Omkci/n2WbzVlpua/zyTaI/L1Irt3D9yODz/Am3IzW152fgULBgjim8gbERweTfnYRGdY0JONaj\n zj8wCSk7oYfDA2obk2dUx0uVWBxykDSbmX7XYu2T0Mqn/sbYTKFUjUyQ/+dnr8sEbK6NJyj24+w\n 0kMYKCmfjNrB1iNkwkHsWIZVX4Su9SPkJh4K6OqAhJDrAnIisWzTOsUZG6kjmu9R2dTe4WEycuq\n yRKjJATm75X/foEM+j4olCQ1jWPmswA8Z8bnfU/sif5VY8hZw+kQWwC/xepohK248dU02pzmpDw\n YEH22wWkWzEyQKbAuvv3P4TI5UDD4XXOJQbG4yBvqRwcMDP88WtkLs399wfVI7sw6B6xIKnWNjj\n dcTvxj2m6b//2dKVdRjKsOMldEkWZWtgGq1EMA7giIKlXHGxDEn5UjxYpzuDGQkU3Knc14VY7+B\n ZfGwcpXqHbhRGjSe9Ew==",
        "X-Proofpoint-ORIG-GUID": "7TXA4v-e2y9ElDszkPJQT5CkiynlQ9AC",
        "X-Authority-Analysis": "v=2.4 cv=XJA9iAhE c=1 sm=1 tr=0 ts=69c406e4 cx=c_pps\n a=CB4LiSf2rd0gKozIdrpkBw==:117 a=CB4LiSf2rd0gKozIdrpkBw==:17\n a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=7x6HtfJdh03M6CCDgxCd:22\n a=855S8uPTkML1Oy45N9_h:22 a=NEAV23lmAAAA:8 a=UD1FY8RiABmVuM7fjnkA:9",
        "X-Proofpoint-GUID": "7TXA4v-e2y9ElDszkPJQT5CkiynlQ9AC",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-03-25_04,2026-03-24_01,2025-10-01_01",
        "X-BeenThere": "gcc-patches@gcc.gnu.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>",
        "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>",
        "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>",
        "List-Post": "<mailto:gcc-patches@gcc.gnu.org>",
        "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>",
        "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>",
        "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"
    },
    "content": "The FDE lookup in unwind-dw2-fde-dip.c uses a binary search on the\n.eh_frame_hdr table, but only when the table encoding is\nDW_EH_PE_datarel | DW_EH_PE_sdata4 (8-byte entries).  When\n-large-eh-encoding produces DW_EH_PE_datarel | DW_EH_PE_sdata8\n(16-byte entries), the code falls through to linear_search_fdes(),\nregressing FDE lookup from O(log N) to O(N).\n\nThis patch extends the binary search to also handle sdata8 table\nentries, maintaining O(log N) lookup for large binaries where\noffsets exceed 2GiB.\n\nWe recently added support in lld (LLVM) to support sdata8 for\neh_frame_hdr automatically regardless of code-model.\nhttps://github.com/llvm/llvm-project/pull/179089\n\nBenchmark results (FDE lookup with sdata8 encoding):\n\nBefore (falls through to linear_search_fdes):\n\n  depth1(1)       719.49us     1.39K\n  depth5(1)       723.31us     1.38K\n  depth10(1)      726.60us     1.38K\n  depth20(1)      739.54us     1.35K\n  depth40(1)      779.26us     1.28K\n  manyFdes(1)      13.02s     76.82m\n\nAfter (binary search for sdata8):\n\n  depth1(1)         1.47us   679.29K\n  depth5(1)         2.49us   402.15K\n  depth10(1)        3.75us   266.96K\n  depth20(1)        6.81us   146.93K\n  depth40(1)       11.76us    85.03K\n  manyFdes(1)      18.45ms    54.21\n\nThe manyFdes case improves from ~13s to ~18ms (~700x speedup).\n\nNote: there are no existing tests in the GCC testsuite for the\nsdata4 binary search path in find_fde_tail (the PT_GNU_EH_FRAME /\ndl_iterate_phdr path).  \n\nBootstrapped and regression tested on x86_64-pc-linux-gnu.\n\nFarid Zakaria (1):\n  libgcc: Add sdata8 binary search support to _Unwind_Find_FDE\n\n libgcc/unwind-dw2-fde-dip.c | 64 ++++++++++++++++++++++++++++---------\n 1 file changed, 49 insertions(+), 15 deletions(-)"
}