Re: [lng-odp] ODP crash at buffer_alloc_multi() while inserting into iplookuptable

2018-09-10 Thread Maxim Uvarov
Can you please compile ODP with debug:
 ./configure --enable-debug --enable-debug-print
--enable-helper-debug-print CFLAGS="-O0"

Do you run on x86?

It looks like prefix_insert_into_lx() a little bit buggy and there might be
recursion forever. Ret is defined as uint8, has to be int. e->cidr does not
use upper bit of uint8_t, so it's in range of 0 to 127, but range is not
validated. Upper function does not test for error return.

Also if you are saying that it worked on 1.16 then 'git bissect' can point
to exact commit which broke it.
The only commit which touched this file is:
commit 5a4502fc6bc53e6503169da3028f456b64811a0b
Author: Ilias Apalodimas 
Date:   Tue Jan 16 21:09:35 2018 +0200

linux-gen: align: Fix alignment for typedef definitions

* typedef struct { } ODP_ALIGN() test_t; is correct
* typedef struct ODP_ALIGN() {} test_t; is correct and
preferred from gcc standards
* typedef struct {} test_t ODP_ALIGN() discards align
Had segfauls on gcc-7 using that

Signed-off-by: Ilias Apalodimas 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 

Maxim.

On 10 September 2018 at 20:01, gyanesh patra 
wrote:

> We tried it as:
> #define ENTRY_NUM_SUBTREE (1 << 12)
>
> But it didn't work. We couldn't increase it anymore without adding more
> RAM to system.
> One point to consider is that, this same thing was working with ODP 1.16
> code, but with ODP 1.19 version it is not working.
>
> P Gyanesh Kumar Patra
>
>
> On Mon, Sep 10, 2018 at 12:31 PM Maxim Uvarov 
> wrote:
>
>> did you try to increase?
>>
>> /* The size of one L2\L3 subtree */
>> #define ENTRY_NUM_SUBTREE (1 << 8)
>> ./helper/iplookuptable.c
>>
>> On 10 September 2018 at 18:27, gyanesh patra 
>> wrote:
>>
>>> We are using ODP library from an external application. hence i dont have
>>> a simple test code to reproduce it.
>>> But to give a perspective:
>>> - the value size as 12
>>> - the ip prefix is 32
>>> The crash is happening around 159th entry. If the prefix is changed to
>>> 16, the crash happens at around 496th entry.
>>>
>>> Regards,
>>> P Gyanesh Kumar Patra
>>>
>>>
>>> On Mon, Sep 10, 2018 at 12:16 PM Maxim Uvarov 
>>> wrote:
>>>
 do you have some test code to reproduce it?

 On 10 September 2018 at 18:06, gyanesh patra 
 wrote:

> Hi,
> ODP is crashing at buffer_alloc_multi() while inserting into
> iplookuptable.
>
> The backtrace is as below: (gdb) bt #0 buffer_alloc_multi
> (pool=0x7fffd5420c00, buf_hdr=buf_hdr@entry=0x7fff55fa8bb0,
> max_num=max_num@entry=1) at odp_pool.c:700 #1 0x00433083 in
> odp_buffer_alloc (pool_hdl=pool_hdl@entry=0x9) at odp_pool.c:861 #2
> 0x00703732 in cache_alloc_new_pool (type=CACHE_TYPE_TRIE,
> tbl=) at iplookuptable.c:223 #3 cache_get_buffer
> (type=CACHE_TYPE_TRIE, tbl=) at iplookuptable.c:248 #4
> trie_insert_node (nexthop=, cidr=,
> ip=, root=, tbl=) at
> iplookuptable.c:317 #5 odph_iplookup_table_put_value (tbl= out>,
> key=, value=) at iplookuptable.c:686
>
> Am i looking at any limitation to iplookuptable implementaion here? If
> any
> other details are needed, please let us know.
>
> Regards,
> P Gyanesh Kumar Patra
>


>>


Re: [lng-odp] ODP crash at buffer_alloc_multi() while inserting into iplookuptable

2018-09-10 Thread Maxim Uvarov
do you have some test code to reproduce it?

On 10 September 2018 at 18:06, gyanesh patra 
wrote:

> Hi,
> ODP is crashing at buffer_alloc_multi() while inserting into iplookuptable.
>
> The backtrace is as below: (gdb) bt #0 buffer_alloc_multi
> (pool=0x7fffd5420c00, buf_hdr=buf_hdr@entry=0x7fff55fa8bb0,
> max_num=max_num@entry=1) at odp_pool.c:700 #1 0x00433083 in
> odp_buffer_alloc (pool_hdl=pool_hdl@entry=0x9) at odp_pool.c:861 #2
> 0x00703732 in cache_alloc_new_pool (type=CACHE_TYPE_TRIE,
> tbl=) at iplookuptable.c:223 #3 cache_get_buffer
> (type=CACHE_TYPE_TRIE, tbl=) at iplookuptable.c:248 #4
> trie_insert_node (nexthop=, cidr=,
> ip=, root=, tbl=) at
> iplookuptable.c:317 #5 odph_iplookup_table_put_value (tbl=,
> key=, value=) at iplookuptable.c:686
>
> Am i looking at any limitation to iplookuptable implementaion here? If any
> other details are needed, please let us know.
>
> Regards,
> P Gyanesh Kumar Patra
>


[lng-odp] ODP crash at buffer_alloc_multi() while inserting into iplookuptable

2018-09-10 Thread gyanesh patra
Hi,
ODP is crashing at buffer_alloc_multi() while inserting into iplookuptable.

The backtrace is as below: (gdb) bt #0 buffer_alloc_multi
(pool=0x7fffd5420c00, buf_hdr=buf_hdr@entry=0x7fff55fa8bb0,
max_num=max_num@entry=1) at odp_pool.c:700 #1 0x00433083 in
odp_buffer_alloc (pool_hdl=pool_hdl@entry=0x9) at odp_pool.c:861 #2
0x00703732 in cache_alloc_new_pool (type=CACHE_TYPE_TRIE,
tbl=) at iplookuptable.c:223 #3 cache_get_buffer
(type=CACHE_TYPE_TRIE, tbl=) at iplookuptable.c:248 #4
trie_insert_node (nexthop=, cidr=,
ip=, root=, tbl=) at
iplookuptable.c:317 #5 odph_iplookup_table_put_value (tbl=,
key=, value=) at iplookuptable.c:686

Am i looking at any limitation to iplookuptable implementaion here? If any
other details are needed, please let us know.

Regards,
P Gyanesh Kumar Patra


[lng-odp] [Linaro/odp] 464606: linux-gen: sysinfo: return 0 if hugepages are not ...

2018-09-10 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/Linaro/odp
  Commit: 4646069f0417fc180977100af2bc1f527b2d4f28
  
https://github.com/Linaro/odp/commit/4646069f0417fc180977100af2bc1f527b2d4f28
  Author: Dmitry Eremin-Solenikov 
  Date:   2018-09-10 (Mon, 10 Sep 2018)

  Changed paths:
M platform/linux-generic/odp_system_info.c

  Log Message:
  ---
  linux-gen: sysinfo: return 0 if hugepages are not supported

Per API return 0 from odp_sys_huge_page_size_all() if hugepages are not
supported/detected.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 0c20689a6a78818b5cdb97cfa6c23fa7d866a761
  
https://github.com/Linaro/odp/commit/0c20689a6a78818b5cdb97cfa6c23fa7d866a761
  Author: Dmitry Eremin-Solenikov 
  Date:   2018-09-10 (Mon, 10 Sep 2018)

  Changed paths:
M platform/linux-generic/arch/x86/odp_sysinfo_parse.c

  Log Message:
  ---
  linux-gen: x86: as a last resort parse max cpu freq from bogomips value

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


  Commit: 33fbc04b6373960ec3f84de4e7e7b34c49d71508
  
https://github.com/Linaro/odp/commit/33fbc04b6373960ec3f84de4e7e7b34c49d71508
  Author: Dmitry Eremin-Solenikov 
  Date:   2018-09-10 (Mon, 10 Sep 2018)

  Changed paths:
M test/validation/api/system/system.c

  Log Message:
  ---
  validation: system: 0 is valid huge page size

If system does not support huge pages, odp_sys_huge_page_size() will
return 0, which should not be rejected by test.

Signed-off-by: Dmitry Eremin-Solenikov 
Reviewed-by: Bill Fischofer 
Signed-off-by: Maxim Uvarov 


Compare: https://github.com/Linaro/odp/compare/6d48d7f7f684...33fbc04b6373
  **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

  Functionality will be removed from GitHub.com on January 31st, 2019.


[lng-odp] [PATCH v2 1/1] linux-generic : fix wrong spelling

2018-09-10 Thread Github ODP bot
From: Seungha Son 

Signed-off-by: Seungha Son 
---
/** Email created from pull request 696 (linuxias:master)
 ** https://github.com/Linaro/odp/pull/696
 ** Patch: https://github.com/Linaro/odp/pull/696.patch
 ** Base sha: 6d48d7f7f684b8aa87f7eb4f922d45be345ed771
 ** Merge commit sha: cd15d0aa1e4e33600e609842df5d81a5304643f8
 **/
 platform/linux-generic/odp_ishm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/platform/linux-generic/odp_ishm.c 
b/platform/linux-generic/odp_ishm.c
index 59d1fe534..f0d8ef645 100644
--- a/platform/linux-generic/odp_ishm.c
+++ b/platform/linux-generic/odp_ishm.c
@@ -17,7 +17,7 @@
  * Internal shared memory is mainly meant to be used internaly within ODP
  * (hence its name), but may also be allocated by odp applications and drivers,
  * in the future (through these interfaces).
- * To guarrentee this full pointer shareability (when reserved with the
+ * To guarantee this full pointer shareability (when reserved with the
  * _ODP_ISHM_SINGLE_VA flag) internal shared memory is handled as follows:
  * At global_init time, a huge virtual address space reservation is performed.
  * Note that this is just reserving virtual space, not physical memory.
@@ -84,7 +84,7 @@
  *
  * This is the number of separate ISHM areas that can be reserved concurrently
  * (Note that freeing such blocks may take time, or possibly never happen
- * if some of the block ownwers never procsync() after free). This number
+ * if some of the block owners never procsync() after free). This number
  * should take that into account)
  */
 #define ISHM_MAX_NB_BLOCKS 128



[lng-odp] [PATCH v2 0/1] linux-generic : fix wrong spelling

2018-09-10 Thread Github ODP bot
Signed-off-by: Seungha Son linux...@gmail.com

github
/** Email created from pull request 696 (linuxias:master)
 ** https://github.com/Linaro/odp/pull/696
 ** Patch: https://github.com/Linaro/odp/pull/696.patch
 ** Base sha: 6d48d7f7f684b8aa87f7eb4f922d45be345ed771
 ** Merge commit sha: cd15d0aa1e4e33600e609842df5d81a5304643f8
 **/
/github

checkpatch.pl
total: 0 errors, 0 warnings, 0 checks, 16 lines checked


to_send-p-000.patch has no obvious style problems and is ready for submission.
/checkpatch.pl


[lng-odp] [PATCH v4 1/2] linux-gen: ishm: implement huge page cache

2018-09-10 Thread Github ODP bot
From: Josep Puigdemont 

With this patch, ODP will pre-allocate several huge pages at init
time. When memory is to be mapped into a huge page, one that was
pre-allocated will be used, if available, this way ODP won't have to
trap into the kernel to allocate huge pages.

The idea with this implementation is to trick ishm into thinking that
a file descriptor where to map the memory was provided, this way it
it won't try to allocate one itself. This file descriptor is one of
those previously allocated at init time. When the system is done with
this file descriptor, instead of closing it, it is put back into the
list of available huge pages, ready to be reused.

A collateral effect of this patch is that memory is not zeroed out
when it is reused.

WARNING: This patch will not work when using process mode threads.
For several reasons, this may not work when using ODP_ISHM_SINGLE_VA
either, so when this flag is set, the list of pre-allocated files is
not used.

By default ODP will not reserve any huge pages, to tell ODP to do that,
update the ODP configuration file with something like this:
shm: {
num_cached_hp = 32
}

Example usage:

$ echo odp.config
odp_implementation = "linux-generic"
config_file_version = "0.0.1"
shm: {
num_cached_hp = 32
}

$ ODP_CONFIG_FILE=odp.conf ./test/validation/api/shmem/shmem_main

This patch solves bug #3774:
https://bugs.linaro.org/show_bug.cgi?id=3774

Signed-off-by: Josep Puigdemont 
---
/** Email created from pull request 685 (joseppc:fix/cache_huge_pages)
 ** https://github.com/Linaro/odp/pull/685
 ** Patch: https://github.com/Linaro/odp/pull/685.patch
 ** Base sha: 6d48d7f7f684b8aa87f7eb4f922d45be345ed771
 ** Merge commit sha: 71e95a3d2ddb0df6ba6f0e3a62bf6aa98afbb035
 **/
 config/odp-linux-generic.conf |  11 ++
 platform/linux-generic/odp_ishm.c | 218 --
 2 files changed, 215 insertions(+), 14 deletions(-)

diff --git a/config/odp-linux-generic.conf b/config/odp-linux-generic.conf
index 85d5414ba..0dd2a6c13 100644
--- a/config/odp-linux-generic.conf
+++ b/config/odp-linux-generic.conf
@@ -18,6 +18,17 @@
 odp_implementation = "linux-generic"
 config_file_version = "0.0.1"
 
+# Internal shared memory allocator
+shm: {
+   # ODP will try to reserve as many huge pages as the number indicated
+   # here, up to 64. A zero value means that no pages should be reserved.
+   # When using process mode threads, this value should be set to 0
+   # because the current implementation won't work properly otherwise.
+   # These pages will only be freed when the application calls
+   # odp_term_global().
+   num_cached_hp = 0
+}
+
 # DPDK pktio options
 pktio_dpdk: {
# Default options
diff --git a/platform/linux-generic/odp_ishm.c 
b/platform/linux-generic/odp_ishm.c
index 59d1fe534..aeda50bec 100644
--- a/platform/linux-generic/odp_ishm.c
+++ b/platform/linux-generic/odp_ishm.c
@@ -63,6 +63,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -164,7 +165,7 @@ typedef struct ishm_fragment {
  * will allocate both a block and a fragment.
  * Blocks contain only global data common to all processes.
  */
-typedef enum {UNKNOWN, HUGE, NORMAL, EXTERNAL} huge_flag_t;
+typedef enum {UNKNOWN, HUGE, NORMAL, EXTERNAL, CACHED} huge_flag_t;
 typedef struct ishm_block {
char name[ISHM_NAME_MAXLEN];/* name for the ishm block (if any) */
char filename[ISHM_FILENAME_MAXLEN]; /* name of the .../odp-* file  */
@@ -238,6 +239,16 @@ typedef struct {
 } ishm_ftable_t;
 static ishm_ftable_t *ishm_ftbl;
 
+#define HP_CACHE_SIZE 64
+struct huge_page_cache {
+   uint64_t len;
+   int total;   /* amount of actually pre-allocated huge pages */
+   int idx; /* retrieve fd[idx] to get a free file descriptor */
+   int fd[HP_CACHE_SIZE]; /* list of file descriptors */
+};
+
+static struct huge_page_cache hpc;
+
 #ifndef MAP_ANONYMOUS
 #define MAP_ANONYMOUS MAP_ANON
 #endif
@@ -245,6 +256,142 @@ static ishm_ftable_t *ishm_ftbl;
 /* prototypes: */
 static void procsync(void);
 
+static int hp_create_file(uint64_t len, const char *filename)
+{
+   int fd;
+   void *addr;
+
+   if (len <= 0) {
+   ODP_ERR("Length is wrong\n");
+   return -1;
+   }
+
+   fd = open(filename, O_RDWR | O_CREAT | O_TRUNC,
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+   if (fd < 0) {
+   ODP_ERR("Could not create cache file %s\n", filename);
+   return -1;
+   }
+
+   /* remove file from file system */
+   unlink(filename);
+
+   if (ftruncate(fd, len) == -1) {
+   ODP_ERR("Could not truncate file: %s\n", strerror(errno));
+   close(fd);
+   return -1;
+   }
+
+   /* commit huge page */
+   addr = _odp_ishmphy_map(fd, NULL, len, 0);
+   if (addr == NULL) {
+   /* no more pages available */
+   close(fd);
+   return -

[lng-odp] [PATCH v4 2/2] linux-gen: ishm: make huge page cache size dynamic

2018-09-10 Thread Github ODP bot
From: Josep Puigdemont 

Signed-off-by: Josep Puigdemont 
---
/** Email created from pull request 685 (joseppc:fix/cache_huge_pages)
 ** https://github.com/Linaro/odp/pull/685
 ** Patch: https://github.com/Linaro/odp/pull/685.patch
 ** Base sha: 6d48d7f7f684b8aa87f7eb4f922d45be345ed771
 ** Merge commit sha: 71e95a3d2ddb0df6ba6f0e3a62bf6aa98afbb035
 **/
 config/odp-linux-generic.conf |  2 +-
 platform/linux-generic/odp_ishm.c | 73 +++
 2 files changed, 46 insertions(+), 29 deletions(-)

diff --git a/config/odp-linux-generic.conf b/config/odp-linux-generic.conf
index 0dd2a6c13..318af0ad7 100644
--- a/config/odp-linux-generic.conf
+++ b/config/odp-linux-generic.conf
@@ -21,7 +21,7 @@ config_file_version = "0.0.1"
 # Internal shared memory allocator
 shm: {
# ODP will try to reserve as many huge pages as the number indicated
-   # here, up to 64. A zero value means that no pages should be reserved.
+   # here. A zero value means that no pages should be reserved.
# When using process mode threads, this value should be set to 0
# because the current implementation won't work properly otherwise.
# These pages will only be freed when the application calls
diff --git a/platform/linux-generic/odp_ishm.c 
b/platform/linux-generic/odp_ishm.c
index aeda50bec..11fbe8ef0 100644
--- a/platform/linux-generic/odp_ishm.c
+++ b/platform/linux-generic/odp_ishm.c
@@ -239,15 +239,15 @@ typedef struct {
 } ishm_ftable_t;
 static ishm_ftable_t *ishm_ftbl;
 
-#define HP_CACHE_SIZE 64
 struct huge_page_cache {
uint64_t len;
+   int max_fds; /* maximum amount requested of pre-allocated huge pages */
int total;   /* amount of actually pre-allocated huge pages */
int idx; /* retrieve fd[idx] to get a free file descriptor */
-   int fd[HP_CACHE_SIZE]; /* list of file descriptors */
+   int fd[];/* list of file descriptors */
 };
 
-static struct huge_page_cache hpc;
+static struct huge_page_cache *hpc;
 
 #ifndef MAP_ANONYMOUS
 #define MAP_ANONYMOUS MAP_ANON
@@ -301,19 +301,14 @@ static void hp_init(void)
char filename[ISHM_FILENAME_MAXLEN];
char dir[ISHM_FILENAME_MAXLEN];
int count;
-
-   hpc.total = 0;
-   hpc.idx = -1;
-   hpc.len = odp_sys_huge_page_size();
+   void *addr;
 
if (!_odp_libconfig_lookup_ext_int("shm", NULL, "num_cached_hp",
   &count)) {
return;
}
 
-   if (count > HP_CACHE_SIZE)
-   count = HP_CACHE_SIZE;
-   else if (count <= 0)
+   if (count <= 0)
return;
 
ODP_DBG("Init HP cache with up to %d pages\n", count);
@@ -339,55 +334,77 @@ static void hp_init(void)
 dir,
 odp_global_data.main_pid);
 
+   addr = mmap(NULL,
+   sizeof(struct huge_page_cache) + sizeof(int) * count,
+   PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);
+   if (addr == MAP_FAILED) {
+   ODP_ERR("Unable to mmap memory for huge page cache\n.");
+   return;
+   }
+
+   hpc = addr;
+
+   hpc->max_fds = count;
+   hpc->total = 0;
+   hpc->idx = -1;
+   hpc->len = odp_sys_huge_page_size();
+
for (int i = 0; i < count; ++i) {
int fd;
 
-   fd = hp_create_file(hpc.len, filename);
-   if (fd == -1)
+   fd = hp_create_file(hpc->len, filename);
+   if (fd == -1) {
+   do {
+   hpc->fd[i++] = -1;
+   } while (i < count);
break;
-   hpc.total++;
-   hpc.fd[i] = fd;
+   }
+   hpc->total++;
+   hpc->fd[i] = fd;
}
-   hpc.idx = hpc.total - 1;
+   hpc->idx = hpc->total - 1;
 
ODP_DBG("HP cache has %d huge pages of size 0x%08" PRIx64 "\n",
-   hpc.total, hpc.len);
+   hpc->total, hpc->len);
 }
 
 static void hp_term(void)
 {
-   for (int i = 0; i < hpc.total; i++) {
-   if (hpc.fd[i] != -1)
-   close(hpc.fd[i]);
+   if (NULL == hpc)
+   return;
+
+   for (int i = 0; i < hpc->total; i++) {
+   if (hpc->fd[i] != -1)
+   close(hpc->fd[i]);
}
 
-   hpc.total = 0;
-   hpc.idx = -1;
-   hpc.len = 0;
+   hpc->total = 0;
+   hpc->idx = -1;
+   hpc->len = 0;
 }
 
 static int hp_get_cached(uint64_t len)
 {
int fd;
 
-   if (hpc.idx < 0 || len != hpc.len)
+   if (NULL == hpc || hpc->idx < 0 || len != hpc->len)
return -1;
 
-   fd = hpc.fd[hpc.idx];
-   hpc.fd[hpc.idx--] = -1;
+   fd = hpc->fd[hpc->idx];
+   hpc->fd[hpc->idx--] = -1;
 
return fd;
 }
 
 static int hp_put_cached(int fd)
 {
-   if (odp_unlikely(++hpc.idx >= hpc.total)

[lng-odp] [PATCH v4 0/2] linux-gen: ishm: implement huge page cache

2018-09-10 Thread Github ODP bot
With this patch, ODP will pre-allocate several huge pages at init
time. When memory is to be mapped into a huge page, one that was
pre-allocated will be used, if available, this way ODP won't have to
trap into the kernel to allocate huge pages.
The idea with this implementation is to trick ishm into thinking that
a file descriptor where to map the memory was provided, this way it
it won't try to allocate one itself. This file descriptor is one of
those previously allocated at init time. When the system is done with
this file descriptor, instead of closing it, it is put back into the
list of available huge pages, ready to be reused.
A collateral effect of this patch is that memory is not zeroed out
when it is reused.
WARNING: This patch will not work when using process mode threads.
For several reasons, this may not work when using ODP_ISHM_SINGLE_VA
either, so for this case the list of pre-allocated files is not used.
This patch should mitigate, if not solve, bug #3774:
https://bugs.linaro.org/show_bug.cgi?id=3774
To pre-allocate huge pages, define the environment variable
ODP_HP_CACHE, and possibly set it to the number of huge pages that
should be pre-allocated, setting it to -1 will reserve up to 32 huge
pages, which is currently a hard-coded limit.
example usage:
ODP_HP_CACHE=-1 ./test/validation/api/shmem/shmem_main
Signed-off-by: Josep Puigdemont josep.puigdem...@linaro.org

github
/** Email created from pull request 685 (joseppc:fix/cache_huge_pages)
 ** https://github.com/Linaro/odp/pull/685
 ** Patch: https://github.com/Linaro/odp/pull/685.patch
 ** Base sha: 6d48d7f7f684b8aa87f7eb4f922d45be345ed771
 ** Merge commit sha: 71e95a3d2ddb0df6ba6f0e3a62bf6aa98afbb035
 **/
/github

checkpatch.pl
total: 0 errors, 0 warnings, 0 checks, 309 lines checked


to_send-p-000.patch has no obvious style problems and is ready for submission.
total: 0 errors, 0 warnings, 0 checks, 142 lines checked


to_send-p-001.patch has no obvious style problems and is ready for submission.
/checkpatch.pl


[lng-odp] [PATCH v1 0/1] linux-gen: ishm: don't initialize anonymous mappings

2018-09-10 Thread Github ODP bot
Anonymous mappings are automatically initalized to zero.
>From the mmap manual: "MAP_ANONYMOUS: The mapping is not backed by any
file; its contents are initialized to zero."
Signed-off-by: Josep Puigdemont josep.puigdem...@linaro.org

github
/** Email created from pull request 695 (joseppc:fix/no-init-mmap-anonymous)
 ** https://github.com/Linaro/odp/pull/695
 ** Patch: https://github.com/Linaro/odp/pull/695.patch
 ** Base sha: 6d48d7f7f684b8aa87f7eb4f922d45be345ed771
 ** Merge commit sha: 2287a4ca0a06b738b59a5b1421d0a429df26
 **/
/github

checkpatch.pl
total: 0 errors, 0 warnings, 0 checks, 14 lines checked


to_send-p-000.patch has no obvious style problems and is ready for submission.
/checkpatch.pl


[lng-odp] [PATCH v1 1/1] linux-gen: ishm: don't initialize anonymous mappings

2018-09-10 Thread Github ODP bot
From: Josep Puigdemont 

Anonymous mappings are automatically initalized to zero.
>From the mmap manual: "MAP_ANONYMOUS: The mapping is not backed by any
file; its contents are initialized to zero."

Signed-off-by: Josep Puigdemont 
---
/** Email created from pull request 695 (joseppc:fix/no-init-mmap-anonymous)
 ** https://github.com/Linaro/odp/pull/695
 ** Patch: https://github.com/Linaro/odp/pull/695.patch
 ** Base sha: 6d48d7f7f684b8aa87f7eb4f922d45be345ed771
 ** Merge commit sha: 2287a4ca0a06b738b59a5b1421d0a429df26
 **/
 platform/linux-generic/odp_ishm.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/platform/linux-generic/odp_ishm.c 
b/platform/linux-generic/odp_ishm.c
index 59d1fe534..07ce4d534 100644
--- a/platform/linux-generic/odp_ishm.c
+++ b/platform/linux-generic/odp_ishm.c
@@ -1508,7 +1508,6 @@ int _odp_ishm_init_global(const odp_init_t *init)
goto init_glob_err1;
}
ishm_tbl = addr;
-   memset(ishm_tbl, 0, sizeof(ishm_table_t));
ishm_tbl->dev_seq = 0;
ishm_tbl->odpthread_cnt = 0;
odp_spinlock_init(&ishm_tbl->lock);
@@ -1521,7 +1520,6 @@ int _odp_ishm_init_global(const odp_init_t *init)
goto init_glob_err2;
}
ishm_ftbl = addr;
-   memset(ishm_ftbl, 0, sizeof(ishm_ftable_t));
 
/*
 *reserve the address space for _ODP_ISHM_SINGLE_VA reserved blocks,