From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f99.google.com (mail-wm0-f99.google.com [74.125.82.99]) by dpdk.org (Postfix) with ESMTP id 642801B058 for ; Tue, 10 Jul 2018 16:54:04 +0200 (CEST) Received: by mail-wm0-f99.google.com with SMTP id v3-v6so21085894wmh.0 for ; Tue, 10 Jul 2018 07:54:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outscale-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=8gUai8slRTZq06anEFFWyW75QNck659l/1BKH8ZexLE=; b=oXq+q8uufW+cHnUGjCCqvKtYRzCogZcKEASPm6IQHYn4L/ig40iv0ST4/a8/uE8Yua 7oi/T9LAajI9Jo4NAS0ZBt27uO+LqQuu/3RsGm3Zi8ScIWRvM6Lnw4bx++f2usd3ff5c JoHVgRr9xoPXY2o2q79gmKZyWToFsH5enEgyFm3OWiDzVod6RDBS/WdU/WQtiygF7j50 6nqXwbZSLnBmqj2QqenlXPfM6tWoS/elvp6IeEXFKEp1RM3a/UQFFlvONc0S7gPUMEgi aW4ThgYBOSTUEGQ1w/HlYcYoPg2P1ZW8keWrte0l5if2PnLTNZSVOv0bUUWaO3uVEZ3j lKvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=8gUai8slRTZq06anEFFWyW75QNck659l/1BKH8ZexLE=; b=stL0sOIYLQuRJbFbCKa8dVb+uhBk6bmRN2YBaaMN/sHwZIlo/xo6Lt7LBaJUkv0o+9 oJhKhgMEXgndd8ig8d+BGFdATLHWxuKvcb8PqFSoc9M4RtrcS+rWUHbmAOnG0W3TAv6o x6dmBfZIiv53GKtAoKt6qYnhiZcEzS1Ds9daf3TAVgUAM2bbyCTMQc8TzbLPPqRFHgtH inr9l36VWnraqHSUGPvOU31Set2Xli/VYn8B/k4TUBt7LqS3j21YLTnfKTw6XeuxPK/2 IjOFluDNp4Yf7MhUlW+ibB7OnEN6TdWPuCnjL3ImRJ3i0mZ7oVRNLb+aS9N/zmFU0teB oHaA== X-Gm-Message-State: APt69E36+OZyuHmYl7AVe+Hv9vg8c/yc8wUlDmv+S/WcGLSR0z+MN/va dJwthT1689naggGgVpMN/IWHtaDJduQYy8WEU/YsGGwKBB6xiQ== X-Google-Smtp-Source: AAOMgpd72j85VeWbJb3MgWDeeoWwJYjK/izadrsG6ybWdqxcUfETtHJOLp13czd/4UjBLkEo+fE8i14774ai X-Received: by 2002:a1c:4489:: with SMTP id r131-v6mr14335949wma.128.1531234444217; Tue, 10 Jul 2018 07:54:04 -0700 (PDT) Received: from ip-10-9-15-30.eu-west-2.compute.eu-west-2.compute.internal (ows-109-232-238-189.eu-west-2.compute.outscale.com. [109.232.238.189]) by smtp-relay.gmail.com with ESMTPS id j18-v6sm674262wro.16.2018.07.10.07.54.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 10 Jul 2018 07:54:04 -0700 (PDT) X-Relaying-Domain: outscale.com From: thiery.ouattara@outscale.com To: dev@dpdk.org Cc: thiery.ouattara@outscale.com, anatoly.burakov@intel.com Date: Tue, 10 Jul 2018 16:54:25 +0200 Message-Id: <1531234465-31339-1-git-send-email-thiery.ouattara@outscale.com> X-Mailer: git-send-email 1.9.1 Subject: [dpdk-dev] [PATCH] eal: allow start two dpdk with no-huge option 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: Tue, 10 Jul 2018 14:54:04 -0000 From: Kignelman OUATTARA in last version (v18.02), we was using no-huge option to start 2 dpdk instances simultanusly (for testing purpose). but since v18.05 when we start 2 instances: - the first dpdk app start normaly - the 2nd can't start because LOCK_EX option is set in flock(fd, LOCK_EX | LOCK_NB). So i did this patch to change LOCK_EX to LOCK_SH if no-huge option is set. Signed-off-by: Kignelman OUATTARA --- lib/librte_eal/common/eal_common_fbarray.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/common/eal_common_fbarray.c b/lib/librte_eal/common/eal_common_fbarray.c index 019f84c..7a7b9af 100644 --- a/lib/librte_eal/common/eal_common_fbarray.c +++ b/lib/librte_eal/common/eal_common_fbarray.c @@ -414,6 +414,7 @@ struct used_mask { struct used_mask *msk; void *data = NULL; int fd = -1; + int lock_opt = LOCK_EX; if (arr == NULL) { rte_errno = EINVAL; @@ -436,6 +437,9 @@ struct used_mask { eal_get_fbarray_path(path, sizeof(path), name); + if (internal_config.no_hugetlbfs) + lock_opt = LOCK_SH; + /* * Each fbarray is unique to process namespace, i.e. the filename * depends on process prefix. Try to take out a lock and see if we @@ -447,7 +451,7 @@ struct used_mask { path, strerror(errno)); rte_errno = errno; goto fail; - } else if (flock(fd, LOCK_EX | LOCK_NB)) { + } else if (flock(fd, lock_opt | LOCK_NB)) { RTE_LOG(DEBUG, EAL, "%s(): couldn't lock %s: %s\n", __func__, path, strerror(errno)); rte_errno = EBUSY; -- 1.9.1