From patchwork Sat Feb 20 08:35:16 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Uvarov X-Patchwork-Id: 62449 Delivered-To: patch@linaro.org Received: by 10.112.43.199 with SMTP id y7csp225065lbl; Sat, 20 Feb 2016 00:36:27 -0800 (PST) X-Received: by 10.140.109.100 with SMTP id k91mr22243061qgf.54.1455957387852; Sat, 20 Feb 2016 00:36:27 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id 18si18529993qhd.49.2016.02.20.00.36.27; Sat, 20 Feb 2016 00:36:27 -0800 (PST) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 781AF65109; Sat, 20 Feb 2016 08:36:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 56F44669E6; Sat, 20 Feb 2016 08:35:31 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 73C5565110; Sat, 20 Feb 2016 08:35:25 +0000 (UTC) Received: from mail-lf0-f48.google.com (mail-lf0-f48.google.com [209.85.215.48]) by lists.linaro.org (Postfix) with ESMTPS id 3A42B65100 for ; Sat, 20 Feb 2016 08:35:24 +0000 (UTC) Received: by mail-lf0-f48.google.com with SMTP id l143so67499489lfe.2 for ; Sat, 20 Feb 2016 00:35:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=C3dcKwxNZwVLWU5rPbBD5DZzWfRdFxuTe7fd9Mho0Mk=; b=Of3a+q8cwCLnmeIwp5Wvg3Y94HMykYTfb2pOCSC1KxChkGJjbcL8LpLIlH9S4EWgdL UDDt/pRnBP7n8ve/W22WDWe4gciJ1AXgLo+9M6aFEiyufN7zchpMlVgKSa7Yk+0rBuL1 +4RqvIChhvvrj+ryUNm++x+o7tIrJk1WDIb3rQQ5hYxgSVbY31iNYXCAOmSpaGF32CIp 4kTTtjisWE/T2pJ6OfAKiwIFpYa1ewxb3Fg51GIhJCv6W77Lsfw/8dk8ejTxvGmcgl56 9X7XnH6Ao5jfRJBkms5Y0Ur0WdQn8bvzT1fuWEEGuUibbcIdG048QXohDRX/R30x//ld rTfg== X-Gm-Message-State: AG10YORbfjUry/LbmD3F1vq0hNCCTUlEqb2/HOpLtx2vIChkPetIv6CXuYWtyhkdFUT9bJ+3I6g= X-Received: by 10.25.26.83 with SMTP id a80mr6969386lfa.36.1455957323142; Sat, 20 Feb 2016 00:35:23 -0800 (PST) Received: from localhost.localdomain (ppp91-76-173-134.pppoe.mtu-net.ru. [91.76.173.134]) by smtp.gmail.com with ESMTPSA id 34sm1994206lfv.35.2016.02.20.00.35.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 20 Feb 2016 00:35:22 -0800 (PST) From: Maxim Uvarov To: lng-odp@lists.linaro.org Date: Sat, 20 Feb 2016 11:35:16 +0300 Message-Id: <1455957318-9392-2-git-send-email-maxim.uvarov@linaro.org> X-Mailer: git-send-email 2.7.1.250.gff4ea60 In-Reply-To: <1455957318-9392-1-git-send-email-maxim.uvarov@linaro.org> References: <1455957318-9392-1-git-send-email-maxim.uvarov@linaro.org> X-Topics: patch Subject: [lng-odp] [API-NEXT PATCH 1/3] linux-generic: pktio ipc: add pid to pool shm file X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" --- platform/linux-generic/odp_pool.c | 11 +++++++++-- platform/linux-generic/pktio/ipc.c | 8 +++++++- platform/linux-generic/test/pktio_ipc/pktio_ipc_run | 8 ++++---- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c index f6fa8f5..b19b889 100644 --- a/platform/linux-generic/odp_pool.c +++ b/platform/linux-generic/odp_pool.c @@ -22,7 +22,8 @@ #include #include - +#include +#include #if ODP_CONFIG_POOLS > ODP_BUFFER_MAX_POOLS #error ODP_CONFIG_POOLS > ODP_BUFFER_MAX_POOLS @@ -259,6 +260,8 @@ odp_pool_t _pool_create(const char *name, /* Find an unused buffer pool slot and iniitalize it as requested */ for (i = 0; i < ODP_CONFIG_POOLS; i++) { + char *pool_shm_name; + pool = get_pool_entry(i); POOL_LOCK(&pool->s.lock); @@ -303,9 +306,13 @@ odp_pool_t _pool_create(const char *name, mdata_size + udata_size); - shm = odp_shm_reserve(pool->s.name, + pool_shm_name = calloc(1, ODP_SHM_NAME_LEN); + sprintf(pool_shm_name, "%s_%d", name, getpid()); + + shm = odp_shm_reserve(pool_shm_name, pool->s.pool_size, ODP_PAGE_SIZE, shmflags); + free(pool_shm_name); if (shm == ODP_SHM_INVALID) { POOL_UNLOCK(&pool->s.lock); return ODP_POOL_INVALID; diff --git a/platform/linux-generic/pktio/ipc.c b/platform/linux-generic/pktio/ipc.c index 08a7934..ddc6d6d 100644 --- a/platform/linux-generic/pktio/ipc.c +++ b/platform/linux-generic/pktio/ipc.c @@ -237,6 +237,8 @@ static void _ipc_export_pool(struct pktio_info *pinfo, odp_pool_t pool) { pool_entry_t *pool_entry; + odp_shm_t pool_shm; + odp_shm_info_t shm_info; pool_entry = odp_pool_to_entry(pool); if (pool_entry->s.blk_size != pinfo->master.shm_pkt_size) @@ -244,8 +246,12 @@ static void _ipc_export_pool(struct pktio_info *pinfo, if (pool_entry->s.buf_num != (unsigned)pinfo->master.shm_pool_bufs_num) ODP_ABORT("pktio for same name should have the same pool size\n"); + pool_shm = pool_entry->s.pool_shm; + if (0 != odp_shm_info(pool_shm, &shm_info)) + ODP_ABORT("unable to get shm info\n"); + snprintf(pinfo->slave.pool_name, ODP_POOL_NAME_LEN, "%s", - pool_entry->s.name); + shm_info.name); pinfo->slave.mdata_offset = pool_entry->s.pool_mdata_addr - pool_entry->s.pool_base_addr; } diff --git a/platform/linux-generic/test/pktio_ipc/pktio_ipc_run b/platform/linux-generic/test/pktio_ipc/pktio_ipc_run index 08a7457..ae2cb18 100755 --- a/platform/linux-generic/test/pktio_ipc/pktio_ipc_run +++ b/platform/linux-generic/test/pktio_ipc/pktio_ipc_run @@ -24,8 +24,8 @@ run() #if test was interrupted with CTRL+c than files #might remain in shm. Needed cleanely delete them. rm -rf /dev/shm/ipc_pktio_* 2>&1 > /dev/null - rm -rf /dev/shm/packet_pool1 2>&1 > /dev/null - rm -rf /dev/shm/packet_pool2 2>&1 > /dev/null + rm -rf /dev/shm/packet_pool1* 2>&1 > /dev/null + rm -rf /dev/shm/packet_pool2* 2>&1 > /dev/null echo "==== run pktio_ipc1 then pktio_ipc2 ====" pktio_ipc1${EXEEXT} -t 30 & @@ -40,8 +40,8 @@ run() kill ${IPC_PID} 2>&1 > /dev/null if [ $? -eq 0 ]; then rm -rf /dev/shm/ipc_pktio_* 2>&1 > /dev/null - rm -rf /dev/shm/packet_pool1 2>&1 > /dev/null - rm -rf /dev/shm/packet_pool2 2>&1 > /dev/null + rm -rf /dev/shm/packet_pool1* 2>&1 > /dev/null + rm -rf /dev/shm/packet_pool2* 2>&1 > /dev/null fi if [ $ret -ne 0 ]; then