From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2261EC4360F for ; Fri, 5 Apr 2019 13:51:47 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id C988A21738 for ; Fri, 5 Apr 2019 13:51:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C988A21738 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=ericsson.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 403951B4FD; Fri, 5 Apr 2019 15:51:44 +0200 (CEST) Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) by dpdk.org (Postfix) with ESMTP id 677DC1B4F9 for ; Fri, 5 Apr 2019 15:51:42 +0200 (CEST) Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id B478B4000A for ; Fri, 5 Apr 2019 15:51:41 +0200 (CEST) Received: by mail.lysator.liu.se (Postfix, from userid 1004) id 63D2440010; Fri, 5 Apr 2019 15:51:41 +0200 (CEST) Received: from [192.168.1.59] (host-90-232-144-184.mobileonline.telia.com [90.232.144.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 5F8014000A for ; Fri, 5 Apr 2019 15:51:40 +0200 (CEST) To: dev@dpdk.org References: <20190405134542.28618-1-mattias.ronnblom@ericsson.com> From: =?UTF-8?Q?Mattias_R=c3=b6nnblom?= Message-ID: <7428acf8-fd06-fcc5-521b-37ee0fa1729a@ericsson.com> Date: Fri, 5 Apr 2019 15:51:39 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190405134542.28618-1-mattias.ronnblom@ericsson.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP Subject: Re: [dpdk-dev] [RFC] eal: make rte_rand() MT safe 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" On 2019-04-05 15:45, Mattias Rönnblom wrote: > The rte_rand() documentation left it unspecified if the rte_rand() was > multi-thread safe or not, and the implementation (based on lrand48()) > was not. > > This commit makes rte_rand() safe to use from any lcore thread by > using lrand48_r() and per-lcore random state structs. Besides the > obvious improvement in terms of correctness (for concurrent users), > this also much improves rte_rand() performance, since the threads no > longer shares state. For the single-threaded case, this patch causes > ~10% rte_rand() performance degradation. > It's a little unclear to me, if lrand48_r() exists in FreeBSD or not. Could someone confirm? Another question I have is in which section of the version.map file the new symbols should go. Experimental, or 19.05? The source interface is backward compatible, but the functions are no longer inline functions in the header file, and thus needs to go somewhere to be properly exported.