dpdk fails to use 1G huge pages depending on the available mountpoints

Bug #1557532 reported by Christian Ehrhardt 
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
dpdk (Ubuntu)
Fix Released
Medium
Christian Ehrhardt 

Bug Description

EAL: 6 hugepages of size 1073741824 reserved, but no mounted hugetlbfs found for that size
EAL: No free hugepages reported in hugepages-2048kB

That can happen if:
- one configures ONLY 1G pages
and
- the default hugepage size is not 1G

That would be a lack of our dpdk-init script, but actually even when mounting a 1G mountpoint it fails.
It needs to be debugged in what way it expects a non-default size hugepage mount and then provided by dpdk init scripts OR fixed in dpdk code.

Changed in dpdk (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
assignee: nobody → ChristianEhrhardt (paelzer)
milestone: none → ubuntu-16.04
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Check code
opens /proc/mounts
gets pagesz_str defining what the mountpoint has
if nothing is set assume default size
if something is set in the mp's options calculate the size
check if this is the mountpoint matching
=> not working for my mountpoint

Need to be run in gdb, to check where exactly it is failing

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

The detection failure was a false positive.
The following would provide a sufficient mount point.

sudo mount -thugetlbfs hugetlbfs /dev/hugepages-1G -o "pagesize=1G"

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

It seems we have to decide if we want to hardcode a directory path for the non-default mountpoint or if we want to replicate dpdks logic to parse and detect (including size recalculations).

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

I have working code, but found various other combinations - like if one pages size isn't supported at all - that I have to take care of first.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

ok, code is ready I wait a few days for something else to be wrapped up in one upload.
*beta release hanging over me*

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.3 KiB)

This bug was fixed in the package dpdk - 2.2.0-0ubuntu6

---------------
dpdk (2.2.0-0ubuntu6) xenial; urgency=medium

  * d/dpdk-init fix handling of multiple huge page sizes (LP: #1557532):
     - dpdk-init now ensures non-default-hugepage-size mountpoints are
       available as well.
     - extra mountpoints are only created if requested in dpdk.conf and not yet
       available (e.g. by the admin).
  * d/dpdk-init fix issues with unassigned devices (LP: #1558485):
     - dpdk-init no more checks /sys/.../driver of the device unconditionally
     - removed the superfluous tr call in that path
  * d/p/ubuntu-fix-lpm-use-after-free-and-leak.patch lpm/lpm6 (LP: #1554009):
     - lpm/lpm6 fix use after free on lpm[6]_create
     - lpm/lpm6 fix missing frees of rules_tbl substructure
     - lpm/lpm6 fix missing free of lpm due to early exit
     - make RTE_LOG messages of the failed allocation unique
  * d/p/ubuntu-backport-[01-26] backport for stability (LP: #1559981):
     - these will be in the following dpdk release and delta can then be dropped
     - 26 fixes that do not change api/behaviour but fix serious issues
        - 01 d3a274ce app/testpmd: handle SIGINT and SIGTERM
        - 02 308df2bf Handle SIGINT and SIGTERM in l3fwd.
        - 03 da82ee17 tools: fix unbinding failure handling
        - 04 16c1814c tools: support Python 3 in bind script
        - 05 bb9f4085 tools: support binding to built-in kernel modules
        - 06 6e7caa1a eal/linux: support built-in kernel modules
        - 07 86f36ff9 mempool: fix leak when creation fails
        - 08 ca67ed28 vhost: fix leak of fds and mmaps
        - 09 fa11a8a7 port: fix crash for ring writer nodrop
        - 10 04f36690 port: fix crash for ethdev writer nodrop
        - 11 c7a4ff80 i40e: fix overflow
        - 12 097e920c i40e: fix inverted check for no refcount
        - 13 330aa319 i40e: fix VLAN filtering
        - 14 9f44dd3d i40e/base: fix missing check for stopped admin queue
        - 15 8a880736 i40e/base: fix driver load failure
        - 16 7656a546 fm10k: fix VLAN flag in scattered Rx
        - 17 c6fb0e55 pcap: fix captured frame length
        - 18 6e027237 bonding: fix detach of bonded device
        - 19 df3e8ad7 bonding: fix detach of slave devices
        - 20 786c990a bonding: copy entire config structure in mode 4
        - 21 6698820b bonding: do not ignore multicast in mode 4
        - 22 8997a10b bonding: fix active slaves with no primary
        - 23 7a7122ed bonding: do not activate slave twice
        - 24 2186fff3 bonding: fix crash when no slave device
        - 25 c680a4a8 virtio: fix crash in statistics functions
        - 26 3b1e3e4e virtio: fix descriptors pointing to the same buffer
  * d/p/ubuntu-backport-27-virtio-fix-restart.patch for (LP: #1559981):
     - fixing re-initializing the ethdev as openvswitch-dpdk does in the
       virtio pmd driver by moving the detection of already being initialized
       from virtio_dev_close to virtio_dev_start/stop
     - this will be in the following dpdk release and delta can then be dropped
  * d/rules build with debuginfo (LP: #1560839):
     - exporting CFLAGS for all dpdk build processes
     - dh_strip...

Read more...

Changed in dpdk (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.