From patchwork Thu Jul 9 04:58:54 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhigang Lu X-Patchwork-Id: 6212 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 3EECF5A9B; Thu, 9 Jul 2015 07:01:04 +0200 (CEST) Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0058.outbound.protection.outlook.com [157.56.112.58]) by dpdk.org (Postfix) with ESMTP id F22045A9B for ; Thu, 9 Jul 2015 07:01:02 +0200 (CEST) Received: from DB5PR02CA0034.eurprd02.prod.outlook.com (10.161.237.44) by VI1PR02MB0798.eurprd02.prod.outlook.com (10.162.14.148) with Microsoft SMTP Server (TLS) id 15.1.207.19; Thu, 9 Jul 2015 05:01:01 +0000 Received: from DB3FFO11FD003.protection.gbl (2a01:111:f400:7e04::187) by DB5PR02CA0034.outlook.office365.com (2a01:111:e400:5805::44) with Microsoft SMTP Server (TLS) id 15.1.213.14 via Frontend Transport; Thu, 9 Jul 2015 05:01:00 +0000 Authentication-Results: spf=fail (sender IP is 124.207.145.166) smtp.mailfrom=ezchip.com; ezchip.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of ezchip.com does not designate 124.207.145.166 as permitted sender) receiver=protection.outlook.com; client-ip=124.207.145.166; helo=bjgfarm-1.internal.tilera.com; Received: from bjgfarm-1.internal.tilera.com (124.207.145.166) by DB3FFO11FD003.mail.protection.outlook.com (10.47.216.92) with Microsoft SMTP Server (TLS) id 15.1.213.8 via Frontend Transport; Thu, 9 Jul 2015 05:00:59 +0000 Received: (from zlu@localhost) by bjgfarm-1.internal.tilera.com (8.14.4/8.14.4/Submit) id t6950sMa018576; Thu, 9 Jul 2015 13:00:54 +0800 From: Zhigang Lu To: Date: Thu, 9 Jul 2015 12:58:54 +0800 Message-ID: <1436417938-18496-9-git-send-email-zlu@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: <1436417938-18496-1-git-send-email-zlu@ezchip.com> References: <1436417938-18496-1-git-send-email-zlu@ezchip.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11FD003; 1:BiSXQzpejb02K40k5sjaSoM+sQzSrgqUPZbmHM4bR42eY4At1cWlMLXznSrWqt//fPzJ8m3ncPadkP8TGhUbW0QpX0ANw/8ZaI6zmT7loVzDGJS/o5y+Xjt37yKBuUNqwx5wfcooieI+Mv6f1tO49se0GVmGp7SX1w/7g+J82kQ9TarVY+OXDDwje8f5nIGlpUdgJt8gYC1dCH0VEKVv9T7GDvKxsENILAyY0zZbP4IrLsAWEIcjm+64s6RMr45h7ORxkh36mVuYWUHm34E5JieVXBq5hLI8YRQmDhYYEZUXT8gKISV+Bb4+Gx+jXCw5SNlFZKOB3IMrOMTJkb7BR7VP4eReF64Nz3uAiXnSuo0V+mXPDCCx7DbEbtOgBb9KSmDw1aIK6Je16Cu+HRvzT0QrANHBjZu+m+J0x2TaY7mLuMiQW9zi9BoIYTUy0XtY X-Forefront-Antispam-Report: CIP:124.207.145.166; CTRY:CN; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(339900001)(189002)(199003)(85426001)(36756003)(76176999)(5003940100001)(50986999)(50226001)(189998001)(46102003)(87936001)(229853001)(105606002)(19580405001)(19580395003)(92566002)(2351001)(2950100001)(6806004)(50466002)(86362001)(575784001)(110136002)(106466001)(5001960100002)(107886002)(48376002)(77156002)(47776003)(450100001)(62966003)(33646002)(104016003)(42186005)(4001430100001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR02MB0798; H:bjgfarm-1.internal.tilera.com; FPR:; SPF:Fail; MLV:sfv; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; VI1PR02MB0798; 2:ACipKvhwOglWEbJq9HjzZp1cVrfprLa0fFpyPqU1cDHgYAmetOQPr9FjAV8Z+ISh; 3:uiMYCjQ9jfJfS7XqqvnF9dpD3X1NLo39zAhovSMfCFqTQcaaU+rl1Y3Mha8fg2Pazt8H5EizBXAOZHHCGz4UolNpRRSUF1JiJmbRoG8rXgJoWrn+/1sYl0m5wqrQ5LUJY9q+eXbVs15ot7K1Z5eabABXONuDWa3QY38aq2CJZbFwzDzffROhHz/pde40id5/pQ4XCz2O7mYzKj5jSXdy5SoApiUVAw8pRFKrtOcDExJfo3j3PqZkEutFRdADOkId; 25:bjVXMrdvHe8AuyFpY9wAD2WJProesK5DAvIJ5YiUwqUrqDD/6kzob+McXb7WG/G4Qj7006N05J/LvE+qsZKOSabXyArPh+HP3lAfsilREkNnobeis+HkQN1CICjxMy0xfir4ssiV6n63Boc2HtNUaFYkR+aCiy7cdjbJTucdx0G4vJBvQ2Arw6mVGToozCE3lw9tYMMl2gTe8zCQD2TDYIp/1+QGsuxsCFSGqsq+SwEWSunInVTYam+9YGaS/We+kJ3gPh1oHxhqMuUmffRmmA==; 20:6JHUcv65didevEilCusUHWARvEHsFNOANeXPtRDm9hn7T9R64KXQ7xqV3kY+PBc3WZQ+E+m+9Ol+rM5KAXF5AqeqBniAwpPO0W+A0so+721m0xsNi7Shs1WKDwVmKCFgDz/gIyY6w7betVx9HsyhihR+wFcHnIehmG7UqlGYsH8= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB0798; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:VI1PR02MB0798; BCL:0; PCL:0; RULEID:; SRVR:VI1PR02MB0798; X-Microsoft-Exchange-Diagnostics: 1; VI1PR02MB0798; 4:nDf3lELOtKjcePi7K28ML1Y6BMeARCnNTEs7FZ/yfjuFfzWz51xt9cq3OycHyVPYQFbvtNwunFcMgaquH7MMTNHGxuB3velqiWQ17D9yjAXe30tscWlpVJVwmzzrVXemBL5RXAxpty9U/RYmCjLCa0xZHGoDGRaKphtVq1vjL++Rqxq4cmZTp5y0dNC/ekYETG5EdPjd/Cn5baE5uIVh60589PIAOwHUet/QBiMPzwNcVTilTcvyrpcsZOrb5pdK2r3P7rwxwxvGd1PtcDsNrQtEA9dHlsZiUlVR1h/hMm4= X-Forefront-PRVS: 0632519F33 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR02MB0798; 23:H3DTNoc8Wr/DMvBoDTmomKvg+4oBH9M88j081Ys37?= =?us-ascii?Q?ItPFAMKcSZ+I0eoiLQPX2YQUEdIrhGc70VjwFFw9w3gN7TYHmqRL+kk/jQB5?= =?us-ascii?Q?jVdVYquIWisSkMcFnFUalBigkhlAzrH+qOIIVGKpVanJjGcrU/M8j1VqB2//?= =?us-ascii?Q?HpiE7Nw3sq9VWhAc68v4hyqadHpQCZsFAvedBPysV00P7TFBFUHx3m2gtoAe?= =?us-ascii?Q?qCztxr06QiX1eBvsQN90kvtGVD51NE1R5S4YqPGcc0JFZ5U9WIPyezJiF/aq?= =?us-ascii?Q?8I8LSqVRpSWNxc1FIsoEiUW4jPqdqGnKiyEkSXqu+/3FoRlPfW5vE1RIB6ky?= =?us-ascii?Q?6npJ43rA8fvu7EM5nTtlNL2Fbf5Ns/yA01mDkKl0X0A4J5ibPRLkr+1hV3BT?= =?us-ascii?Q?XbYthJdvoF+Yk1V3YUUevAD5E93noM+U7LKFt9ciB8eOVTU9NjNDd6ZP4NAb?= =?us-ascii?Q?sOstxwsLRVscNhULdbb+dsnHT7S2v88Hujd6huowNCRCpGf1bczl1IWzgSvI?= =?us-ascii?Q?HOXvExnvXGdvYcqqbmlaiOtL7RBLqEkh/YHGD0RFtqzzBL/W5W92q4wvwt20?= =?us-ascii?Q?GuzLO+LFIz0uixr0o5z8UjxEnUyxKYE9LRhzMxS3gt8+hahEudKEsE5099f8?= =?us-ascii?Q?LbNsc9chKyqbwaJyUkTGjkhQr4pkV/6klRV0EWmTmeaGDapSZH/JsUjBEysX?= =?us-ascii?Q?w64Y5vzKkF27dH3EbcPD0AcRV0xJFCrRLMz1Y75TDXPC2IwxA02PiWbKIgcH?= =?us-ascii?Q?JO/gPuzVi3alQfxUbZbk/2zgvwKMWg0vucPTmG/PQEpHhQt39ohRtNQrofV+?= =?us-ascii?Q?CmnQVQfWSf3LwUBLdP1lfUxcqt+pOBCTVB9C2iU4q56gQH4n+ElageQuTd0G?= =?us-ascii?Q?0Li05qjFKESWgsbZGssO67w65ka22An+zMJ3CyvHSIcE7jofcQBO6Q3SRWDI?= =?us-ascii?Q?kgcwilSN5cdrD9fwwmJU7QiOm1uTc7/btzkHTiFLKvxAgvwWc8gvNQ5qEd+r?= =?us-ascii?Q?0RdUUpJINNDnRr8kH9vSmij?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR02MB0798; 5:ke1ysJVTpOOfIJtiidex6Nx5+UNRVkNKv1H2NcgPM1zRpOqh5V97e7d5/a8EM5+cewvyuTsoxOqCHl6QdnAPRwl4Ipppqdby6mNbHA6zov52rvAelg/GcmbVz2TvIHnB2GEU0Bq640ryGWETWUYzxQ==; 24:5JZETbYFCeu7p0vxJsBrJnAXArycBN7yy4TFoQvqqdjDgzZjOJHoCWdFnzY0wLw1UQJ+oI3nlGiqydSV3Of5A5+mwtANVd/MxI3GsVBwhO4=; 20:KW53xC8Tr6fwmjB0B+OICpeMtTGRg07LyvoRaOwlNir4sQFrjYXPr2kLlBxBxPrzPZUmLaJQDldgMSSrs02Jlg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2015 05:00:59.1291 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3; Ip=[124.207.145.166]; Helo=[bjgfarm-1.internal.tilera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR02MB0798 Cc: Cyril Chemparathy Subject: [dpdk-dev] [PATCH v4 08/11] tile: add page sizes for TILE-Gx/Mx platforms X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Cyril Chemparathy This patch adds a few new page sizes that are supported on the TILE-Gx and TILE-Mx platforms. Signed-off-by: Zhigang Lu --- lib/librte_eal/common/eal_common_memzone.c | 8 +++++ lib/librte_eal/common/include/rte_memory.h | 16 +++++---- lib/librte_eal/common/include/rte_memzone.h | 50 +++++++++++++++++++---------- 3 files changed, 51 insertions(+), 23 deletions(-) diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c index 76bae72..dc39a79 100644 --- a/lib/librte_eal/common/eal_common_memzone.c +++ b/lib/librte_eal/common/eal_common_memzone.c @@ -284,12 +284,20 @@ rte_memzone_reserve_thread_safe(const char *name, size_t len, const struct rte_memzone *mz = NULL; uint64_t size_mask = 0; + if (flags & RTE_MEMZONE_256KB) + size_mask |= RTE_PGSIZE_256K; if (flags & RTE_MEMZONE_2MB) size_mask |= RTE_PGSIZE_2M; if (flags & RTE_MEMZONE_16MB) size_mask |= RTE_PGSIZE_16M; + if (flags & RTE_MEMZONE_256MB) + size_mask |= RTE_PGSIZE_256M; + if (flags & RTE_MEMZONE_512MB) + size_mask |= RTE_PGSIZE_512M; if (flags & RTE_MEMZONE_1GB) size_mask |= RTE_PGSIZE_1G; + if (flags & RTE_MEMZONE_4GB) + size_mask |= RTE_PGSIZE_4G; if (flags & RTE_MEMZONE_16GB) size_mask |= RTE_PGSIZE_16G; if (!size_mask) diff --git a/lib/librte_eal/common/include/rte_memory.h b/lib/librte_eal/common/include/rte_memory.h index d948c0b..1bed415 100644 --- a/lib/librte_eal/common/include/rte_memory.h +++ b/lib/librte_eal/common/include/rte_memory.h @@ -53,12 +53,16 @@ extern "C" { #endif enum rte_page_sizes { - RTE_PGSIZE_4K = 1ULL << 12, - RTE_PGSIZE_2M = 1ULL << 21, - RTE_PGSIZE_1G = 1ULL << 30, - RTE_PGSIZE_64K = 1ULL << 16, - RTE_PGSIZE_16M = 1ULL << 24, - RTE_PGSIZE_16G = 1ULL << 34 + RTE_PGSIZE_4K = 1ULL << 12, + RTE_PGSIZE_64K = 1ULL << 16, + RTE_PGSIZE_256K = 1ULL << 18, + RTE_PGSIZE_2M = 1ULL << 21, + RTE_PGSIZE_16M = 1ULL << 24, + RTE_PGSIZE_256M = 1ULL << 28, + RTE_PGSIZE_512M = 1ULL << 29, + RTE_PGSIZE_1G = 1ULL << 30, + RTE_PGSIZE_4G = 1ULL << 32, + RTE_PGSIZE_16G = 1ULL << 34, }; #define SOCKET_ID_ANY -1 /**< Any NUMA socket. */ diff --git a/lib/librte_eal/common/include/rte_memzone.h b/lib/librte_eal/common/include/rte_memzone.h index ee62680..de5ae55 100644 --- a/lib/librte_eal/common/include/rte_memzone.h +++ b/lib/librte_eal/common/include/rte_memzone.h @@ -60,8 +60,12 @@ extern "C" { #define RTE_MEMZONE_2MB 0x00000001 /**< Use 2MB pages. */ #define RTE_MEMZONE_1GB 0x00000002 /**< Use 1GB pages. */ -#define RTE_MEMZONE_16MB 0x00000100 /**< Use 16MB pages. */ -#define RTE_MEMZONE_16GB 0x00000200 /**< Use 16GB pages. */ +#define RTE_MEMZONE_16MB 0x00000100 /**< Use 16MB pages. */ +#define RTE_MEMZONE_16GB 0x00000200 /**< Use 16GB pages. */ +#define RTE_MEMZONE_256KB 0x00010000 /**< Use 256KB pages. */ +#define RTE_MEMZONE_256MB 0x00020000 /**< Use 256MB pages. */ +#define RTE_MEMZONE_512MB 0x00040000 /**< Use 512MB pages. */ +#define RTE_MEMZONE_4GB 0x00080000 /**< Use 4GB pages. */ #define RTE_MEMZONE_SIZE_HINT_ONLY 0x00000004 /**< Use available page size */ /** @@ -110,11 +114,15 @@ struct rte_memzone { * constraint for the reserved zone. * @param flags * The flags parameter is used to request memzones to be - * taken from 1GB or 2MB hugepages. - * - RTE_MEMZONE_2MB - Reserve from 2MB pages - * - RTE_MEMZONE_1GB - Reserve from 1GB pages - * - RTE_MEMZONE_16MB - Reserve from 16MB pages - * - RTE_MEMZONE_16GB - Reserve from 16GB pages + * taken from specifically sized hugepages. + * - RTE_MEMZONE_2MB - Reserved from 2MB pages + * - RTE_MEMZONE_1GB - Reserved from 1GB pages + * - RTE_MEMZONE_16MB - Reserved from 16MB pages + * - RTE_MEMZONE_16GB - Reserved from 16GB pages + * - RTE_MEMZONE_256KB - Reserved from 256KB pages + * - RTE_MEMZONE_256MB - Reserved from 256MB pages + * - RTE_MEMZONE_512MB - Reserved from 512MB pages + * - RTE_MEMZONE_4GB - Reserved from 4GB pages * - RTE_MEMZONE_SIZE_HINT_ONLY - Allow alternative page size to be used if * the requested page size is unavailable. * If this flag is not set, the function @@ -157,11 +165,15 @@ const struct rte_memzone *rte_memzone_reserve(const char *name, * constraint for the reserved zone. * @param flags * The flags parameter is used to request memzones to be - * taken from 1GB or 2MB hugepages. - * - RTE_MEMZONE_2MB - Reserve from 2MB pages - * - RTE_MEMZONE_1GB - Reserve from 1GB pages - * - RTE_MEMZONE_16MB - Reserve from 16MB pages - * - RTE_MEMZONE_16GB - Reserve from 16GB pages + * taken from specifically sized hugepages. + * - RTE_MEMZONE_2MB - Reserved from 2MB pages + * - RTE_MEMZONE_1GB - Reserved from 1GB pages + * - RTE_MEMZONE_16MB - Reserved from 16MB pages + * - RTE_MEMZONE_16GB - Reserved from 16GB pages + * - RTE_MEMZONE_256KB - Reserved from 256KB pages + * - RTE_MEMZONE_256MB - Reserved from 256MB pages + * - RTE_MEMZONE_512MB - Reserved from 512MB pages + * - RTE_MEMZONE_4GB - Reserved from 4GB pages * - RTE_MEMZONE_SIZE_HINT_ONLY - Allow alternative page size to be used if * the requested page size is unavailable. * If this flag is not set, the function @@ -209,11 +221,15 @@ const struct rte_memzone *rte_memzone_reserve_aligned(const char *name, * constraint for the reserved zone. * @param flags * The flags parameter is used to request memzones to be - * taken from 1GB or 2MB hugepages. - * - RTE_MEMZONE_2MB - Reserve from 2MB pages - * - RTE_MEMZONE_1GB - Reserve from 1GB pages - * - RTE_MEMZONE_16MB - Reserve from 16MB pages - * - RTE_MEMZONE_16GB - Reserve from 16GB pages + * taken from specifically sized hugepages. + * - RTE_MEMZONE_2MB - Reserved from 2MB pages + * - RTE_MEMZONE_1GB - Reserved from 1GB pages + * - RTE_MEMZONE_16MB - Reserved from 16MB pages + * - RTE_MEMZONE_16GB - Reserved from 16GB pages + * - RTE_MEMZONE_256KB - Reserved from 256KB pages + * - RTE_MEMZONE_256MB - Reserved from 256MB pages + * - RTE_MEMZONE_512MB - Reserved from 512MB pages + * - RTE_MEMZONE_4GB - Reserved from 4GB pages * - RTE_MEMZONE_SIZE_HINT_ONLY - Allow alternative page size to be used if * the requested page size is unavailable. * If this flag is not set, the function