In my case there is 1 Gb huge page in:
/sys/kernel/mm/hugepages
and odp_shm_reserve() just rounds all allocations to 1 GB:
#ifdef MAP_HUGETLB
huge_sz = odp_sys_huge_page_size(); <--- 1 GB here
need_huge_page = (huge_sz && alloc_size > page_sz);
/* munmap for huge pages requires sizes round up by page */
alloc_hp_size = (size + align + (huge_sz - 1)) & (-huge_sz);
#endif
Do you see the same thing?
Maxim.
On 05/10/16 15:07, nousi wrote:
Hi Maxim,
Thanks for your support.
mamp return below error;
"mmap: Cannot allocate memory"
"mount -t hugetlbfs none /mnt/hugetlbfs" also does not help.
Huge page allocation success in below two calls after that it fails.
1) odp_thread_globals
2) odp_buffer_pools
Please have a look at the console logs below.
odp_shared_memory.c:299:odp_shm_reserve(): odp_thread_globals: huge page
allocation success !
odp_shared_memory.c:299:odp_shm_reserve(): odp_buffer_pools: huge page
allocation success !
odp_pool.c:104:odp_pool_init_global():
Pool init global
odp_pool.c:105:odp_pool_init_global(): pool_entry_s size 8512
odp_pool.c:106:odp_pool_init_global(): pool_entry_t size 8512
odp_pool.c:107:odp_pool_init_global(): odp_buffer_hdr_t size 216
odp_pool.c:108:odp_pool_init_global():
*mmap: Cannot allocate memory*
odp_queue.c:130:odp_queue_init_global():Queue init ...
odp_shared_memory.c:297:odp_shm_reserve(): odp_queues:
No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
Recently I Moved from Ubuntu 14.04 to 15.10, in Ubuntu 14.04 I had run
calssfier example without any huge page allocation error.
On Tue, May 10, 2016 at 3:50 PM, Maxim Uvarov <maxim.uva...@linaro.org
<mailto:maxim.uva...@linaro.org>> wrote:
Does:
mount -t hugetlbfs none /mnt/hugetlbfs
help?
Maxim.
On 10 May 2016 at 13:16, Maxim Uvarov <maxim.uva...@linaro.org
<mailto:maxim.uva...@linaro.org>> wrote:
looks like you have enough free HP. Which error returns
mmap() on try with HP?
On 10 May 2016 at 11:57, nousi <bnousi...@gmail.com
<mailto:bnousi...@gmail.com>> wrote:
linaro@ubuntu-15-10:~$ cat /proc/sys/vm/nr_hugepages
1024
linaro@ubuntu-15-10:~$
linaro@ubuntu-15-10:~$ cat /proc/meminfo
MemTotal: 8061836 kB
MemFree: 470516 kB
MemAvailable: 1901932 kB
Buffers: 92600 kB
Cached: 1939696 kB
SwapCached: 7516 kB
Active: 3238960 kB
Inactive: 1804492 kB
Active(anon): 2712440 kB
Inactive(anon): 1069492 kB
Active(file): 526520 kB
Inactive(file): 735000 kB
Unevictable: 76 kB
Mlocked: 76 kB
SwapTotal: 16547836 kB
SwapFree: 16370160 kB
Dirty: 19816 kB
Writeback: 0 kB
AnonPages: 3004784 kB
Mapped: 679960 kB
Shmem: 770776 kB
Slab: 264692 kB
SReclaimable: 212172 kB
SUnreclaim: 52520 kB
KernelStack: 11952 kB
PageTables: 65780 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 19530176 kB
Committed_AS: 11165432 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 410416 kB
VmallocChunk: 34358947836 kB
HardwareCorrupted: 0 kB
AnonHugePages: 583680 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 1024
HugePages_Free: 1022
HugePages_Rsvd: 1022
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 234400 kB
DirectMap2M: 6991872 kB
DirectMap1G: 2097152 kB
linaro@ubuntu-15-10:~$
On Tue, May 10, 2016 at 12:38 PM, Maxim Uvarov
<maxim.uva...@linaro.org <mailto:maxim.uva...@linaro.org>>
wrote:
Please put output for:
cat /proc/meminfo
cat /proc/sys/vm/nr_hugepages
Thank you,
Maxim.
On 10 May 2016 at 08:36, nousi <bnousi...@gmail.com
<mailto:bnousi...@gmail.com>> wrote:
mmap is failing in "odp_shm_reserve" function
(odp_queue_init_global() ---> odp_shm_reserve()
---> odp_shm_reserve())
debug logs:
root@ubuntu-15-10:/home/linaro/linaro/odp/example/classifier#
./odp_classifier -i eno1 -m 0 -p
"ODP_PMR_SIP_ADDR:192.168.10.11:FFFFFFFF:queue1"
-p "ODP_PMR_SIP_ADDR:10.130.69.0:000000FF:queue2"
-p "ODP_PMR_SIP_ADDR:10.130.68.0:FFFFFE00:queue3"
odp_pool.c:104:odp_pool_init_global():
Pool init global
odp_pool.c:105:odp_pool_init_global():
pool_entry_s size 8512
odp_pool.c:106:odp_pool_init_global():
pool_entry_t size 8512
odp_pool.c:107:odp_pool_init_global():
odp_buffer_hdr_t size 216
odp_pool.c:108:odp_pool_init_global():
odp_queue.c:130:odp_queue_init_global():Queue init
...
odp_shared_memory.c:296:odp_shm_reserve():odp_queues:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_queue.c:154:odp_queue_init_global():done
odp_queue.c:155:odp_queue_init_global():Queue init
global
odp_queue.c:157:odp_queue_init_global(): struct
queue_entry_s size 320
odp_queue.c:159:odp_queue_init_global():
queue_entry_t size 320
odp_queue.c:160:odp_queue_init_global():
odp_schedule.c:145:odp_schedule_init_global():Schedule
init ...
odp_shared_memory.c:296:odp_shm_reserve():odp_scheduler:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_shared_memory.c:296:odp_shm_reserve():odp_sched_pool:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_schedule.c:226:odp_schedule_init_global():done
odp_shared_memory.c:296:odp_shm_reserve():odp_pktio_entries:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_shared_memory.c:296:odp_shm_reserve():crypto_pool:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_shared_memory.c:296:odp_shm_reserve():shm_odp_cos_tbl:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_shared_memory.c:296:odp_shm_reserve():shm_odp_pmr_tbl:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
main :: odp_init_global done!
odp_classifier.c:500:main():main :: odp_init_local
done!
odp_classifier.c:505:main():main ::
odp_shm_reserve done!
ODP system info
---------------
ODP API version: 1.10.0
CPU model: Intel(R) Core(TM) i7-5600U CPU
CPU freq (hz): 2600000000
Cache line size: 64
CPU count: 4
Running ODP appl: "odp_classifier"
-----------------
Using IF:eno1
num worker threads: 2
first CPU: 2
cpu mask: 0xC
odp_shared_memory.c:296:odp_shm_reserve():packet_pool:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_pool.c:759:odp_pool_print():Pool info
odp_pool.c:760:odp_pool_print():---------
odp_pool.c:762:odp_pool_print(): pool 1
odp_pool.c:764:odp_pool_print(): name packet_pool
odp_pool.c:769:odp_pool_print(): pool type packet
odp_pool.c:771:odp_pool_print(): pool storage ODP
managed shm handle 11
odp_pool.c:773:odp_pool_print(): pool status active
odp_pool.c:777:odp_pool_print(): pool opts
segmented, non-zeroized, created
odp_pool.c:778:odp_pool_print(): pool base
0x7f5091aab000
odp_pool.c:780:odp_pool_print(): pool size 1310720
(320 pages)
odp_pool.c:781:odp_pool_print(): pool mdata base
0x7f5091bb5940
odp_pool.c:782:odp_pool_print(): udata size 0
odp_pool.c:783:odp_pool_print(): headroom 66
odp_pool.c:784:odp_pool_print(): tailroom 0
odp_pool.c:791:odp_pool_print(): seg length 1856
requested, 1936 used
odp_pool.c:793:odp_pool_print(): pkt length 1856
requested, 1936 used
odp_pool.c:795:odp_pool_print(): num bufs 564
odp_pool.c:797:odp_pool_print(): bufs available 564
odp_pool.c:798:odp_pool_print(): bufs in use 0
odp_pool.c:799:odp_pool_print(): buf allocs 0
odp_pool.c:800:odp_pool_print(): buf frees 0
odp_pool.c:801:odp_pool_print(): buf empty 0
odp_pool.c:803:odp_pool_print(): blk size 1936
odp_pool.c:805:odp_pool_print(): blks available 564
odp_pool.c:806:odp_pool_print(): blk allocs 0
odp_pool.c:807:odp_pool_print(): blk frees 0
odp_pool.c:808:odp_pool_print(): blk empty 0
odp_pool.c:809:odp_pool_print(): buf high wm
value 282
odp_pool.c:810:odp_pool_print(): buf high wm count 0
odp_pool.c:811:odp_pool_print(): buf low wm
value 141
odp_pool.c:812:odp_pool_print(): buf low wm count 0
odp_pool.c:813:odp_pool_print(): blk high wm
value 282
odp_pool.c:814:odp_pool_print(): blk high wm count 0
odp_pool.c:815:odp_pool_print(): blk low wm
value 141
odp_pool.c:816:odp_pool_print(): blk low wm count 0
main :: odp_pool_print done!
odp_packet_io.c:230:setup_pktio_entry():eno1 uses
socket_mmap
created pktio:01, dev:eno1, queue mode (ATOMIC
queues)
default pktio01
odp_shared_memory.c:296:odp_shm_reserve():
DefaultPool:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_shared_memory.c:296:odp_shm_reserve():
queue1Pool0:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_shared_memory.c:296:odp_shm_reserve():
queue2Pool1:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
odp_shared_memory.c:296:odp_shm_reserve():
queue3Pool2:
:: No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
----------------------------------------
CLASSIFIER EXAMPLE STATISTICS
----------------------------------------
CONFIGURATION
COS VALUE MASK
----------------------------------------
queue1 192.168.10.11 FFFFFFFF
queue2 10.130.69.0 000000FF
queue3 10.130.68.0 FFFFFE00
RECEIVED PACKETS
----------------------------------------
queue1 |queue2 |queue3 |DefaultCos |Total Packets
queue pool |queue pool |queue pool |queue pool |
845 845 |0 0 |0 0 |38 38 |883
On Mon, May 9, 2016 at 9:00 PM, Bill Fischofer
<bill.fischo...@linaro.org
<mailto:bill.fischo...@linaro.org>> wrote:
On Mon, May 9, 2016 at 6:57 AM, nousi
<bnousi...@gmail.com
<mailto:bnousi...@gmail.com>> wrote:
Hi All,
Pleas help me in running ODP classifier
example with huge pages.
In ubuntu 15.10 by default interface
naming as "eno1" and value in
"/proc/sys/vm/nr_hugepages." is 1024.
classifier example program could not able
to use huge pages even though nr_hugepages
value is non zero.
I could able to run the classier example,
but it is not using huge pages.
/*
console log is pasted below for you reference.
*/root@odp/example/classifier#
./odp_classifier -i eno1 -m 0 -p
"ODP_PMR_SIP_ADDR:192.168.10.11:FFFFFFFF:queue1"
-p
"ODP_PMR_SIP_ADDR:10.130.69.0:000000FF:queue2"
-p
"ODP_PMR_SIP_ADDR:10.130.68.0:FFFFFE00:queue3"
odp_pool.c:104:odp_pool_init_global():
Pool init global
odp_pool.c:105:odp_pool_init_global():
pool_entry_s size 8512
odp_pool.c:106:odp_pool_init_global():
pool_entry_t size 8512
odp_pool.c:107:odp_pool_init_global():
odp_buffer_hdr_t size 216
odp_pool.c:108:odp_pool_init_global():
odp_queue.c:130:odp_queue_init_global():Queue
init ...
odp_shared_memory.c:296:odp_shm_reserve():
odp_queues:
No huge pages, fall back to normal pages,
check: /proc/sys/vm/nr_hugepages.
This is an informational message saying that
the linux-generic implementation was unable to
allocate huge pages so it's falling back to
normal pages. I'm not sure why you're seeing
that except that it seems that some
allocations may have been successful (those in
odp_pool.c) while those for queue
initialization were not.
I'll let others who are more expert in this
area chime in with some additional thoughts.
Thanks & Regards,
/B.Nousilal,
/
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
<mailto:lng-odp@lists.linaro.org>
https://lists.linaro.org/mailman/listinfo/lng-odp
--
/Thanks & Regards,
B.Nousilal,
/
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
<mailto:lng-odp@lists.linaro.org>
https://lists.linaro.org/mailman/listinfo/lng-odp
--
/Thanks & Regards,
B.Nousilal,
/
--
/Thanks & Regards,
B.Nousilal,
/
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp