From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D7E96A0093; Mon, 15 Jun 2020 13:11:34 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AC93E4C7A; Mon, 15 Jun 2020 13:11:34 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id A24212B94 for ; Mon, 15 Jun 2020 13:11:33 +0200 (CEST) IronPort-SDR: 569Q3j5C8lhewCIzh0d4ndwMKfuHWmqV03tpjDk770gLByUmFoYB+j1GkjjTbfBQYElg662o11 i7VixFi1Pwaw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jun 2020 04:11:32 -0700 IronPort-SDR: 0DOLy3EiGJsKfCuejBBJZS8avUbqAhG2+yueh8pvksZMINfixRSsfRqVkhy/YhffWy3C9GeZiF YRrIjxe7dLPQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,514,1583222400"; d="scan'208";a="308090033" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga008.jf.intel.com with ESMTP; 15 Jun 2020 04:11:32 -0700 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 15 Jun 2020 04:11:32 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 15 Jun 2020 04:11:31 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 15 Jun 2020 04:11:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fHFMep+A0xfujnXlCi5h2hfCY9lvVB6+skXIH7gBUqUturlugWsjxE3IV/wZghYhogS14zJxUP8WuNh+A+vFpdw1NHKS5jIPgNIhx8zx45aGQEoQCalIBm6E+iPJdvFXEHnusXGBrf8mzT8H/kVSlQANc1vVUaRpF97cEhWgatDoPDh8G6XfURK8Yml821JYA6nDLzblkswgRIkmN8Bznf8H8K333il3w4xlESOJwtumXV2QvnNx9ht6I2AwfCLspW8rihghew+mekfLBE0VZptPV618AT46bKDi20NpjS7+V5vAi7tDDL3JLpsry7Qu32UBNrCLa3IZrQbjaHsi/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SXA7yWZu9YnElPL+RwDKFrE16UE8EVwpBXSFKVah3i8=; b=JWdjSosBWWbpLO4fyw77ynfSVIxzPotfj/VrU5pqeTcn5qLd/qMZFzdB+RMLZrjqQYSBAs1dUXRbF1+yans/fQSrzQEteVseilswVgHI35xWyCv4ij8KVQT68JLYQLpypYXPlD22HZiuCpc+zB+rUxEQv9qH0aOZaAyPnqIjcFOTKp9vvDPVm+5Lo6LCwKNkR0E4thy+BcRgxguHK5V89ve9OfNUr14L/1pcTRZwEEYUmjfgyPCQ/4gEGzpI4eHw/j+GU0DeC7l1VitlHnpodE+P+e2RbRcAGRaf30MoUX1uLqt18S4idlwN/KyhK8xV1jbhzZygpjpKxCP1XNbE2w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SXA7yWZu9YnElPL+RwDKFrE16UE8EVwpBXSFKVah3i8=; b=gdzSxPZ7AbKzTLJOjIlCfRdO3DPyQsr/bqcJIus1SXzYUp0eIbdr5FiZ4rDJN81QoPF4hvRoPKGyKO063Q+3iN22zbXM1NRZQD7qiDrF8rPMja+rUM6lX4v0HI3uo0TCjvDd+qT2Nq71IgI7YXXCwk3cMxpaBaiPuaehKoZ4/7Q= Received: from BYAPR11MB3301.namprd11.prod.outlook.com (2603:10b6:a03:7f::26) by BYAPR11MB3253.namprd11.prod.outlook.com (2603:10b6:a03:77::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3088.24; Mon, 15 Jun 2020 11:11:28 +0000 Received: from BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f160:29ab:b8f9:4189]) by BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f160:29ab:b8f9:4189%6]) with mapi id 15.20.3088.028; Mon, 15 Jun 2020 11:11:28 +0000 From: "Ananyev, Konstantin" To: "Nicolau, Radu" , "dev@dpdk.org" CC: "Xing, Beilei" , "Guo, Jia" , "Richardson, Bruce" Thread-Topic: [PATCH v1 1/2] eal/x86: add WC store function Thread-Index: AQHWP9ixdH7hqGTweUi6FNtTjZ9xu6jZitYQ Date: Mon, 15 Jun 2020 11:11:28 +0000 Message-ID: References: <1591870283-7776-1-git-send-email-radu.nicolau@intel.com> In-Reply-To: <1591870283-7776-1-git-send-email-radu.nicolau@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.151.167] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6396b996-f96e-46c1-305f-08d8111cd9cb x-ms-traffictypediagnostic: BYAPR11MB3253: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2331; x-forefront-prvs: 04359FAD81 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sid7nPphKv28HOhX5kGJuq6ct/PUkpLUZoHCZ4q51U9MBiRYNEHgNW8hwahOZ+sxC94HE+L2qe/qEiKE4NvQNULUKMEmwPKDwGp7WaOxUvCPslXlFyem3UyeH4IORStaojuxTje0YA03pU0WGysrHzXDscWBSmDoy2pC5gCUlnJjyoZqHScwonxeNATktKVkgQLXoaDhUDKmydLnhRubLgekCFBaocTupz4X4jpUg4Nu2TwRyq8v7ziPjr0ZM8ysdsBUgNjSqfP5n59UT4me673GxvK2R1xwOcbk6qNOIcQ8vnVM22Q+Z0/S6j+fIHmet6v/o03M8SpPakNr1UxJpg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB3301.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(396003)(39860400002)(136003)(346002)(376002)(366004)(33656002)(54906003)(7696005)(110136005)(71200400001)(52536014)(5660300002)(316002)(64756008)(66946007)(76116006)(6506007)(8676002)(66476007)(66556008)(66446008)(107886003)(4326008)(8936002)(9686003)(26005)(2906002)(55016002)(478600001)(186003)(86362001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: kWuRg3c3TKn/7mu859tMGG7e9FYf9z1GbyNEiDgYR4nrTCqU+Mjr/21Cuf0jbmSD4B/tB/AORx5/76prN57QGFkQhkeyM9KcW1uZbM39tN/fqCzkMLtv3vgiLgtzpm142i9xJRoW1yj0S1mldDMpBP8SCK/DPXCJ3rskL3cXQTX/9qoQU6kXfcbGociBFcRMJli5BEsv/vuFlpDAxeNTC9QQ7yefG+owzrRKT4d1iPycSAg/CNtxNLcJjJQhXNwtmK4IZuG984SLWg3UGXwoobKxY3QhkGE9df33KFW4O5fr4dqVbFfY2FNuxMcBrUjIMjOrGC7VYNpdrEM8B3UlJnxUs0JBsO8stNodP1/VrhNG2pfBPRYu+5ZYz7tRYYfrwyUJGPik6UHa3BZkmsroBx776A506HyQ7/D4X2ELrRUCaX9JIGNcptlpwbkNvwAv6jOfQAuRaKIPKIQ8vG0VVWYRtlRgjZ01FUG7nVF1bTnrtftWknvQbRLtC+irwJiy Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 6396b996-f96e-46c1-305f-08d8111cd9cb X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jun 2020 11:11:28.1894 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wLScZ0I50YoC5lOnaSwXz0gfdAXKbtXF1sglrSJsjm6NKBNrAfGv17NhcUoE5KEKaIuU/hI2m8t6koQUhLb+XOmJnBlvCMTxoj/KNcpHY8Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3253 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1 1/2] eal/x86: add WC store function X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Radu, >=20 > Add rte_write32_wc function that implements a WC store > using movdiri instruction. Probably worth to add 1-2 lines of text explaining what are the advantages (perf improvement or whatever).=20 >=20 > Signed-off-by: Radu Nicolau > --- > lib/librte_eal/x86/include/rte_io.h | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) >=20 > diff --git a/lib/librte_eal/x86/include/rte_io.h b/lib/librte_eal/x86/inc= lude/rte_io.h > index 2db71b1..3d74bec 100644 > --- a/lib/librte_eal/x86/include/rte_io.h > +++ b/lib/librte_eal/x86/include/rte_io.h > @@ -11,6 +11,26 @@ extern "C" { >=20 > #include "generic/rte_io.h" >=20 > +/** > + * Write a 32-bit value to I/O device memory address *addr*. > + * Uses MOVDIRI instruction to perform a direct-store operation using WC > + * memory write protocol. > + * > + * @param value > + * Value to write > + * @param addr > + * I/O memory address to write the value to > + */ > +static __rte_always_inline void > +rte_write32_wc(uint32_t value, volatile void *addr) > +{ > + asm volatile("sfence\n\t" Why not rte_wmb()? > + /* MOVDIRI */ > + ".byte 0x40, 0x0f, 0x38, 0xf9, 0x02" > + : > + : "a" (value), "d" (addr)); > +} > + > #ifdef __cplusplus > } > #endif > -- > 2.7.4