From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pd0-f179.google.com (mail-pd0-f179.google.com [209.85.192.179]) by dpdk.org (Postfix) with ESMTP id C864FDE0 for ; Fri, 27 Feb 2015 07:15:05 +0100 (CET) Received: by pdjg10 with SMTP id g10so18805900pdj.1 for ; Thu, 26 Feb 2015 22:15:05 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=4vBFSkFdmANWWTCoQs41uFe6UITrgi6eJTvZbOLNm2g=; b=Twzwr2ntoJtyvELsQUwitd5sNdoJYuvIRH8w+qeEApfDrWWHYTDpnIt7iEcwF3x5sQ WGl58+bEUoNF9ySEDYCRxmLL/EBZu3aAdFKyZzAb4LstUzf6QhzHxWbN0w/4TtTSr769 Sq6BTvDHB8qyAhHEwrRRLwOhzmgWb26EOscGZbnCU3wqbDFosrvDa0/abZwfCR7H0LeE q74ShNQOMGqnepGEp24NcAGG3YFxyvBsu6zmoTSYu5dfLY+jqB5uJa7NXOCcs5QMqXcw HJ3/843hFnV4PgY9mosIx8d+zN8Ts8mIsohb5Hr/C3HDkvM5P/YzME8vCdAsqv6erWNl M0SQ== X-Gm-Message-State: ALoCoQmi3P9iNpfbDHq0+RGCYwhtOaKpFUts+VQv4JcJSR5cisU4U14aT1RUwJIa73YAyAshE2N/ X-Received: by 10.66.142.100 with SMTP id rv4mr21551673pab.84.1425017705003; Thu, 26 Feb 2015 22:15:05 -0800 (PST) Received: from [10.16.129.101] (napt.igel.co.jp. [219.106.231.132]) by mx.google.com with ESMTPSA id x4sm2734891pbt.71.2015.02.26.22.15.03 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 26 Feb 2015 22:15:04 -0800 (PST) Message-ID: <54F00B63.5050003@igel.co.jp> Date: Fri, 27 Feb 2015 15:14:59 +0900 From: Tetsuya Mukawa User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: "De Lara Guarch, Pablo" , "dev@dpdk.org" References: <1424837093-5661-13-git-send-email-mukawa@igel.co.jp> <1424892749-31862-1-git-send-email-mukawa@igel.co.jp> <1424892749-31862-16-git-send-email-mukawa@igel.co.jp> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: Re: [dpdk-dev] [PATCH v15] testpmd: Add port hotplug support 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, 27 Feb 2015 06:15:06 -0000 On 2015/02/27 3:49, De Lara Guarch, Pablo wrote: > >> -----Original Message----- >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Tetsuya Mukawa >> Sent: Wednesday, February 25, 2015 7:32 PM >> To: dev@dpdk.org >> Subject: [dpdk-dev] [PATCH v15] testpmd: Add port hotplug support >> >> The patch introduces following commands. >> - port attach [ident] >> - port detach [port_id] >> - attach: attaching a port >> - detach: detaching a port >> - ident: pci address of physical device. >> Or device name and parameters of virtual device. >> (ex. 0000:02:00.0, eth_pcap0,iface=3Deth0) >> - port_id: port identifier >> >> v15: >> - Replace rte_eal_dev_attach() by rte_eth_dev_attach() >> - Replace rte_eal_dev_detach() by rte_eth_dev_detach() >> >> v7: >> - Fix doc. >> (Thanks to Iremonger, Bernard) >> - Fix port checking implementation of star_port(); >> (Thanks to Qiu, Michael) >> v5: >> - Add testpmd documentation. >> (Thanks to Iremonger, Bernard) >> v4: >> - Fix strings of command help. >> >> Signed-off-by: Tetsuya Mukawa >> --- >> app/test-pmd/cmdline.c | 137 +++++++++++++++----= >> app/test-pmd/config.c | 102 ++++++++------ >> app/test-pmd/parameters.c | 22 ++- >> app/test-pmd/testpmd.c | 199 +++++++++++++++++++= ++------- >> app/test-pmd/testpmd.h | 18 ++- >> doc/guides/testpmd_app_ug/testpmd_funcs.rst | 57 ++++++++ >> 6 files changed, 409 insertions(+), 126 deletions(-) >> > [...] > >> @@ -1423,12 +1443,8 @@ set_fwd_ports_list(unsigned int *portlist, >> unsigned int nb_pt) >> again: >> for (i =3D 0; i < nb_pt; i++) { >> port_id =3D (portid_t) portlist[i]; >> - if (port_id >=3D nb_ports) { >> - printf("Invalid port id %u >=3D %u\n", >> - (unsigned int) port_id, >> - (unsigned int) nb_ports); >> + if (port_id_is_invalid(port_id, ENABLED_WARN)) > Sorry for catching this late, but there is a segmentation fault when th= is function gets called=20 > when parsing "portmask" at testpmd initialization, since port_id_is_inv= alid function needs to have array "ports" initialized. > I would revert the change, but not sure if this is need for other reaso= ns. Hi Pablo, I appreciate for your reporting. I could reproduce the issue with portmask option like below $ sudo ./testpmd -c f -n 1 -- --portmask 0x1 -i As a result of investigation, when 'launch_args_parse()' is called, port structure hasn't been allocated yet. As you said, this causes the issue. I guess we can have 2 options to fix the issue. Option1: Fix 'set_fwd_ports_list()' to work even when port structure hasn't been initialized yet. I guess this implementation is much complex for readers of test-pmd code.= Option2: Move initialization code of ports like below. int main () { init_port(); /* only initialize port structure here*/ launch_args_parse(); init_config(); /* So far, port initialization code is implemented in init_config() */ } I guess 2nd option may be better. How do you think? I will send a patch to implement 2nd option. if you are ok to fix like above, could you please check and acked it? Thanks, Tetsuya > Thanks, > Pablo >> return; >> - } >> if (record_now) >> fwd_ports_ids[i] =3D port_id; >> }