get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 138143,
    "url": "http://patchwork.dpdk.org/api/patches/138143/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20240310190759.305837-1-stephen@networkplumber.org/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20240310190759.305837-1-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240310190759.305837-1-stephen@networkplumber.org",
    "date": "2024-03-10T19:07:24",
    "name": "[RFC,v2] eal: reduce size of internal config structure",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "24286f2b66bdbd05f753e38e12c284a9a51c2d31",
    "submitter": {
        "id": 27,
        "url": "http://patchwork.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20240310190759.305837-1-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 31452,
            "url": "http://patchwork.dpdk.org/api/series/31452/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=31452",
            "date": "2024-03-10T19:07:24",
            "name": "[RFC,v2] eal: reduce size of internal config structure",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/31452/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/138143/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/138143/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 2546943C7D;\n\tSun, 10 Mar 2024 20:08:04 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E06144027A;\n\tSun, 10 Mar 2024 20:08:03 +0100 (CET)",
            "from mail-pg1-f171.google.com (mail-pg1-f171.google.com\n [209.85.215.171])\n by mails.dpdk.org (Postfix) with ESMTP id B67F640266\n for <dev@dpdk.org>; Sun, 10 Mar 2024 20:08:02 +0100 (CET)",
            "by mail-pg1-f171.google.com with SMTP id\n 41be03b00d2f7-5bdbe2de25fso3207096a12.3\n for <dev@dpdk.org>; Sun, 10 Mar 2024 12:08:02 -0700 (PDT)",
            "from hermes.lan (204-195-123-141.wavecable.com. [204.195.123.141])\n by smtp.gmail.com with ESMTPSA id\n q1-20020a170902a3c100b001dbb6fef41fsm3047420plb.257.2024.03.10.12.08.01\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 10 Mar 2024 12:08:01 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1710097682;\n x=1710702482; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=oqAM3O6uqAtL08eS0djgcn36VR51GxdL6fU/sdElm1s=;\n b=Gf/Nd7mEPBARmCbr5MnV/LmbPOPjgn7iYVPTrtaOSsnvDQW0PSH+Y4gAtCXAPr6hud\n a9gkiDkD3lGsQUiTfmvDBzLaaQJeAL6PV7jy71+dJ7JbzMtyUrHzxkw1sZzdS/bx9Psn\n kESoMw3sCTKt2ZYEaOwtn13SgX1gmtEkQBCFFCQt1CSDF0/6TgTD1WowNYit2UR7JUPA\n 2RWcnql12iUufIDwSjXgbeaUFxGkB08Xtz0uHOIh600Hu15v5KtZHSrO/RuGXE1H568k\n eRKbYzMrHVbw/nzASmDAY7n8YONo++XwrcWpP0Vjjt1LeIB/LlnxeF9x/cmCxc6F+3Bb\n wwzA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1710097682; x=1710702482;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=oqAM3O6uqAtL08eS0djgcn36VR51GxdL6fU/sdElm1s=;\n b=gT56DF9eE7ZAyOMoK49nEodQ9OLF6OmdUbAPuT0uD7PNQZEJSisTy8hmavfkGGNkZ6\n WWjTmjaFQa27BzTQto3doHebjSvo1JDyFJyR+8VgMlrkUE0RdqzuuqStwR5kOBLRy/6W\n T/pHQer34Z/g6v+uhxYFU55oFRptWQ0NHTBE4r8L5ciudCiHdUAZX+f8o8s3OJcOK7/g\n FkWNNZVW3n/PHx/TdV305vqt6e4dxJzJ8Be+aIkkl37CraVEYz11U+7+WYbFZ+saW+um\n 2HZPGCPD79nF9YUlCbNMJET2Qdj6/X/GmeNfy82CEAAEwQybobuPFvo0PdE/yNfNmHtA\n Vuig==",
        "X-Gm-Message-State": "AOJu0YzYMCuntvzB+HlqEQtbU/WEOYyW0XB8CSG6aYYpLb+kj0TfUVn8\n kn5C0BBA1TSApNf6PinddqEPQXE2p28PQ0uvzSi16VjGmIc4m4HTzRh3u5dM68X4LjxokI/cvls\n yt5Q=",
        "X-Google-Smtp-Source": "\n AGHT+IFjvD1gwfUqzezGx8wYUSHdCiDOhJnJLQvPAGRKml2R3UjUm5kadWkfds3WH16aflzTll6AZQ==",
        "X-Received": "by 2002:a17:903:11c7:b0:1dd:22ec:7b22 with SMTP id\n q7-20020a17090311c700b001dd22ec7b22mr7016983plh.33.1710097681690;\n Sun, 10 Mar 2024 12:08:01 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>",
        "Subject": "[RFC v2] eal: reduce size of internal config structure",
        "Date": "Sun, 10 Mar 2024 12:07:24 -0700",
        "Message-ID": "<20240310190759.305837-1-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<0240310172124.212792-1-stephen@networkplumber.org>",
        "References": "<0240310172124.212792-1-stephen@networkplumber.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "The internal config structure is a hodgepodge of earlier\nchanges and has lots of holes.\n\t - convert boolean flag values to bits\n\t - rearrange to eliminate holes\n\t   saves one cacheline.\n\t - don't use docbook comment on internal structure\n\t - put the big arrays at the end for better locality\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\n---\nv2 - number of channels and ranks should be uint8_t not boolean\n\n lib/eal/common/eal_internal_cfg.h | 91 +++++++++++++------------------\n 1 file changed, 38 insertions(+), 53 deletions(-)",
    "diff": "diff --git a/lib/eal/common/eal_internal_cfg.h b/lib/eal/common/eal_internal_cfg.h\nindex 167ec501fa79..cf7d30fa1c66 100644\n--- a/lib/eal/common/eal_internal_cfg.h\n+++ b/lib/eal/common/eal_internal_cfg.h\n@@ -42,67 +42,52 @@ struct simd_bitwidth {\n \n /** Hugepage backing files discipline. */\n struct hugepage_file_discipline {\n-\t/** Unlink files before mapping them to leave no trace in hugetlbfs. */\n-\tbool unlink_before_mapping;\n-\t/** Unlink existing files at startup, re-create them before mapping. */\n-\tbool unlink_existing;\n+\tuint8_t\tunlink_before_mapping; /* Unlink files before mapping, leave no trace */\n+\tuint8_t unlink_existing;       /* Unlink existing files at startup */\n };\n \n /**\n  * internal configuration\n  */\n struct internal_config {\n-\tvolatile size_t memory;           /**< amount of asked memory */\n-\tvolatile unsigned force_nchannel; /**< force number of channels */\n-\tvolatile unsigned force_nrank;    /**< force number of ranks */\n-\tvolatile unsigned no_hugetlbfs;   /**< true to disable hugetlbfs */\n+\tvolatile size_t memory;           /* amount of asked memory */\n+\tvolatile enum rte_proc_type_t process_type; /* multi-process proc type */\n+\tvolatile uint8_t force_nchannel; /* force number of channels */\n+\tvolatile uint8_t force_nrank;    /* force number of ranks */\n+\tvolatile uint16_t\n+\t\tno_hugetlbfs:1,   /* disable hugetlbfs */\n+\t\tno_pci:1,         /* disable PCI */\n+\t\tno_hpet:1,        /* disable HPET */\n+\t\tvmware_tsc_map:1, /* use VMware TSC mapping */\n+\t\tno_shconf:1,      /* no shared config */\n+\t\tin_memory:1,\t  /* operate entirely in-memory no shared files */\n+\t\tcreate_uio_dev:1, /* create /dev/uioX devices */\n+\t\tforce_sockets:1,  /* allocate memory on specific sockets */\n+\t\tforce_socket_limits:1,\n+\t\tlegacy_mem:1,\t  /* no dynamic allocation */\n+\t\tmatch_allocations:1, /* free hugepages exactly as allocated */\n+\t\tunlink_before_mapping:1, /* unlink before mapping leave no trace in hugetlbfs */\n+\t\tunlink_existing:1, /* unlink existing files at startup */\n+\t\tsingle_file_segments:1, /* all page within single file */\n+\t\tno_telemetry:1,   /* disable telemetry */\n+\t\tinit_complete:1;  /* EAL has completed initialization */\n+\n+\tuintptr_t base_virtaddr;          /* base address to try and reserve memory from */\n+\tvolatile enum rte_intr_mode vfio_intr_mode; /* default interrupt mode for VFIO */\n+\trte_uuid_t vfio_vf_token;\t  /* VF token for VFIO-PCI bound PF and VFs devices */\n+\tvolatile int syslog_facility;\t  /* facility passed to openlog() */\n+\tchar *user_mbuf_pool_ops_name;    /* user defined mbuf pool ops name */\n+\trte_cpuset_t ctrl_cpuset;         /* cpuset for ctrl threads */\n+\tstruct simd_bitwidth max_simd_bitwidth; /* max simd bitwidth path to use */\n \tstruct hugepage_file_discipline hugepage_file;\n-\tvolatile unsigned no_pci;         /**< true to disable PCI */\n-\tvolatile unsigned no_hpet;        /**< true to disable HPET */\n-\tvolatile unsigned vmware_tsc_map; /**< true to use VMware TSC mapping\n-\t\t\t\t\t\t\t\t\t\t* instead of native TSC */\n-\tvolatile unsigned no_shconf;      /**< true if there is no shared config */\n-\tvolatile unsigned in_memory;\n-\t/**< true if DPDK should operate entirely in-memory and not create any\n-\t * shared files or runtime data.\n-\t */\n-\tvolatile unsigned create_uio_dev; /**< true to create /dev/uioX devices */\n-\tvolatile enum rte_proc_type_t process_type; /**< multi-process proc type */\n-\t/** true to try allocating memory on specific sockets */\n-\tvolatile unsigned force_sockets;\n-\tvolatile uint64_t socket_mem[RTE_MAX_NUMA_NODES]; /**< amount of memory per socket */\n-\tvolatile unsigned force_socket_limits;\n-\tvolatile uint64_t socket_limit[RTE_MAX_NUMA_NODES]; /**< limit amount of memory per socket */\n-\tuintptr_t base_virtaddr;          /**< base address to try and reserve memory from */\n-\tvolatile unsigned legacy_mem;\n-\t/**< true to enable legacy memory behavior (no dynamic allocation,\n-\t * IOVA-contiguous segments).\n-\t */\n-\tvolatile unsigned match_allocations;\n-\t/**< true to free hugepages exactly as allocated */\n-\tvolatile unsigned single_file_segments;\n-\t/**< true if storing all pages within single files (per-page-size,\n-\t * per-node) non-legacy mode only.\n-\t */\n-\tvolatile int syslog_facility;\t  /**< facility passed to openlog() */\n-\t/** default interrupt mode for VFIO */\n-\tvolatile enum rte_intr_mode vfio_intr_mode;\n-\t/** the shared VF token for VFIO-PCI bound PF and VFs devices */\n-\trte_uuid_t vfio_vf_token;\n-\tchar *hugefile_prefix;      /**< the base filename of hugetlbfs files */\n-\tchar *hugepage_dir;         /**< specific hugetlbfs directory to use */\n-\tchar *user_mbuf_pool_ops_name;\n-\t\t\t/**< user defined mbuf pool ops name */\n-\tunsigned num_hugepage_sizes;      /**< how many sizes on this system */\n+\tenum rte_iova_mode iova_mode ;    /* IOVA mode on this system  */\n+\tunsigned int num_hugepage_sizes;  /* how many sizes on this system */\n+\tsize_t huge_worker_stack_size;    /* worker thread stack size */\n+\tchar *hugefile_prefix;            /* base filename of hugetlbfs files */\n+\tchar *hugepage_dir;               /* hugetlbfs directory */\n \tstruct hugepage_info hugepage_info[MAX_HUGEPAGE_SIZES];\n-\tenum rte_iova_mode iova_mode ;    /**< Set IOVA mode on this system  */\n-\trte_cpuset_t ctrl_cpuset;         /**< cpuset for ctrl threads */\n-\tvolatile unsigned int init_complete;\n-\t/**< indicates whether EAL has completed initialization */\n-\tunsigned int no_telemetry; /**< true to disable Telemetry */\n-\tstruct simd_bitwidth max_simd_bitwidth;\n-\t/**< max simd bitwidth path to use */\n-\tsize_t huge_worker_stack_size; /**< worker thread stack size */\n+\tvolatile uint64_t socket_mem[RTE_MAX_NUMA_NODES]; /* amount of memory per socket */\n+\tvolatile uint64_t socket_limit[RTE_MAX_NUMA_NODES]; /* limit amount of memory per socket */\n };\n \n void eal_reset_internal_config(struct internal_config *internal_cfg);\n",
    "prefixes": [
        "RFC",
        "v2"
    ]
}