From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0085.outbound.protection.outlook.com [104.47.38.85]) by dpdk.org (Postfix) with ESMTP id 2E8553772 for ; Wed, 29 Aug 2018 11:13:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tkbMLJJLx9rDEnTPO6NEnBozq14zO9HAQYsrgj8aOm8=; b=XKKFpCicRqZoXBFDnB4KD06D8SkJO63sAiLYWkRjA6x/o5ouCK23VOJDCDmGNOaHMeqUujmZNQI93Gdt2rKDUs2O81flm3E/god+dmnj7Z/lhyECdCEtNtXDYBqQY0a3HnANetRyP0XRekA8nVbkzQKQQ94cNoXwtWEhWpHxnk0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; Received: from jerin (223.226.45.236) by SN6PR07MB5005.namprd07.prod.outlook.com (2603:10b6:805:ac::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1080.15; Wed, 29 Aug 2018 08:57:51 +0000 Date: Wed, 29 Aug 2018 14:27:32 +0530 From: Jerin Jacob To: Ola Liljedahl Cc: "Kokkilagadda, Kiran" , Honnappa Nagarahalli , Gavin Hu , Ferruh Yigit , "Jacob, Jerin" , "dev@dpdk.org" , nd , Steve Capper Message-ID: <20180829085730.GA2563@jerin> References: <1534413317-644-1-git-send-email-kkokkilagadda@caviumnetworks.com> <649064d2-430c-d761-44ce-453e1a14031a@intel.com> <7C80C637-DF76-423E-92AA-868EA06EF2C3@arm.com> <20180829082814.GA15610@jerin> <9CD1E941-1C51-4942-B0C8-30F6177124A5@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <9CD1E941-1C51-4942-B0C8-30F6177124A5@arm.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Originating-IP: [223.226.45.236] X-ClientProxiedBy: BM1PR0101CA0007.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:18::17) To SN6PR07MB5005.namprd07.prod.outlook.com (2603:10b6:805:ac::31) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f819a076-899d-4ab9-3f78-08d60d8d82fa X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:SN6PR07MB5005; X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB5005; 3:CEUInyC2IsC8XBCpXNqrcK7l/l6BK2SQqjPBR7YHCuiyBwPub9ZvYus3bMXQZEqGn2Q33NJWvGHPDMpkB9I/Y0E2WvpUUiohoQhraNmKTxT4Spi5KxGagldVPsl+epHwBQYOm1CGk9KtivU/+/t8C6bdWWwZDO8cX0F9SXHZOoo1zL1glv5YVkQNntxz8h4O6VpFtYHg1Ss9o7inqfjDiaOoo88oF9GGukWW31Cv8jBXh4+0O1kNoED8LtVZ/yef; 25:Fw/2ZtTp7S+qJ5RN9G1Fm1nVKjtrmYAq3akv61l+NxdwT/SjhamUJJOdX/17kSVTB5WqagmUdRiRNje7uKz2VWeX16ajN44HjnUfdROjE87QTmURapIjghokCNPgsA7xRZYV5KvHioYJxUk9Cwl737MaDFVgeVSS7nxlnx3dJ9toc1AHsD6+1jqdxJ/cyzlOf8VNKzlUtPjPe545XxtougyX8N5NAw6LrkOVUDf54kAlV+JZLcn+wM+l/MhvQL9Dq7c8NIg74YicAFOQLowqC1PJFfQKiVZ+0K0q6Cx07MFEjSOl+x1Z38/fY1bZOKPeqaMXprigBZVZ1TFkn5iseg==; 31:HnUDzPiG0cSeYDk78eypHcPIfDbJGlMmot3WcKDRByg1OBYR47THctrw+2lpfBih2dKMO3XJ8jQqKjql+h03lMCjRgwt7ySn789Zd+6ctrCVjhYjT5pIoZaxFftj+xM/wET9yf67W7EzQctmRMfs8GYM1yLbUeerSrfVt9JjEWTc77P6/vDMWhRTEIiDiHgg+yjNIB1B4Rls7wzsM6IjSCHOfgKb3lXdAH3o8OypHfo= X-MS-TrafficTypeDiagnostic: SN6PR07MB5005: X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB5005; 20:YqzM6fezYA3JP6rxaOeO8lgmvIsIcdNr1IzBadbqISbvFWnGUaR4AWU3toPOn7QHsejo9YvdNgy0rVJofQI8fFQq/RKwD59jcjKAEgGtw8sDEmB3cWGxmxBlwd+B19c0u1HMv5ruM8RkeIyPqUV/ZAhk9o/bgkfj+b4Ud5zugelUjSahE2qjmiyBUO8wmdbGMdDpueT3O7m72emJp2/DeqF77aQ+pItH/ehv0gCUr5pgAJ2piM2YEt1jm+u312vmq6dOvIfwbxsdxeOqhKD06FvOJ10IdT85cdhOUQFSJt00WgKI1HFxHFtGcpnHwEp8LFQkxc2ZwystAuz9Uz2zVeXHxTZy2bxwf5mPoMIIEs2IjWE1Z5z2KVX6yppnCW16dq4guG/5amtRLcYwDbarYVVoswyIDNHPwXjU53psNa17COHsU9PR2HsYBgVpcK3ijZqAaJB3BK0UUP1KtQOe0nYcyKx6jwR4kqzoxB6eUkuyEVDcZ05G2aD98klL9E8EDuq/bIgmZ7ZaZxPhG5nO4iYuqwc6OzlGrBJxEdR/Iuj0jf+zueFJ11COyi9D9Lw44y/yHHEEeGgDKDQ7Xj0tldjvzQPAVYIRtAqB433hpO4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(228905959029699); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231311)(944501410)(52105095)(93006095)(10201501046)(3002001)(149027)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123560045)(201708071742011)(7699016); SRVR:SN6PR07MB5005; BCL:0; PCL:0; RULEID:; SRVR:SN6PR07MB5005; X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB5005; 4:5eMCA8fuR+nZOQc3fe2P/OOzM5bNAqfB+XgH8XkSY5erukxCT08SJx1S0BqNRJ0LzMVJYooK4X59et3HPSffK0zI2Tu3SfqeywdQxG0newqttqLZdsfvmGVXvVSDXbyqvJJNgh/gKVaphgcvtUIFGNvmLeJ1hXpystmpVp2rLwJeZ6DoOIMGbRq8RCqJFuW+JFia+eov5qGws3YhkbOLHllBWvmMrRLh+pBxkPvnnLLD2JDs4DDKmKeOb2tQKHWrYhyI3Mb2jjcLPkNEaJqXoIPwGiDv6dz59Tp817SVXP/GrWsS/A/SDSGJbFRxNUafkF3ZucYh2H/ljIoxQilaMZwme7TtVJQo3Nsn2GRmFww= X-Forefront-PRVS: 077929D941 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39860400002)(396003)(136003)(366004)(13464003)(199004)(189003)(40434004)(33656002)(45080400002)(45954006)(2486003)(50466002)(11346002)(486006)(6496006)(956004)(476003)(52146003)(23676004)(55016002)(72206003)(54906003)(966005)(52116002)(5660300001)(53936002)(26005)(81166006)(9686003)(6916009)(8676002)(81156014)(478600001)(6306002)(6666003)(16526019)(97736004)(58126008)(47776003)(305945005)(93886005)(3846002)(316002)(53546011)(5024004)(14444005)(8936002)(42882007)(446003)(7736002)(386003)(186003)(2906002)(229853002)(25786009)(105586002)(106356001)(6116002)(44832011)(33896004)(4326008)(1076002)(68736007)(33716001)(66066001)(19627235002)(6246003)(76176011)(2870700001)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR07MB5005; H:jerin; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjZQUjA3TUI1MDA1OzIzOko3RG83Y1JuQXZ3YUJSa3hjbTZJcmlyYkh2?= =?utf-8?B?S281SnZzUmN0OWtJdHVDVFVMWXdhVlB6WDZVUFN3U1ByMU40RlhDVTJZK0F1?= =?utf-8?B?dE50RXc2aGhPUVcvM1hFRWV3MHE1QzdzTmJyUm1jaEl3N2h2QndTZ3p5bmRw?= =?utf-8?B?QkZMWUtQRVR2K3JLMk8reUFTbFFieGs1MmFqazRXV3QwNW10d3BwaTBIYS9K?= =?utf-8?B?bkhLODlTNTBXOW13NGxRRGEybnRhRXREdkNGRUJ0VUhKYW1NV2RsVTBDQXFi?= =?utf-8?B?QWVzV09udW9aWjhRZGtFM2t6QXRndWhyVjVrRms5VDBIUGhyK2FwNDZLcnNy?= =?utf-8?B?Y0FpOU1SWnpFTmd0M21QNFMyckZkTGJ4S2FHTG1lR0RjRVpOMGd4bUJoMmNP?= =?utf-8?B?SlZhQTBFZThYdmJMU2JuN3MvSWxreWs1cDY5S3k5UjRJL1VGcUFVWDJSK04r?= =?utf-8?B?MmtENWJ4UTQxYkhBak5WS2IxSkJwZVRCNmpBanZjeXNHTGNxUlZaVzNKUkIy?= =?utf-8?B?TVNTL092RUx0d2ZGbWhVdnBHK0hpbFd0QVJ4WnlmUE1hWDR2Q1dsM3JrYWxP?= =?utf-8?B?T1NOSGRWREZqQ2V0YXNNMzlkcmlDa3M0U0YwWGZHZ1d1NS9oRnBwV2RFTVZ5?= =?utf-8?B?TytQMmFCZTIvKzRXcjhzU1ZNZ2VjbW1PODVXTm1zV1dibU55Um5kWG55ZFJj?= =?utf-8?B?UmY3d3NEY3J1bUhMQ2JmeFErQ05UaXVNNzB2RnEyUVg3dkVwMk1LUW1MMFl5?= =?utf-8?B?OUg5cVpzZ1lkTktvcHFWaGhsT1J2dUh2aFlkYXlIS0ozME5VMkxkV3NFVDBZ?= =?utf-8?B?a3VsWVRZaW5JYnhvMlllczh3azBETUdzRDloM1ZORUs4alBIM1RIRFRwaGgx?= =?utf-8?B?MEFvcGRmWUpuakllWHEzUDRVZGJ6aEo1VDA4aTF4WGZqamF2M3h3aXJNdWk2?= =?utf-8?B?UXc2UWR2V0xSc0szTnF3WTVGVFB6YlZQY0k0U29WUXBCRDVxZCt1OG1ZdTZU?= =?utf-8?B?S3dRbGhwMEk0R21tdXYrSzcvbFJOeTVNVEdJUi9RN2w4dktkcFpseGluNk0v?= =?utf-8?B?S1VJSGZVZjM3S3MrdDQ3WXF2dmlHVVZpTlRKRzYyOG8rR0dzVUVWbDhWcEZE?= =?utf-8?B?SFJIc1VDa1UvSFFtM1NMZzcxaEh3a0FRT2JyWWNiUitoVldzREdaWFlXZWhZ?= =?utf-8?B?WG9BeWpFbGNYUEFCbmFENW1XOEIzMkdrVHFncFphcVZXUWd4U2xJN1lNMFJM?= =?utf-8?B?VS9QM2o0bnp0dExkWkF6THc0bGxaenowK0tsS2lGd2Y0Y1RvNTFVaUUySE0w?= =?utf-8?B?cFczaXJWQVNWdysyZHhVeEtwaW9ZaVlwSUtPcVRnUmtSM1ZZT01pSUR5RXk2?= =?utf-8?B?ZHFWSjI0Q0VRcEF3cXdUeUVVY0dCbkNmNm9kOGZFSE1OTWZxZUVyS2FRZlR2?= =?utf-8?B?QmptVDlrUk5nMzVsV0xJVDc5eEJET3BoaTBtV2NMY2h0aUthSlZmZ1hHWHRq?= =?utf-8?B?NW1wdUh3dTl0cVVMM3JZK3JyaEpQWFlUMENNRXphdXZjLzFYQVB2a1JQQXN2?= =?utf-8?B?SWNBL3oyek52OW52RzJnTVVvamQ5dEY3Qm5ta2hvYWpKb0JHNmJKTWVmcHJB?= =?utf-8?B?M0N1YlJxeXppcEQvTmFWZ0lDWER2bTE3VjZ1aHRNVEVXUy8xeDlGZVo2Yzl2?= =?utf-8?B?RWhKY0g2ZnFDOWZQTG1kb1IzNjhTYVVHb2VnUG0rN1JLaUlmY0V3clBCYjlC?= =?utf-8?B?RnJYcEswc0UrTTRJcHZNUm5FOHhXMDlxdnQ1VUF1eXV5RkpYSDBnY2dwWTNG?= =?utf-8?B?WUhsYVFtMmorVWZQdkhMaU13NUxiV2RZNWYrYUFKdmJOTGZFeWlkcUpIVysy?= =?utf-8?B?U21JWFh3MWZFVWgrY3UvbXB6d3E2cHpHRms1bnpRZ2hBZ2NGTVNqeGxBd3Fp?= =?utf-8?B?R0F0ajMvc2cwODVTK1k2VkNlVk9FbWxSdFBURTgxYkVLTSs5dTNCWVprSlhD?= =?utf-8?B?SU1MWjZ6RWhOTStXRHJWWEdjWFQ3T0htSUxnOUcrMGEvNmxtYlB4RVN6ZnhT?= =?utf-8?B?T3Y4eDVRaHJlUENIT3g1L2l5Y2xFZWY4Ti9HZnd6TUpDRWFTSHJlaXRyN0VP?= =?utf-8?Q?KVqp3tHqJEMB5PpA+pFiG+Z6UOoWmpbw6ezpZUrNHABD?= X-Microsoft-Antispam-Message-Info: zTz7tl1RJeYVdDIo1h/Od9NSyUBP1k2pnYziZI3KWJ75srqpz4amGzTms6cV2HEU/EBlAdoO70eOQzjBtrQwNN8tBR+io1N4RnOswSiB0SKOP6NS+rY9PxzKumR1C76vjkYTKXhQpi7Lfk1GKqpK7vqNXzAGFLf9DuNFd12mY8truXJ53jG+K177JRCDkiYKcvvZj3s0wH1U02j2BqNZPBNcPJOSgP9zoICEjozlurcIbTYnd9Iq67hIfFIrxnQS/nXzCNCiDhxm53MKBxTqBd+7HpD0lr8ZFyND0/M5gs2g/z0dKIYeP1t30hXr4mqb6eZrYGG6XC9kevaBie5Y7bEpNl0vwqIMBEYJZR/6xuo= X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB5005; 6:Qb6Ml7pRJvO/l8R99rz4oP8Dr1Y5x3dHnw1xU3GiLPbJ/b1L0Kah8eN9V0laUUo5/b+NU9UlWsLoypQJ1zmFJcXwY6u2Nr+mjff3krjjAEghiYDDWprCgVTVyElfYKBNdslCIIY8EjLFrg+geB8daCvXg4vt5V2i3D8hQNmXlIMGDg6SV0KczZiYOF8V+k2Xds312biak/peQfDTtCSxTn2SEhrakC5GgofTvZyvIyjkzrwC2XYbOqyDmMbGetQONiA82KKDOtru4D1dRb6S1OFH6IrIhThOpiG5xTjNbBgxe2roQhJFQwNhmQgyDMsNd1dv2DfV8KlZa/FUp562JaG4q9mf/5iCSsIGZntHnIoCYMptaM6NzctUbFDtJBwsSPrUdsgGnH83U3kLgMyb6oykj0iAumdCmhM4IoQzsysrOFJ1KO4wBnFad29ns5RvE2nBwjLn/3ncl2AM4+WzLw==; 5:d0jN6eipbVb0DwO/5ZesNdXMfksRBDDRpARxg25YwPUNBhjDt2W642AIMjn0/Q8jn9sjErfvf7dx29KhiEjoN07HZFaXhbUNy+BB9yq/zvICvX9/RR61X/EyyXbetdBXvM+Gv88Yf3XtQr0maC9rmBzHbRpTUA0raEJsehTd6/A=; 7:5FcpqgFMpsUroxk3FG11zO4I5pnIUVw73Bv+LRqDvuUYCogae32ijI0gRzM1YFzdBNAcSQoJGoF3bJHcAr0XzGggpFv1+rJK72hmD9MNlKRN4CYqkg1xyp/eSH5qf7S2RLi3alOcgJp5K7376fkQwLiD21aNRwsLjgpGKAKqCXb1dQg2w/fI+1wlRRPGxj4L2scLC2P/SiGScv8yLa7nF0M8gbYCWCYkucbxcwDiFdqilRYJ0b4a0SPzNnAL01bD SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2018 08:57:51.8033 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f819a076-899d-4ab9-3f78-08d60d8d82fa X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR07MB5005 Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization 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: , X-List-Received-Date: Wed, 29 Aug 2018 09:13:39 -0000 -----Original Message----- > Date: Wed, 29 Aug 2018 08:47:56 +0000 > From: Ola Liljedahl > To: Jerin Jacob > CC: "Kokkilagadda, Kiran" , Honnappa > Nagarahalli , Gavin Hu , > Ferruh Yigit , "Jacob, Jerin" > , "dev@dpdk.org" , nd > , Steve Capper > Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer > synchronization > user-agent: Microsoft-MacOutlook/10.10.0.180812 > > > There was a mention of rte_ring which is a different data structure. But perhaps I misunderstood why this was mentioned and the idea was only to use the C11 memory model as is also used in rte_ring nowadays. > > But why would we have different code for x86 and for other architectures (ARM, Power)? If we use the C11 memory model (and e.g. GCC __atomic builtins), the code generated for x86 will be the same. __atomic_load(__ATOMIC_ACQUIRE) and __atomic_store(__ATOMIC_RELEASE) should translate to plain loads and stores on x86? # One reason was __atomic builtins primitives were implemented in gcc 4.7 and x86 would like to support < gcc 4.7 and ICC compiler. # The theme was no change in the existing code for x86.I am not sure about the code generation for x86 with __atomic builtins, I let x86 maintainers to comments on this. > > -- Ola > > On 29/08/2018, 10:28, "Jerin Jacob" wrote: > > -----Original Message----- > > Date: Wed, 29 Aug 2018 07:34:34 +0000 > > From: Ola Liljedahl > > To: "Kokkilagadda, Kiran" , Honnappa > > Nagarahalli , Gavin Hu , > > Ferruh Yigit , "Jacob, Jerin" > > > > CC: "dev@dpdk.org" , nd , Steve Capper > > > > Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer > > synchronization > > user-agent: Microsoft-MacOutlook/10.10.0.180812 > > > > Is the rte_kni kernel/user binary interface subject to backwards compatibility requirements? Or can we change it for a new DPDK release? > > What would be the change in interface? Is it removing the volatile for > C11 case, Then you can use anonymous union OR #define to keep the size > and offset of the element intact. > > struct rte_kni_fifo { > #ifndef RTE_C11... > volatile unsigned write; /**< Next position to be written*/ > volatile unsigned read; /**< Next position to be read */ > #else > unsigned write; /**< Next position to be written*/ > unsigned read; /**< Next position to be read */ > #endif > unsigned len; /**< Circular buffer length */ > unsigned elem_size; /**< Pointer size - for 32/64 bitOS */ > void *volatile buffer[]; /**< The buffer contains mbuf > pointers */ > }; > > Anonymous union example: > https://git.dpdk.org/dpdk/tree/lib/librte_mbuf/rte_mbuf.h#n461 > > You can check the ABI breakage by devtools/validate-abi.sh > > > > > -- Ola > > > > From: "Kokkilagadda, Kiran" > > Date: Wednesday, 29 August 2018 at 07:50 > > To: Honnappa Nagarahalli , Gavin Hu , Ferruh Yigit , "Jacob, Jerin" > > Cc: "dev@dpdk.org" , nd , Ola Liljedahl , Steve Capper > > Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization > > > > > > Agreed. Please go a head and make the changes. You need to make same change in kernel side also. And please use c11 ring (see rte_ring) mechanism so that it won't impact other platforms like intel. We need this change just for arm and ppc. > > > > ________________________________ > > From: Honnappa Nagarahalli > > Sent: Wednesday, August 29, 2018 10:29 AM > > To: Gavin Hu; Kokkilagadda, Kiran; Ferruh Yigit; Jacob, Jerin > > Cc: dev@dpdk.org; nd; Ola Liljedahl; Steve Capper > > Subject: RE: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization > > > > > > External Email > > > > I agree with Gavin here. Store to fifo->write and fifo->read can get hoisted resulting in accessing invalid buffer array entries or over writing of the buffer array entries. > > > > IMO, we should solve this using c11 atomics. This will also help remove the use of ‘volatile’ from ‘rte_kni_fifo’ structure. > > > > > > > > If you want us to put together a patch with this idea, please let us know. > > > > > > > > Thank you, > > > > Honnappa > > > > > > > > From: Gavin Hu > > Sent: Tuesday, August 28, 2018 2:31 PM > > To: Kokkilagadda, Kiran ; Ferruh Yigit ; Jacob, Jerin > > Cc: dev@dpdk.org; Honnappa Nagarahalli ; nd ; Ola Liljedahl ; Steve Capper > > Subject: RE: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization > > > > > > > > Assuming reader and writer may execute on different CPU's, this become standard multithreaded programming. > > > > We are concerned about that update the reader pointer too early(weak ordering may reorder it before reading from the slots), that means the slots are released and may immediately overwritten by the writer then you get “too new” data and get lost of the old data. > > > > > > > > From: Kokkilagadda, Kiran > > > Sent: Tuesday, August 28, 2018 6:44 PM > > To: Gavin Hu >; Ferruh Yigit >; Jacob, Jerin > > > Cc: dev@dpdk.org; Honnappa Nagarahalli > > > Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization > > > > > > > > In this instance there won't be any problem, as until the value of fifo->write changes, this loop won't get executed. As of now we didn't see any issue with it and for performance reasons, we don't want to keep read barrier. > > > > > > > > > > > > ________________________________ > > > > From: Gavin Hu > > > Sent: Monday, August 27, 2018 9:10 PM > > To: Ferruh Yigit; Kokkilagadda, Kiran; Jacob, Jerin > > Cc: dev@dpdk.org; Honnappa Nagarahalli > > Subject: RE: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization > > > > > > > > External Email > > > > This fix is not complete, kni_fifo_get requires a read fence also, otherwise it probably gets stale data on a weak ordering platform. > > > > > -----Original Message----- > > > From: dev > On Behalf Of Ferruh Yigit > > > Sent: Monday, August 27, 2018 10:08 PM > > > To: Kiran Kumar >; > > > jerin.jacob@caviumnetworks.com > > > Cc: dev@dpdk.org > > > Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer > > > synchronization > > > > > > On 8/16/2018 10:55 AM, Kiran Kumar wrote: > > > > With existing code in kni_fifo_put, rx_q values are not being updated > > > > before updating fifo_write. While reading rx_q in kni_net_rx_normal, > > > > This is causing the sync issue on other core. So adding a write > > > > barrier to make sure the values being synced before updating fifo_write. > > > > > > > > Fixes: 3fc5ca2f6352 ("kni: initial import") > > > > > > > > Signed-off-by: Kiran Kumar > > > > > Acked-by: Jerin Jacob > > > > > > > Acked-by: Ferruh Yigit > > > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. > >