Message ID | 1439901605-31164-4-git-send-email-jerin.jacob@caviumnetworks.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 58B6A8E95; Tue, 18 Aug 2015 14:41:41 +0200 (CEST) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0070.outbound.protection.outlook.com [157.56.111.70]) by dpdk.org (Postfix) with ESMTP id 4965E8E94 for <dev@dpdk.org>; Tue, 18 Aug 2015 14:41:39 +0200 (CEST) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@caviumnetworks.com; Received: from localhost.localdomain.localdomain (122.172.75.253) by CO1PR07MB955.namprd07.prod.outlook.com (10.141.74.17) with Microsoft SMTP Server (TLS) id 15.1.231.21; Tue, 18 Aug 2015 12:41:37 +0000 From: Jerin Jacob <jerin.jacob@caviumnetworks.com> To: <dev@dpdk.org> Date: Tue, 18 Aug 2015 18:10:05 +0530 Message-ID: <1439901605-31164-4-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1439901605-31164-3-git-send-email-jerin.jacob@caviumnetworks.com> References: <1439901605-31164-1-git-send-email-jerin.jacob@caviumnetworks.com> <1439901605-31164-2-git-send-email-jerin.jacob@caviumnetworks.com> <1439901605-31164-3-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [122.172.75.253] X-ClientProxiedBy: HKXPR03CA0065.apcprd03.prod.outlook.com (25.163.104.23) To CO1PR07MB955.namprd07.prod.outlook.com (10.141.74.17) X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB955; 2:CKzfYrZjkZ4gqcKXTt+8mtde+qxxcNpNAbevxS22G5wWwNbNFGAnnlkj1KjtXs8K+q9SUag2iGfnFcGX4JsvQjd1/z958bUivY10D2Gfa28vk/UQpOhaS5iw+xYhAwP0zSBXky/9wm4V4jaMDEO2FlwuZpuSBzUHoaeljKjk3e0=; 3:5Koy+vcDjY8lQyNDhWQadgZxMcwKaWUn7B3SQ57VdE6bIGuu8zF5lgh0qx5NZzKMr+7NzCfcUcKwfwuaRu+frrK1JldMwwZoj8BlEYaa+z2yrqKmtgWvzGFXxS61DoBgQzFtseReVrov57VaTy3Yaw==; 25:fggwMZezR+g8O0ORJX52mlkX0ElXAMpglT7rsbqlr7qLuzj4MWhUwW8AiOz1eucmlqqNnBWPGyen+MXgTUeOTY077CO8TYluxkqRLz36XXZAk9l0JI5/qS/Xp/c0gACzEBXGFCNA/YthtiAYeqU+I5JdMDglFOXfUXx1KXdPk3Y0QprJVeP14EeDX6SU/neoMdPwv+RC/ab3Q6PPRXiiFn1G85ux+mYFnyeu7VY3uXqlnoC0HQ9XMINSX5voAYYrvzEbwaxJD6LXzc/HSc6M6g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO1PR07MB955; X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB955; 20:1vGk6FtJTsuJ/EYcRvd6f4AlM4uJG/nCHefM4th52OSvbJu6l1psH1kvMZNrVhOqmHvTvx/DOnRTZdIrPSPVb80dUnHKR8WxgnYNW9OsZfY/ytnlbpybBXFk74ZhA/1bD4Q+e4f8UlYt6HyIZrfuRxkt1fPv1pqEmyGEYriJ1w9DcDef0LwnEFGWqL2WCHfOkmKGbv54zHi73bdI8OLH+R9Iy2e3GB6IHx67bIvopl6ORASWgtbIxZBVczzHxvh9DoqaVXPb1Jzrruk16rPdHnytSalphRwbkJOZn3XaDIcPUddGzAkT63wbTIk6q+FN/vM0qn9fN9xVOxA1E9Lhn4x2oZqa9D9Pit1Tul/EwaTadvqhM6v37IJ52BKKZyh2V9Idu0E/dRk4zb8rCZqLU0pbEBwn14+NyYuu1dnwLm6vERnUDmFr/C66E7ebqZ1XuAp8vV7RlixZ9JlY6i5WUx3mmQiCz2dEGhSSbUhseVw3QP7zyzlcDW9iNapu3ecDcAeIEqAGwhqLP3BUMm1r8OppE7qO+225fHvz8jdJ8kgfpDYfqJRQrmCLKWZ7NkAGvHN0lfX87gt3RlpNlV3BonfmWDcjeEIxE+2B706KRQ8=; 4:3ErIkeNr42ehA6Xt2S4FdqwpBGf/7U9bZLOrHexUBHAFkxL/3Uy1ZFcC5FZ1Gc0Z8LsoSBnALVILTctoTGKcuHoG9SLUwVy1ol1ByhUuDY9VfzLeTY46myjm36jQCKNETb6lP72KODy41PHRegue3Qo9RpHi31La1tYNBbmxc9yTM/kTquzYyiZVktDut5/soopRIPqGxNVXFmT/ovlqre32BVldiU5ffwuZVuc3XpjSCHvWcxMJdQj5mqx0ZUGGnjJE8X4ct/CCATjW5ugAzwQF+wq4eaSzWMU57eslfZd+KB9hYwmhhO/vYdJHgxjSA1I0NG6CMZjInhhTC3n37A== X-Microsoft-Antispam-PRVS: <CO1PR07MB955CC9BF8755162EFE551188C780@CO1PR07MB955.namprd07.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(8121501046)(3002001); SRVR:CO1PR07MB955; BCL:0; PCL:0; RULEID:; SRVR:CO1PR07MB955; X-Forefront-PRVS: 067270ECAF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6069001)(199003)(189002)(97736004)(107886002)(77096005)(47776003)(189998001)(66066001)(19580405001)(5001960100002)(86362001)(5001830100001)(40100003)(81156007)(50986999)(122386002)(64706001)(110136002)(68736005)(2351001)(5001860100001)(87976001)(2950100001)(106356001)(33646002)(46102003)(101416001)(229853001)(4001540100001)(19580395003)(42186005)(76176999)(48376002)(92566002)(50466002)(50226001)(105586002)(450100001)(62966003)(36756003)(77156002)(5003940100001)(4001430100001); DIR:OUT; SFP:1101; SCL:1; SRVR:CO1PR07MB955; H:localhost.localdomain.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO1PR07MB955; 23:fMX1Il5eD7vaAieSvcfgLK+Duu8gJdm54xPqp3U8e3?= =?us-ascii?Q?2MCcR8cYywYWBrEgpuUP2Z5CO4XwfFDSzoRlh00gJFDtA75BITXQ25H5hK+z?= =?us-ascii?Q?UTtI7tZAD9C631oC7XByB/qyIB2awlEtLO1l8Tx57RbWk/Q0Ft25nOke1Q4X?= =?us-ascii?Q?ttwt7ZDXJoIhdp97gx+M27CHUCJ+0X5b+PmtYZTCtBS9jJsjQC1TwbkFmArR?= =?us-ascii?Q?/T2zlqGU7uaT+rhEzAfbG65gLXs83UhQO9AMKItcq1jUck7fE35VaYEqtjN8?= =?us-ascii?Q?xOWvlcIR/YAFD/83VkaRK0wAR0/BP004Y+Gf61glBSbnr4FqJo6yPb46K3t4?= =?us-ascii?Q?XLy4WpGbE2JElzu028vr2NB5BUEelb+8jJQKc5XKiLzY3S39AWXo8mwGqRjj?= =?us-ascii?Q?VJDLxbAYkvIdTGrxlj74B6Dn+5jrRdtpRJ5REXVwZpa50WPkbgh033RLkfKC?= =?us-ascii?Q?OTaPl0IaYjSr+9dpzKC1bBUEivXB1dkOWEuqMvIevSb4WJnitNSwTEmqiEXc?= =?us-ascii?Q?weZiMt+01OQjpDx4jxeoZZqUAtw8MX8tKFdBEhf6hxvk60o3EYGAAnxBO1WM?= =?us-ascii?Q?gWP92hC7QXPrzOmCIQBVBtEIvV2iPgwiAYFopLimexapAotFnWJin/vp5cxS?= =?us-ascii?Q?H3eng8vt81ufGqee4x1BVwchYh5EzZOi+OktyeEiKGtDeZtCIAmw8cTVVrGx?= =?us-ascii?Q?LUIWQaf3R/Ix4FRdonWH5oOVvGUJp69o2Ooqd6u/RJl+Fki7qbXMxS5v3hTm?= =?us-ascii?Q?zuTZV+tsNQVTJ8GcFqiZiDkAGY9GZ5PJihjC9HES6Coz+my0E4kVWJunuJ0l?= =?us-ascii?Q?7BP3UsBsyt7KlfJDcBKqUJm2X/9u1pu1HuQvibz9fJE+mPAvgnnvMBrNKGvW?= =?us-ascii?Q?eIrBBx0FANbAmacSdBKBc8QuKwECgjEfQYsKdNoBk32LQpRf7xX+AEOc3dRm?= =?us-ascii?Q?31fSgwP9yMHmcKo91dioKt+7RWGbsB5aMcUxX8Lpc99k85QUarHsC2WQdCV3?= =?us-ascii?Q?yQWoKQQKBCr+fqZ0kCpiFPSADWsWtCkvWSQQZPPcw42Ym6WDFefV9fTA8Dgh?= =?us-ascii?Q?vkLbMMQBMTv/WX/w+yEY8yz/htJBPu3XuteLYomXdO+2iM0fpROAfkuLG5fL?= =?us-ascii?Q?9H1mTYIjDfKfL4IiW4vbLi5GUhhjw6Puq3/fX9oeVr74YsOzO1jMCf4WqNT/?= =?us-ascii?Q?4gmVobtBloyC7wNWLZ440gi7UIzX2cSZ9I?= X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB955; 5:1yw1ZD+QpANBPOP6NrS2cKmvrHoLRdkj7we7lqcsWWCFvc3yEFl8Mmaa7CxcOTm6pKpBAR3WvbHckcyxngLSFZstM0pj4GQ7vlBILL/JlmIc29WakyZBG5Pmx0CpXtr2ChlLpPKUSn8CsKF+5ILFuQ==; 24:H1+7aFWtEdT4Ba3frFMtwLkJKTjRony72dPcbc3lKsc8PINya3Lmuk4mUDGtydeleyJ9XisSAX3BetMPJBv19oeayyWe/oy/oAJv4w13JUA=; 20:lst/C2Bg+KVf1wSsecr4E3yJhd5dFI16gRR2DTQBtUFm0e47IFlY2C5BWcQLCZ/hozI19vqdWXYH0t+wN7EFcA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2015 12:41:37.2134 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR07MB955 Subject: [dpdk-dev] [PATCH 3/3] app/test: enable test_red to build on non x86 platform X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Commit Message
Jerin Jacob
Aug. 18, 2015, 12:40 p.m. UTC
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
app/test/test_red.c | 2 ++
1 file changed, 2 insertions(+)
Comments
2015-08-18 18:10, Jerin Jacob: > --- a/app/test/test_red.c > +++ b/app/test/test_red.c > +#if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686) || defined(RTE_ARCH_X86_X32) > #ifdef __PIC__ > asm volatile ( > "mov %%ebx, %%edi\n" > @@ -155,6 +156,7 @@ static inline void rdtsc_prof_start(struct rdtsc_prof *p) > #else > asm( "cpuid" : : : "%eax", "%ebx", "%ecx", "%edx" ); > #endif > +#endif > p->clk_start = rte_rdtsc(); The right fix would be to move that arch-specific code into an EAL abstraction.
On Tue, Aug 25, 2015 at 02:03:13PM +0200, Thomas Monjalon wrote: > 2015-08-18 18:10, Jerin Jacob: > > --- a/app/test/test_red.c > > +++ b/app/test/test_red.c > > +#if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686) || defined(RTE_ARCH_X86_X32) > > #ifdef __PIC__ > > asm volatile ( > > "mov %%ebx, %%edi\n" > > @@ -155,6 +156,7 @@ static inline void rdtsc_prof_start(struct rdtsc_prof *p) > > #else > > asm( "cpuid" : : : "%eax", "%ebx", "%ecx", "%edx" ); > > #endif > > +#endif > > p->clk_start = rte_rdtsc(); > > The right fix would be to move that arch-specific code into an EAL abstraction. I agree. I thought the same. But I am not able to understand why 'cpuid' instruction used here without any input/output parameters. What is the role of 'cpuid' instruction in this specific function and what to abstract in eal ? >
2015-08-27 09:38, Jerin Jacob: > On Tue, Aug 25, 2015 at 02:03:13PM +0200, Thomas Monjalon wrote: > > 2015-08-18 18:10, Jerin Jacob: > > > --- a/app/test/test_red.c > > > +++ b/app/test/test_red.c > > > +#if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686) || defined(RTE_ARCH_X86_X32) > > > #ifdef __PIC__ > > > asm volatile ( > > > "mov %%ebx, %%edi\n" > > > @@ -155,6 +156,7 @@ static inline void rdtsc_prof_start(struct rdtsc_prof *p) > > > #else > > > asm( "cpuid" : : : "%eax", "%ebx", "%ecx", "%edx" ); > > > #endif > > > +#endif > > > p->clk_start = rte_rdtsc(); > > > > The right fix would be to move that arch-specific code into an EAL abstraction. > > I agree. I thought the same. But I am not able to understand why 'cpuid' > instruction used here without any input/output parameters. What is the > role of 'cpuid' instruction in this specific function and what to > abstract in eal ? It is explained here: http://dpdk.org/ml/archives/dev/2014-January/001182.html I think it can be replaced by rte_rdtsc_precise() which was implemented after the above discussion. It uses rte_mb instead of cpuid. As explained in the following thread, memory fence can be used instead of cpuid: http://stackoverflow.com/a/12634857 As showed in the following threads, rdtscp can also be used: http://stackoverflow.com/a/27697754 http://dpdk.org/ml/archives/dev/2015-April/016770.html It reminds me that we should deprecate rte_rdtsc() and rte_get_tsc_cycles() in favor of a more generic name, e.g. rte_get_clock_cycles().
diff --git a/app/test/test_red.c b/app/test/test_red.c index 262df72..813c508 100644 --- a/app/test/test_red.c +++ b/app/test/test_red.c @@ -146,6 +146,7 @@ static void rdtsc_prof_init(struct rdtsc_prof *p, const char *name) static inline void rdtsc_prof_start(struct rdtsc_prof *p) { +#if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686) || defined(RTE_ARCH_X86_X32) #ifdef __PIC__ asm volatile ( "mov %%ebx, %%edi\n" @@ -155,6 +156,7 @@ static inline void rdtsc_prof_start(struct rdtsc_prof *p) #else asm( "cpuid" : : : "%eax", "%ebx", "%ecx", "%edx" ); #endif +#endif p->clk_start = rte_rdtsc(); }