eal: fix parsing zero socket memory and limits

Message ID 20190122162714.9144-1-i.maximets@samsung.com
State Accepted, archived
Delegated to: Thomas Monjalon
Headers show
Series
  • eal: fix parsing zero socket memory and limits
Related show

Checks

Context Check Description
ci/intel-Performance-Testing success Performance Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Ilya Maximets Jan. 22, 2019, 4:27 p.m.
Modern memory mode allowes to not reserve any memory by the
'--socket-mem' option. i.e. it could be possible to specify
zero preallocated memory like '--socket-mem 0'.
Also, it should be possible to configure unlimited memory
allocations by '--socket-limit 0'.

Both cases are impossible now and blocks starting the DPDK
application:

    ./dpdk-app --socket-limit 0 <...>
    EAL: invalid parameters for --socket-limit
    EAL: Invalid 'command line' arguments.
    Unable to initialize DPDK: Invalid argument

Fixes: 6b42f75632f0 ("eal: enable non-legacy memory mode")
Cc: stable@dpdk.org

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
---
 lib/librte_eal/linuxapp/eal/eal.c | 4 ----
 1 file changed, 4 deletions(-)

Comments

Burakov, Anatoly Jan. 23, 2019, 10:15 a.m. | #1
On 22-Jan-19 4:27 PM, Ilya Maximets wrote:
> Modern memory mode allowes to not reserve any memory by the
> '--socket-mem' option. i.e. it could be possible to specify
> zero preallocated memory like '--socket-mem 0'.
> Also, it should be possible to configure unlimited memory
> allocations by '--socket-limit 0'.
> 
> Both cases are impossible now and blocks starting the DPDK
> application:
> 
>      ./dpdk-app --socket-limit 0 <...>
>      EAL: invalid parameters for --socket-limit
>      EAL: Invalid 'command line' arguments.
>      Unable to initialize DPDK: Invalid argument
> 
> Fixes: 6b42f75632f0 ("eal: enable non-legacy memory mode")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
> ---

That's kind of an odd parameter to pass, as it is assumed that if you 
don't need any limitations or preallocated memory, you don't specify 
these flags in the first place, but OK :)

Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Thomas Monjalon Jan. 23, 2019, 10:03 p.m. | #2
23/01/2019 11:15, Burakov, Anatoly:
> On 22-Jan-19 4:27 PM, Ilya Maximets wrote:
> > Modern memory mode allowes to not reserve any memory by the
> > '--socket-mem' option. i.e. it could be possible to specify
> > zero preallocated memory like '--socket-mem 0'.
> > Also, it should be possible to configure unlimited memory
> > allocations by '--socket-limit 0'.
> > 
> > Both cases are impossible now and blocks starting the DPDK
> > application:
> > 
> >      ./dpdk-app --socket-limit 0 <...>
> >      EAL: invalid parameters for --socket-limit
> >      EAL: Invalid 'command line' arguments.
> >      Unable to initialize DPDK: Invalid argument
> > 
> > Fixes: 6b42f75632f0 ("eal: enable non-legacy memory mode")
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
> > ---
> 
> That's kind of an odd parameter to pass, as it is assumed that if you 
> don't need any limitations or preallocated memory, you don't specify 
> these flags in the first place, but OK :)
> 
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>

Applied, thanks
Wiles, Keith Jan. 24, 2019, 1:12 a.m. | #3
> On Jan 23, 2019, at 5:03 PM, Thomas Monjalon <thomas@monjalon.net> wrote:
> 
> 23/01/2019 11:15, Burakov, Anatoly:
>> On 22-Jan-19 4:27 PM, Ilya Maximets wrote:
>>> Modern memory mode allowes to not reserve any memory by the
>>> '--socket-mem' option. i.e. it could be possible to specify
>>> zero preallocated memory like '--socket-mem 0'.
>>> Also, it should be possible to configure unlimited memory
>>> allocations by '--socket-limit 0'.
>>> 
>>> Both cases are impossible now and blocks starting the DPDK
>>> application:
>>> 
>>>     ./dpdk-app --socket-limit 0 <...>
>>>     EAL: invalid parameters for --socket-limit
>>>     EAL: Invalid 'command line' arguments.
>>>     Unable to initialize DPDK: Invalid argument
>>> 
>>> Fixes: 6b42f75632f0 ("eal: enable non-legacy memory mode")
>>> Cc: stable@dpdk.org
>>> 
>>> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
>>> ---
>> 
>> That's kind of an odd parameter to pass, as it is assumed that if you 
>> don't need any limitations or preallocated memory, you don't specify 
>> these flags in the first place, but OK :)

I personally would have liked a comment replacing the three lines stating that total_mem of zero is fine as it only seems reasonable to document the reason total_mem can be zero.
>> 
>> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
> 
> Applied, thanks

Regards,
Keith

Patch

diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index a386829f3..13f401684 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -582,10 +582,6 @@  eal_parse_socket_arg(char *strval, volatile uint64_t *socket_arg)
 		socket_arg[i] = val;
 	}
 
-	/* check if we have a positive amount of total memory */
-	if (total_mem == 0)
-		return -1;
-
 	return 0;
 }