From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qc0-f195.google.com (mail-qc0-f195.google.com [209.85.216.195]) by dpdk.org (Postfix) with ESMTP id 0ABD32A1A for ; Fri, 19 Dec 2014 08:43:47 +0100 (CET) Received: by mail-qc0-f195.google.com with SMTP id i8so69200qcq.2 for ; Thu, 18 Dec 2014 23:43:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=Pkn3srdTBL9Bqado8ovjrCo1JslW6DZjf43sO2hytbY=; b=SUvZlGli8AHfgNEPX02Nua2qJOiSi7PjkFFni0MTZnHNUi2txZrBBaCdd15u3zrbeP wyNa3xC8j1CQue8MRn2fBpLHWxjiVBN59rK4TbEv6tR3SbllI3mA5aeg4FlUYU3UjFO9 7WW6khN5lVtLO31ROlh4XQXqmWVG+gqUPdvZ+dkebjT4wJxeRDv/Dq2NLLHvpQqUHL89 aXvEgmGToxOEjWIXRQzeUbmwtXKuaKq4Nd48ICR5engbBDzL6Xby99ShnDY/lxCD2/sR tDmZNgpny/9Rajbu141wjYeDOLCmgrRYUUOjISQvTHczEez1s2u6/etmB4HYmUBdM7LN PZYg== X-Received: by 10.140.89.176 with SMTP id v45mr429842qgd.44.1418975026473; Thu, 18 Dec 2014 23:43:46 -0800 (PST) MIME-Version: 1.0 Sender: yuanhaowei@gmail.com Received: by 10.140.34.101 with HTTP; Thu, 18 Dec 2014 23:43:26 -0800 (PST) From: Haowei Yuan Date: Fri, 19 Dec 2014 01:43:26 -0600 X-Google-Sender-Auth: NcK85IuouuZTCgPbsSJa4tyg8uU Message-ID: To: dev@dpdk.org Content-Type: text/plain; charset=UTF-8 Subject: [dpdk-dev] Problem with running the load balancer example application X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Dec 2014 07:43:47 -0000 Hi folks, I am new to DPDK and have been trying to run the load balancer example application on a machine with two NUMA nodes. Somehow the program cannot be launched correctly if I add the "--no-huge" option to the command. I am wondering if someone had seen similar problems, or maybe I did something wrong. The command I used was "./load_balancer -c 0x5 -n 4 --no-huge -- --rx "(0,0,0),(1,0,0)" --tx "(0,0),(1,0)" --w "2" --lpm "192.168.0.0/1=>1;" --pos-lb 29" When hugepage memory was used, everything worked fine. But when I added the "--no-huge" option, I got the warning message of "Master core has no memory on local socket", and eventually the program quit as mbuf pool could not be created on socket 0. The following is the detailed error message. ----------------------------------------------------------------------- EAL: WARNING: Master core has no memory on local socket! EAL: Master core 0 is ready (tid=781f4800) EAL: Core 2 is ready (tid=72df2700) EAL: PCI device 0000:01:00.0 on NUMA socket 0 EAL: probe driver: 8086:1528 rte_ixgbe_pmd EAL: PCI memory mapped at 0x7f57723f2000 EAL: PCI memory mapped at 0x7f57723ee000 EAL: PCI device 0000:01:00.1 on NUMA socket 0 EAL: probe driver: 8086:1528 rte_ixgbe_pmd EAL: PCI memory mapped at 0x7f57721ee000 EAL: PCI memory mapped at 0x7f57721ea000 EAL: PCI device 0000:07:00.0 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: 0000:07:00.0 not managed by UIO driver, skipping EAL: PCI device 0000:07:00.1 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: 0000:07:00.1 not managed by UIO driver, skipping Creating the mbuf pool for socket 0 ... PANIC in app_init_mbuf_pools(): Cannot create mbuf pool on socket 0 ----------------------------------------------------------------------- Then I added one line of code to the eal.c file to print the socket id, the edited code and the output are: Code: ----------------------------------------------------------------------- static void eal_check_mem_on_local_socket(void) { const struct rte_memseg *ms; int i, socket_id; socket_id = rte_lcore_to_socket_id(rte_config.master_lcore); ms = rte_eal_get_physmem_layout(); for (i = 0; i < RTE_MAX_MEMSEG; i++) { printf("socket_id = %d, len = %lu\n", ms[i].socket_id, ms[i].len); XXXXX Added line of code if (ms[i].socket_id == socket_id && ms[i].len > 0) return; } RTE_LOG(WARNING, EAL, "WARNING: Master core has no " "memory on local socket!\n"); } Output: socket_id = -1, len = 67108864 socket_id = 0, len = 0 socket_id = 0, len = 0 socket_id = 0, len = 0 socket_id = 0, len = 0 ...... ----------------------------------------------------------------------- I think the first socket_id of -1 is causing the problem as Core 0 is on socket 0.... Has someone seem similar problems, or is there anything I did incorrect? Thanks, Haowei