diff mbox

[PATCHv2] linux-gen: _ishm: fix normal page fallback

Message ID 1485161277-4743-1-git-send-email-christophe.milard@linaro.org
State Accepted
Commit c14ec3dc896e0dd14d0491f09f81ce09e9d53bc2
Headers show

Commit Message

Christophe Milard Jan. 23, 2017, 8:47 a.m. UTC
Fixing failure due to lack of huge pages.
Fixes: https://bugs.linaro.org/show_bug.cgi?id=2842

Signed-off-by: Christophe Milard <christophe.milard@linaro.org>

---
 platform/linux-generic/_ishm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.7.4

Comments

Maxim Uvarov Jan. 23, 2017, 8:50 a.m. UTC | #1
Bug switched to resolved state with corresponding git hash id for commit or
number of commits.

I will run some tests in arm vm which should catch this.

Maxim.

On 23 January 2017 at 11:47, Christophe Milard <christophe.milard@linaro.org
> wrote:


> Fixing failure due to lack of huge pages.

> Fixes: https://bugs.linaro.org/show_bug.cgi?id=2842

>

> Signed-off-by: Christophe Milard <christophe.milard@linaro.org>

> ---

>  platform/linux-generic/_ishm.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

>

> diff --git a/platform/linux-generic/_ishm.c b/platform/linux-generic/_

> ishm.c

> index f889834..3797f20 100644

> --- a/platform/linux-generic/_ishm.c

> +++ b/platform/linux-generic/_ishm.c

> @@ -547,7 +547,7 @@ static void *do_map(int block_index, uint64_t len,

> uint32_t align,

>                 addr = alloc_fragment(len, block_index, align, &fragment);

>                 if (!addr) {

>                         ODP_ERR("alloc_fragment failed.\n");

> -                       if (new_block->filename[0]) {

> +                       if (!new_block->external_fd) {

>                                 close(*fd);

>                                 *fd = -1;

>                                 delete_file(new_block);

> @@ -562,7 +562,7 @@ static void *do_map(int block_index, uint64_t len,

> uint32_t align,

>         if (mapped_addr == NULL) {

>                 if (flags & _ODP_ISHM_SINGLE_VA)

>                         free_fragment(fragment);

> -               if (new_block->filename[0]) {

> +               if (!new_block->external_fd) {

>                         close(*fd);

>                         *fd = -1;

>                         delete_file(new_block);

> --

> 2.7.4

>

>
Maxim Uvarov Jan. 23, 2017, 4:28 p.m. UTC | #2
On 01/23/17 11:47, Christophe Milard wrote:
> Fixing failure due to lack of huge pages.

> Fixes: https://bugs.linaro.org/show_bug.cgi?id=2842

> 

> Signed-off-by: Christophe Milard <christophe.milard@linaro.org>

> ---

>  platform/linux-generic/_ishm.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

> 

> diff --git a/platform/linux-generic/_ishm.c b/platform/linux-generic/_ishm.c

> index f889834..3797f20 100644

> --- a/platform/linux-generic/_ishm.c

> +++ b/platform/linux-generic/_ishm.c

> @@ -547,7 +547,7 @@ static void *do_map(int block_index, uint64_t len, uint32_t align,

>  		addr = alloc_fragment(len, block_index, align, &fragment);

>  		if (!addr) {

>  			ODP_ERR("alloc_fragment failed.\n");

> -			if (new_block->filename[0]) {

> +			if (!new_block->external_fd) {

>  				close(*fd);

>  				*fd = -1;

>  				delete_file(new_block);

> @@ -562,7 +562,7 @@ static void *do_map(int block_index, uint64_t len, uint32_t align,

>  	if (mapped_addr == NULL) {

>  		if (flags & _ODP_ISHM_SINGLE_VA)

>  			free_fragment(fragment);

> -		if (new_block->filename[0]) {

> +		if (!new_block->external_fd) {

>  			close(*fd);

>  			*fd = -1;

>  			delete_file(new_block);

> 


default setting for:
Ubuntu 16.04.1 LTS

f4df4d24c6 linux-gen: _ishm: fix normal page fallback
03aafc3 helper: remove dependence on test dir
19a457a helper: move thread implementation under platform
7025b1b helper: cleanup Linux rename to thread
0f18e31 configure: use helper configure.m4
3875d6e update API version number from v1.12.0.0 to v1.13.0.024c6
linux-gen: _ishm: fix normal page fallback
03aafc3 helper: remove dependence on test dir
19a457a helper: move thread implementation under platform
7025b1b helper: cleanup Linux rename to thread
0f18e31 configure: use helper configure.m4
3875d6e update API version number from v1.12.0.0 to v1.13.0.0

root@ubuntu:/opt/odp.git# cat
./test/common_plat/performance/odp_pktio_perf.log
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishm.c:859:_odp_ishm_reserve():No huge pages, fall back to normal
pages. check: /proc/sys/vm/nr_hugepages.
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
FAIL odp_pktio_perf (exit status: 135)
root@ubuntu:/opt/odp.git# free
              total        used        free      shared  buff/cache
available
Mem:        8104960       85984     6965088        8772     1053888
7789072
Swap:             0           0           0
root@ubuntu:/opt/odp.git# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs
(rw,nosuid,relatime,size=4040932k,nr_inodes=1010233,mode=755)
devpts on /dev/pts type devpts
(rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=810496k,mode=755)
/dev/vdb1 on / type ext4 (rw,relatime,data=ordered)
securityfs on /sys/kernel/security type securityfs
(rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup
(rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs
(rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/pids type cgroup
(rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/memory type cgroup
(rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup
(rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/cpuset type cgroup
(rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/blkio type cgroup
(rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup
(rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup
(rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/hugetlb type cgroup
(rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/freezer type cgroup
(rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup
(rw,nosuid,nodev,noexec,relatime,devices)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs
(rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/vdb15 on /boot/efi type vfat
(rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
lxcfs on /var/lib/lxcfs type fuse.lxcfs
(rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
tmpfs on /run/user/1001 type tmpfs
(rw,nosuid,nodev,relatime,size=810496k,mode=700,uid=1001,gid=1001)
root@ubuntu:/opt/odp.git#
Christophe Milard Jan. 24, 2017, 7:25 a.m. UTC | #3
Hi Maxim.

I cannot  reproduce that, and your trace seems to indicate the
fallback to normal pages does work.
I do see the test failure in you log, though, but cannot relate it to
ishm (or to anything else). Can you provide me with more log/ help me
debug?

Christophe

My run seem to work:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial

root@erachmi-ericsson:~/linaro/ODP/odp#
test/common_plat/performance/odp_pktio_perf
odp_system_info.c:97:default_huge_page_size():defaut hp size is 2048 kB
odp_system_info.c:97:default_huge_page_size():defaut hp size is 2048 kB
_ishm.c:1385:_odp_ishm_init_global():Huge pages mount point is: /dev/hugepages
_ishmphy.c:63:_odp_ishmphy_book_va():VA Reserved: 0x7f357c7b8000, len=0x20200000
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=0, fd=3
_fdserver.c:461:handle_request():storing {ctx=1, key=0}->fd=5
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_ishm.c:859:_odp_ishm_reserve():No huge pages, fall back to normal
pages. check: /proc/sys/vm/nr_hugepages.
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=1, fd=4
_fdserver.c:461:handle_request():storing {ctx=1, key=1}->fd=6
odp_pool.c:88:odp_pool_init_global():
Pool init global
odp_pool.c:89:odp_pool_init_global():  odp_buffer_hdr_t size 352
odp_pool.c:90:odp_pool_init_global():  odp_packet_hdr_t size 488
odp_pool.c:91:odp_pool_init_global():
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
odp_queue.c:111:odp_queue_init_global():Queue init ...
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=2, fd=5
_fdserver.c:461:handle_request():storing {ctx=1, key=2}->fd=7
odp_queue.c:132:odp_queue_init_global():done
odp_queue.c:133:odp_queue_init_global():Queue init global
odp_queue.c:135:odp_queue_init_global():  struct queue_entry_s size 320
odp_queue.c:137:odp_queue_init_global():  queue_entry_t size        320
odp_queue.c:138:odp_queue_init_global():
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
odp_schedule.c:252:schedule_init_global():Schedule init ...
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=3, fd=6
_fdserver.c:461:handle_request():storing {ctx=1, key=3}->fd=8
odp_schedule.c:302:schedule_init_global():done
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=4, fd=7
_fdserver.c:461:handle_request():storing {ctx=1, key=4}->fd=9
 PKTIO: initialized loop interface.
 PKTIO: initialized pcap interface.
 PKTIO: initialized socket mmap, use export
ODP_PKTIO_DISABLE_SOCKET_MMAP=1 to disable.
 PKTIO: initialized socket mmsg,use export
ODP_PKTIO_DISABLE_SOCKET_MMSG=1 to disable.
odp_timer.c:1002:odp_timer_init_global():Using lock-less timer implementation
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=5, fd=8
_fdserver.c:461:handle_request():storing {ctx=1, key=5}->fd=10
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=6, fd=9
_fdserver.c:461:handle_request():storing {ctx=1, key=6}->fd=11
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=7, fd=10
_fdserver.c:461:handle_request():storing {ctx=1, key=7}->fd=12
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=8, fd=11
_fdserver.c:461:handle_request():storing {ctx=1, key=8}->fd=13
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=9, fd=12
_fdserver.c:461:handle_request():storing {ctx=1, key=9}->fd=14
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=10, fd=13
_fdserver.c:461:handle_request():storing {ctx=1, key=10}->fd=15
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=11, fd=14
_fdserver.c:461:handle_request():storing {ctx=1, key=11}->fd=16
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=12, fd=15
_fdserver.c:461:handle_request():storing {ctx=1, key=12}->fd=17
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=13, fd=16
_fdserver.c:461:handle_request():storing {ctx=1, key=13}->fd=18
_ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory
_fdserver.c:277:_odp_fdserver_register_fd():FD client register:
pid=1070 key=14, fd=17
_fdserver.c:461:handle_request():storing {ctx=1, key=14}->fd=19
odp_packet_io.c:216:setup_pktio_entry():loop uses loop
Starting test with params:
Transmit workers:     2
Receive workers:       2
Duration (seconds):   1
Transmit batch length: 32
Receive batch length: 32
Packet receive method: schedule
Interface(s):         loop
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
PPS: 1000000  Succeeded: Yes  TxPkts: 1000000  RxPkts: 1000000
DropPkts: 0
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
PPS: 2000000  Succeeded: Yes  TxPkts: 2000000  RxPkts: 2000000
DropPkts: 0
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
PPS: 4000000  Succeeded: No   TxPkts: 3917600  RxPkts: 3917600
DropPkts: 0
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
PPS: 3000000  Succeeded: No   TxPkts: 2919904  RxPkts: 2919904
DropPkts: 0
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
PPS: 2500000  Succeeded: Yes  TxPkts: 2500032  RxPkts: 2500032
DropPkts: 0
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
PPS: 2750000  Succeeded: Yes  TxPkts: 2750016  RxPkts: 2750016
DropPkts: 0
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
PPS: 2875000  Succeeded: Yes  TxPkts: 2875008  RxPkts: 2875008
DropPkts: 0
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
linux.c:271:odpthread_run_start_routine():helper: ODP worker thread
started as linux pthread. (pid=1070)
PPS: 2937500  Succeeded: Yes  TxPkts: 2937536  RxPkts: 2937536
DropPkts: 0
Maximum packet rate: 2937500 PPS (1030 Mbps)
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=14
_fdserver.c:515:handle_request():drop {ctx=1, key=14}->fd=19
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=13
_fdserver.c:515:handle_request():drop {ctx=1, key=13}->fd=18
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=12
_fdserver.c:515:handle_request():drop {ctx=1, key=12}->fd=17
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=11
_fdserver.c:515:handle_request():drop {ctx=1, key=11}->fd=16
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=8
_fdserver.c:515:handle_request():drop {ctx=1, key=8}->fd=13
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=9
_fdserver.c:515:handle_request():drop {ctx=1, key=9}->fd=14
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=10
_fdserver.c:515:handle_request():drop {ctx=1, key=10}->fd=15
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=6
_fdserver.c:515:handle_request():drop {ctx=1, key=6}->fd=11
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=7
_fdserver.c:515:handle_request():drop {ctx=1, key=7}->fd=12
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=5
_fdserver.c:515:handle_request():drop {ctx=1, key=5}->fd=10
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=4
_fdserver.c:515:handle_request():drop {ctx=1, key=4}->fd=9
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=3
_fdserver.c:515:handle_request():drop {ctx=1, key=3}->fd=8
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=2
_fdserver.c:515:handle_request():drop {ctx=1, key=2}->fd=7
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=1
_fdserver.c:515:handle_request():drop {ctx=1, key=1}->fd=6
_fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:
pid=1070 key=0
_fdserver.c:515:handle_request():drop {ctx=1, key=0}->fd=5
_fdserver.c:409:stop_server():FD sending server stop request
_fdserver.c:531:handle_request():Stoping FD server
root@erachmi-ericsson:~/linaro/ODP/odp#

On 23 January 2017 at 17:28, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:
> On 01/23/17 11:47, Christophe Milard wrote:

>> Fixing failure due to lack of huge pages.

>> Fixes: https://bugs.linaro.org/show_bug.cgi?id=2842

>>

>> Signed-off-by: Christophe Milard <christophe.milard@linaro.org>

>> ---

>>  platform/linux-generic/_ishm.c | 4 ++--

>>  1 file changed, 2 insertions(+), 2 deletions(-)

>>

>> diff --git a/platform/linux-generic/_ishm.c b/platform/linux-generic/_ishm.c

>> index f889834..3797f20 100644

>> --- a/platform/linux-generic/_ishm.c

>> +++ b/platform/linux-generic/_ishm.c

>> @@ -547,7 +547,7 @@ static void *do_map(int block_index, uint64_t len, uint32_t align,

>>               addr = alloc_fragment(len, block_index, align, &fragment);

>>               if (!addr) {

>>                       ODP_ERR("alloc_fragment failed.\n");

>> -                     if (new_block->filename[0]) {

>> +                     if (!new_block->external_fd) {

>>                               close(*fd);

>>                               *fd = -1;

>>                               delete_file(new_block);

>> @@ -562,7 +562,7 @@ static void *do_map(int block_index, uint64_t len, uint32_t align,

>>       if (mapped_addr == NULL) {

>>               if (flags & _ODP_ISHM_SINGLE_VA)

>>                       free_fragment(fragment);

>> -             if (new_block->filename[0]) {

>> +             if (!new_block->external_fd) {

>>                       close(*fd);

>>                       *fd = -1;

>>                       delete_file(new_block);

>>

>

> default setting for:

> Ubuntu 16.04.1 LTS

>

> f4df4d24c6 linux-gen: _ishm: fix normal page fallback

> 03aafc3 helper: remove dependence on test dir

> 19a457a helper: move thread implementation under platform

> 7025b1b helper: cleanup Linux rename to thread

> 0f18e31 configure: use helper configure.m4

> 3875d6e update API version number from v1.12.0.0 to v1.13.0.024c6

> linux-gen: _ishm: fix normal page fallback

> 03aafc3 helper: remove dependence on test dir

> 19a457a helper: move thread implementation under platform

> 7025b1b helper: cleanup Linux rename to thread

> 0f18e31 configure: use helper configure.m4

> 3875d6e update API version number from v1.12.0.0 to v1.13.0.0

>

> root@ubuntu:/opt/odp.git# cat

> ./test/common_plat/performance/odp_pktio_perf.log

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishm.c:859:_odp_ishm_reserve():No huge pages, fall back to normal

> pages. check: /proc/sys/vm/nr_hugepages.

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> FAIL odp_pktio_perf (exit status: 135)

> root@ubuntu:/opt/odp.git# free

>               total        used        free      shared  buff/cache

> available

> Mem:        8104960       85984     6965088        8772     1053888

> 7789072

> Swap:             0           0           0

> root@ubuntu:/opt/odp.git# mount

> sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

> proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

> udev on /dev type devtmpfs

> (rw,nosuid,relatime,size=4040932k,nr_inodes=1010233,mode=755)

> devpts on /dev/pts type devpts

> (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)

> tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=810496k,mode=755)

> /dev/vdb1 on / type ext4 (rw,relatime,data=ordered)

> securityfs on /sys/kernel/security type securityfs

> (rw,nosuid,nodev,noexec,relatime)

> tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)

> tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)

> tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)

> cgroup on /sys/fs/cgroup/systemd type cgroup

> (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)

> pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)

> efivarfs on /sys/firmware/efi/efivars type efivarfs

> (rw,nosuid,nodev,noexec,relatime)

> cgroup on /sys/fs/cgroup/pids type cgroup

> (rw,nosuid,nodev,noexec,relatime,pids)

> cgroup on /sys/fs/cgroup/memory type cgroup

> (rw,nosuid,nodev,noexec,relatime,memory)

> cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup

> (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)

> cgroup on /sys/fs/cgroup/cpuset type cgroup

> (rw,nosuid,nodev,noexec,relatime,cpuset)

> cgroup on /sys/fs/cgroup/blkio type cgroup

> (rw,nosuid,nodev,noexec,relatime,blkio)

> cgroup on /sys/fs/cgroup/perf_event type cgroup

> (rw,nosuid,nodev,noexec,relatime,perf_event)

> cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup

> (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)

> cgroup on /sys/fs/cgroup/hugetlb type cgroup

> (rw,nosuid,nodev,noexec,relatime,hugetlb)

> cgroup on /sys/fs/cgroup/freezer type cgroup

> (rw,nosuid,nodev,noexec,relatime,freezer)

> cgroup on /sys/fs/cgroup/devices type cgroup

> (rw,nosuid,nodev,noexec,relatime,devices)

> systemd-1 on /proc/sys/fs/binfmt_misc type autofs

> (rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)

> debugfs on /sys/kernel/debug type debugfs (rw,relatime)

> hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)

> mqueue on /dev/mqueue type mqueue (rw,relatime)

> fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)

> /dev/vdb15 on /boot/efi type vfat

> (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

> lxcfs on /var/lib/lxcfs type fuse.lxcfs

> (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

> tmpfs on /run/user/1001 type tmpfs

> (rw,nosuid,nodev,relatime,size=810496k,mode=700,uid=1001,gid=1001)

> root@ubuntu:/opt/odp.git#

>
Maxim Uvarov Jan. 25, 2017, 3:17 p.m. UTC | #4
this patch is merged.

issue bellow (which I saw) is related to not enough disk space for
memory mapped file. I will create separate bug for that to list
it for history.

Maxim.

On 01/24/17 10:25, Christophe Milard wrote:
> Hi Maxim.

> 

> I cannot  reproduce that, and your trace seems to indicate the

> fallback to normal pages does work.

> I do see the test failure in you log, though, but cannot relate it to

> ishm (or to anything else). Can you provide me with more log/ help me

> debug?

> 

> Christophe

> 

> My run seem to work:

> Distributor ID: Ubuntu

> Description: Ubuntu 16.04.1 LTS

> Release: 16.04

> Codename: xenial

> 

> root@erachmi-ericsson:~/linaro/ODP/odp#

> test/common_plat/performance/odp_pktio_perf

> odp_system_info.c:97:default_huge_page_size():defaut hp size is 2048 kB

> odp_system_info.c:97:default_huge_page_size():defaut hp size is 2048 kB

> _ishm.c:1385:_odp_ishm_init_global():Huge pages mount point is: /dev/hugepages

> _ishmphy.c:63:_odp_ishmphy_book_va():VA Reserved: 0x7f357c7b8000, len=0x20200000

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=0, fd=3

> _fdserver.c:461:handle_request():storing {ctx=1, key=0}->fd=5

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _ishm.c:859:_odp_ishm_reserve():No huge pages, fall back to normal

> pages. check: /proc/sys/vm/nr_hugepages.

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=1, fd=4

> _fdserver.c:461:handle_request():storing {ctx=1, key=1}->fd=6

> odp_pool.c:88:odp_pool_init_global():

> Pool init global

> odp_pool.c:89:odp_pool_init_global():  odp_buffer_hdr_t size 352

> odp_pool.c:90:odp_pool_init_global():  odp_packet_hdr_t size 488

> odp_pool.c:91:odp_pool_init_global():

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> odp_queue.c:111:odp_queue_init_global():Queue init ...

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=2, fd=5

> _fdserver.c:461:handle_request():storing {ctx=1, key=2}->fd=7

> odp_queue.c:132:odp_queue_init_global():done

> odp_queue.c:133:odp_queue_init_global():Queue init global

> odp_queue.c:135:odp_queue_init_global():  struct queue_entry_s size 320

> odp_queue.c:137:odp_queue_init_global():  queue_entry_t size        320

> odp_queue.c:138:odp_queue_init_global():

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> odp_schedule.c:252:schedule_init_global():Schedule init ...

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=3, fd=6

> _fdserver.c:461:handle_request():storing {ctx=1, key=3}->fd=8

> odp_schedule.c:302:schedule_init_global():done

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=4, fd=7

> _fdserver.c:461:handle_request():storing {ctx=1, key=4}->fd=9

>  PKTIO: initialized loop interface.

>  PKTIO: initialized pcap interface.

>  PKTIO: initialized socket mmap, use export

> ODP_PKTIO_DISABLE_SOCKET_MMAP=1 to disable.

>  PKTIO: initialized socket mmsg,use export

> ODP_PKTIO_DISABLE_SOCKET_MMSG=1 to disable.

> odp_timer.c:1002:odp_timer_init_global():Using lock-less timer implementation

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=5, fd=8

> _fdserver.c:461:handle_request():storing {ctx=1, key=5}->fd=10

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=6, fd=9

> _fdserver.c:461:handle_request():storing {ctx=1, key=6}->fd=11

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=7, fd=10

> _fdserver.c:461:handle_request():storing {ctx=1, key=7}->fd=12

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=8, fd=11

> _fdserver.c:461:handle_request():storing {ctx=1, key=8}->fd=13

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=9, fd=12

> _fdserver.c:461:handle_request():storing {ctx=1, key=9}->fd=14

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=10, fd=13

> _fdserver.c:461:handle_request():storing {ctx=1, key=10}->fd=15

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=11, fd=14

> _fdserver.c:461:handle_request():storing {ctx=1, key=11}->fd=16

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=12, fd=15

> _fdserver.c:461:handle_request():storing {ctx=1, key=12}->fd=17

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=13, fd=16

> _fdserver.c:461:handle_request():storing {ctx=1, key=13}->fd=18

> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

> _fdserver.c:277:_odp_fdserver_register_fd():FD client register:

> pid=1070 key=14, fd=17

> _fdserver.c:461:handle_request():storing {ctx=1, key=14}->fd=19

> odp_packet_io.c:216:setup_pktio_entry():loop uses loop

> Starting test with params:

> Transmit workers:     2

> Receive workers:       2

> Duration (seconds):   1

> Transmit batch length: 32

> Receive batch length: 32

> Packet receive method: schedule

> Interface(s):         loop

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> PPS: 1000000  Succeeded: Yes  TxPkts: 1000000  RxPkts: 1000000

> DropPkts: 0

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> PPS: 2000000  Succeeded: Yes  TxPkts: 2000000  RxPkts: 2000000

> DropPkts: 0

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> PPS: 4000000  Succeeded: No   TxPkts: 3917600  RxPkts: 3917600

> DropPkts: 0

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> PPS: 3000000  Succeeded: No   TxPkts: 2919904  RxPkts: 2919904

> DropPkts: 0

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> PPS: 2500000  Succeeded: Yes  TxPkts: 2500032  RxPkts: 2500032

> DropPkts: 0

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> PPS: 2750000  Succeeded: Yes  TxPkts: 2750016  RxPkts: 2750016

> DropPkts: 0

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> PPS: 2875000  Succeeded: Yes  TxPkts: 2875008  RxPkts: 2875008

> DropPkts: 0

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> linux.c:271:odpthread_run_start_routine():helper: ODP worker thread

> started as linux pthread. (pid=1070)

> PPS: 2937500  Succeeded: Yes  TxPkts: 2937536  RxPkts: 2937536

> DropPkts: 0

> Maximum packet rate: 2937500 PPS (1030 Mbps)

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=14

> _fdserver.c:515:handle_request():drop {ctx=1, key=14}->fd=19

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=13

> _fdserver.c:515:handle_request():drop {ctx=1, key=13}->fd=18

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=12

> _fdserver.c:515:handle_request():drop {ctx=1, key=12}->fd=17

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=11

> _fdserver.c:515:handle_request():drop {ctx=1, key=11}->fd=16

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=8

> _fdserver.c:515:handle_request():drop {ctx=1, key=8}->fd=13

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=9

> _fdserver.c:515:handle_request():drop {ctx=1, key=9}->fd=14

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=10

> _fdserver.c:515:handle_request():drop {ctx=1, key=10}->fd=15

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=6

> _fdserver.c:515:handle_request():drop {ctx=1, key=6}->fd=11

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=7

> _fdserver.c:515:handle_request():drop {ctx=1, key=7}->fd=12

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=5

> _fdserver.c:515:handle_request():drop {ctx=1, key=5}->fd=10

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=4

> _fdserver.c:515:handle_request():drop {ctx=1, key=4}->fd=9

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=3

> _fdserver.c:515:handle_request():drop {ctx=1, key=3}->fd=8

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=2

> _fdserver.c:515:handle_request():drop {ctx=1, key=2}->fd=7

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=1

> _fdserver.c:515:handle_request():drop {ctx=1, key=1}->fd=6

> _fdserver.c:323:_odp_fdserver_deregister_fd():FD client deregister:

> pid=1070 key=0

> _fdserver.c:515:handle_request():drop {ctx=1, key=0}->fd=5

> _fdserver.c:409:stop_server():FD sending server stop request

> _fdserver.c:531:handle_request():Stoping FD server

> root@erachmi-ericsson:~/linaro/ODP/odp#

> 

> On 23 January 2017 at 17:28, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:

>> On 01/23/17 11:47, Christophe Milard wrote:

>>> Fixing failure due to lack of huge pages.

>>> Fixes: https://bugs.linaro.org/show_bug.cgi?id=2842

>>>

>>> Signed-off-by: Christophe Milard <christophe.milard@linaro.org>

>>> ---

>>>  platform/linux-generic/_ishm.c | 4 ++--

>>>  1 file changed, 2 insertions(+), 2 deletions(-)

>>>

>>> diff --git a/platform/linux-generic/_ishm.c b/platform/linux-generic/_ishm.c

>>> index f889834..3797f20 100644

>>> --- a/platform/linux-generic/_ishm.c

>>> +++ b/platform/linux-generic/_ishm.c

>>> @@ -547,7 +547,7 @@ static void *do_map(int block_index, uint64_t len, uint32_t align,

>>>               addr = alloc_fragment(len, block_index, align, &fragment);

>>>               if (!addr) {

>>>                       ODP_ERR("alloc_fragment failed.\n");

>>> -                     if (new_block->filename[0]) {

>>> +                     if (!new_block->external_fd) {

>>>                               close(*fd);

>>>                               *fd = -1;

>>>                               delete_file(new_block);

>>> @@ -562,7 +562,7 @@ static void *do_map(int block_index, uint64_t len, uint32_t align,

>>>       if (mapped_addr == NULL) {

>>>               if (flags & _ODP_ISHM_SINGLE_VA)

>>>                       free_fragment(fragment);

>>> -             if (new_block->filename[0]) {

>>> +             if (!new_block->external_fd) {

>>>                       close(*fd);

>>>                       *fd = -1;

>>>                       delete_file(new_block);

>>>

>>

>> default setting for:

>> Ubuntu 16.04.1 LTS

>>

>> f4df4d24c6 linux-gen: _ishm: fix normal page fallback

>> 03aafc3 helper: remove dependence on test dir

>> 19a457a helper: move thread implementation under platform

>> 7025b1b helper: cleanup Linux rename to thread

>> 0f18e31 configure: use helper configure.m4

>> 3875d6e update API version number from v1.12.0.0 to v1.13.0.024c6

>> linux-gen: _ishm: fix normal page fallback

>> 03aafc3 helper: remove dependence on test dir

>> 19a457a helper: move thread implementation under platform

>> 7025b1b helper: cleanup Linux rename to thread

>> 0f18e31 configure: use helper configure.m4

>> 3875d6e update API version number from v1.12.0.0 to v1.13.0.0

>>

>> root@ubuntu:/opt/odp.git# cat

>> ./test/common_plat/performance/odp_pktio_perf.log

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishm.c:859:_odp_ishm_reserve():No huge pages, fall back to normal

>> pages. check: /proc/sys/vm/nr_hugepages.

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> _ishmphy.c:128:_odp_ishmphy_map():mmap failed:Cannot allocate memory

>> FAIL odp_pktio_perf (exit status: 135)

>> root@ubuntu:/opt/odp.git# free

>>               total        used        free      shared  buff/cache

>> available

>> Mem:        8104960       85984     6965088        8772     1053888

>> 7789072

>> Swap:             0           0           0

>> root@ubuntu:/opt/odp.git# mount

>> sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

>> proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

>> udev on /dev type devtmpfs

>> (rw,nosuid,relatime,size=4040932k,nr_inodes=1010233,mode=755)

>> devpts on /dev/pts type devpts

>> (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)

>> tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=810496k,mode=755)

>> /dev/vdb1 on / type ext4 (rw,relatime,data=ordered)

>> securityfs on /sys/kernel/security type securityfs

>> (rw,nosuid,nodev,noexec,relatime)

>> tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)

>> tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)

>> tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)

>> cgroup on /sys/fs/cgroup/systemd type cgroup

>> (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)

>> pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)

>> efivarfs on /sys/firmware/efi/efivars type efivarfs

>> (rw,nosuid,nodev,noexec,relatime)

>> cgroup on /sys/fs/cgroup/pids type cgroup

>> (rw,nosuid,nodev,noexec,relatime,pids)

>> cgroup on /sys/fs/cgroup/memory type cgroup

>> (rw,nosuid,nodev,noexec,relatime,memory)

>> cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup

>> (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)

>> cgroup on /sys/fs/cgroup/cpuset type cgroup

>> (rw,nosuid,nodev,noexec,relatime,cpuset)

>> cgroup on /sys/fs/cgroup/blkio type cgroup

>> (rw,nosuid,nodev,noexec,relatime,blkio)

>> cgroup on /sys/fs/cgroup/perf_event type cgroup

>> (rw,nosuid,nodev,noexec,relatime,perf_event)

>> cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup

>> (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)

>> cgroup on /sys/fs/cgroup/hugetlb type cgroup

>> (rw,nosuid,nodev,noexec,relatime,hugetlb)

>> cgroup on /sys/fs/cgroup/freezer type cgroup

>> (rw,nosuid,nodev,noexec,relatime,freezer)

>> cgroup on /sys/fs/cgroup/devices type cgroup

>> (rw,nosuid,nodev,noexec,relatime,devices)

>> systemd-1 on /proc/sys/fs/binfmt_misc type autofs

>> (rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)

>> debugfs on /sys/kernel/debug type debugfs (rw,relatime)

>> hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)

>> mqueue on /dev/mqueue type mqueue (rw,relatime)

>> fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)

>> /dev/vdb15 on /boot/efi type vfat

>> (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

>> lxcfs on /var/lib/lxcfs type fuse.lxcfs

>> (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

>> tmpfs on /run/user/1001 type tmpfs

>> (rw,nosuid,nodev,relatime,size=810496k,mode=700,uid=1001,gid=1001)

>> root@ubuntu:/opt/odp.git#

>>
diff mbox

Patch

diff --git a/platform/linux-generic/_ishm.c b/platform/linux-generic/_ishm.c
index f889834..3797f20 100644
--- a/platform/linux-generic/_ishm.c
+++ b/platform/linux-generic/_ishm.c
@@ -547,7 +547,7 @@  static void *do_map(int block_index, uint64_t len, uint32_t align,
 		addr = alloc_fragment(len, block_index, align, &fragment);
 		if (!addr) {
 			ODP_ERR("alloc_fragment failed.\n");
-			if (new_block->filename[0]) {
+			if (!new_block->external_fd) {
 				close(*fd);
 				*fd = -1;
 				delete_file(new_block);
@@ -562,7 +562,7 @@  static void *do_map(int block_index, uint64_t len, uint32_t align,
 	if (mapped_addr == NULL) {
 		if (flags & _ODP_ISHM_SINGLE_VA)
 			free_fragment(fragment);
-		if (new_block->filename[0]) {
+		if (!new_block->external_fd) {
 			close(*fd);
 			*fd = -1;
 			delete_file(new_block);