eal: fix parsing zero socket memory and limits

Message ID 20190122162714.9144-1-i.maximets@samsung.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series eal: fix parsing zero socket memory and limits |

Checks

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

Commit Message

Ilya Maximets Jan. 22, 2019, 4:27 p.m. UTC
  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

Anatoly Burakov Jan. 23, 2019, 10:15 a.m. UTC | #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. UTC | #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. UTC | #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;
 }