2639 Commits

Author SHA1 Message Date
Christian Ehrhardt
9eedaa6990 kni: remove triple license information
License information is already in LICENSE.GPL.
Remove two extra copies and change referred filename in the files.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2016-08-24 18:25:36 +02:00
Shreyansh Jain
b21fb6cce3 eal: fix a comment
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2016-08-24 17:57:01 +02:00
Ferruh Yigit
b3aaf05cd7 eal: remove empty file for device IDs
All PCI device ids moved to drivers, it is safe to delete
rte_pci_dev_ids.h

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2016-08-23 15:33:16 +02:00
Ferruh Yigit
109febfe58 net/igb: move PCI device IDs from EAL
PCI device ids moved from common header into igb driver itself.

KNI starts using pci_device_id from kni/ethtool/igb driver, this is only
for KNI ethtool support, KNI data path is not affected.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2016-08-23 15:33:01 +02:00
Ferruh Yigit
221fba3b98 net/ixgbe: move PCI device IDs from EAL
PCI device ids moved from common header into ixgbe driver itself.

KNI starts using pci_device_id from kni/ethtool/ixgbe driver, this is
only for KNI ethtool support, KNI data path is not affected.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2016-08-23 15:32:33 +02:00
David Marchand
c711ccb309 ivshmem: remove library and its EAL integration
Following discussions on the mailing list [1] and since nobody stood up to
implement the necessary cleanups, here is the ivshmem integration removal.

There is not much to say about this patch, a lot of code is being removed.
The default configuration file for packet_ordering example is replaced with
the "native" x86 file.
The only tricky part is in eal_memory with the memseg index stuff.

More cleanups can be done after this but will come in subsequent patchsets.

[1]: http://dpdk.org/ml/archives/dev/2016-June/040844.html

Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
2016-08-23 12:23:58 +02:00
Jim Harris
82f9318055 contigmem: zero all pages during mmap
On Linux, all huge pages are zeroed by the kernel before
first access by the DPDK application.  But on FreeBSD,
the contigmem driver would only zero the contiguous
memory regions during initial driver load.

DPDK commit b78c91751 eliminated the explicit memset()
operation for rte_zmalloc(), which was OK on Linux
because the kernel zeroes the pages during app start,
but this broke FreeBSD when restarting app.
So this patch explicitly zeroes the pages before they are mmap'd,
to ensure equivalent behavior to Linux.

Fixes: b78c9175118f ("mem: do not zero out memory on zmalloc")

Reported-by: Daniel Verkamp <daniel.verkamp@intel.com>
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Tested-by: Daniel Verkamp <daniel.verkamp@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2016-08-22 22:59:05 +02:00
Aleksey Katargin
322a8d2b89 table: fix symbol exports
Fixes: 8aa327214ceb ("table: hash")
Fixes: 68866e2417cc ("table: add 16-byte hash operations computed on lookup")

Signed-off-by: Aleksey Katargin <gureedo@gmail.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2016-08-22 22:59:05 +02:00
Thomas Monjalon
0b50aa7c07 version: 16.11-rc0
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-08-03 18:48:59 +02:00
Thomas Monjalon
6a90a568ff mbuf: remove deprecated internal function
The function __rte_mbuf_raw_alloc was reserved for internal use and
has been deprecated in favor of the public function rte_mbuf_raw_alloc.
It can be safely removed now.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-08-03 18:48:59 +02:00
Thomas Monjalon
d7e61ad3ae log: remove deprecated history dump
The log history feature was deprecated in 16.07.
The remaining empty functions are removed in 16.11.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: David Marchand <david.marchand@6wind.com>
2016-08-03 18:48:54 +02:00
Thomas Monjalon
20e2b6eba1 version: 16.07.0
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-28 20:48:41 +02:00
Nikhil Rao
3780cbdf52 ethdev: fix documentation for queue start/stop
Fix documentation for rte_eth_dev_tx/rx_queue_start/stop() functions

Fixes: 2de9f8551ff9 ("ethdev: fix documentation for queue start/stop")

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-28 18:11:56 +02:00
Wei Dai
e7e769b409 eal: fix tail blank check in --lcores argument
the tail blank after a group of lcore or cpu set
will make check of its end character fail.
for example: --lcores '(0-3)@(0-3)   ,(4-5)@(4-5)',
the next character after cpu set (0-3) is not ','
or '\0', which fail the check in eal_parse_lcores( ).

Fixes: 53e54bf81700 ("eal: new option --lcores for cpu assignment")

Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2016-07-28 18:11:30 +02:00
Wei Dai
f40c745450 eal: fix parsing of option --lcores
The '-' in lcore set overrides cpu set of following
lcore set in the argument of EAL option --lcores.
for example --locres '0-2,(3-5)@(3,4),6@(5,6),7@(5-7)',
0-2 make lflags=1 which indeed suppress following
cpu set (3,4), (5,6) and (5-7) after @ .

Fixes: 53e54bf81700 ("eal: new option --lcores for cpu assignment")

Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2016-07-28 18:11:13 +02:00
Wei Dai
75edc66a91 eal: remove redundant code to parse --lcores
local variable i is not referred by other codes in
the function eal_parse_lcores( ), so it can be removed.

Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2016-07-28 18:09:54 +02:00
Thomas Monjalon
3cddac20ed version: 16.07-rc5
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-25 22:21:06 +02:00
Thomas Monjalon
cae54ac47c mempool: fix unsafe removal from list by callback
If a mempool is removed from the list by a callback function
during rte_mempool_walk(), the TAILQ_FOREACH loop will fail unexpectedly.
It is fixed by using the safe version of the loop macro.

Reported-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-25 22:20:51 +02:00
Maxime Coquelin
b7aabd7a87 vhost: fix off-by-one error on descriptor number check
nr_desc is not an index but the number of descriptors,
so can be equal to the virtqueue size.

Fixes: a436f53ebfeb ("vhost: avoid dead loop chain")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-25 17:55:12 +02:00
Hiroyuki Mikita
20d159f205 timer: fix corruption with reset
When timer_cb resets another running timer on the same lcore,
the list of expired timers is chained to the pending-list.
This commit prevents a running timer from being reset
by not its own timer_cb.

Fixes: a4b7a5a45cf5 ("timer: fix race condition")

Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com>
Acked-by: Robert Sanford <rsanford@akamai.com>
2016-07-25 17:55:12 +02:00
Hiroyuki Mikita
a829d41f9d timer: remove unnecessary list insertion
When timer_set_running_state() fails in rte_timer_manage(),
the failed timer is put back on pending-list.
In this case, another core tries to reset or stop the timer.
It does not need to be on pending-list.

Fixes: a4b7a5a45cf5 ("timer: fix race condition")

Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com>
Acked-by: Robert Sanford <rsanford@akamai.com>
2016-07-25 17:55:12 +02:00
Hiroyuki Mikita
d43baa8503 timer: fix pending-list manipulation
This commit fixes incorrect pending-list manipulation
when getting list of expired timers in rte_timer_manage().

When timer_get_prev_entries() sets pending_head on prev,
the pending-list is broken.
The next of pending_head always becomes NULL.
In this depth level, it is not need to manipulate the list.

Fixes: 9b15ba895b9f ("timer: use a skip list")

Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com>
Acked-by: Robert Sanford <rsanford@akamai.com>
2016-07-25 17:55:12 +02:00
Jerin Jacob
c3acd92746 ring: fix single consumer dequeue performance
Use of rte_smb_wmb() instead of rte_smb_rmb() in sc dequeue function
creates the additional overhead of waiting for all the STOREs
to be completed to local buffer from ring buffer memory.
The sc dequeue function demands only LOAD-STORE barrier where LOADs
from ring buffer memory needs to be completed before tail pointer update.
Changing to rte_smb_rmb() to enable the required LOAD-STORE barrier.

Fixes: ecc7d10e448e ("ring: guarantee dequeue ordering before tail update")

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-07-25 17:55:12 +02:00
Thomas Monjalon
6baf0eca5c version: 16.07-rc4
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-22 22:41:56 +02:00
Thomas Monjalon
a5d7a3f77d unify tools naming
The following tools may be installed system-wide.
It may be cleaner and more convenient to find them with the same
dpdk- prefix (especially for autocompletion).
Moreover, the script dpdk_nic_bind.py deserves a new name because it is
not restricted to NICs and can be used for e.g. crypto.

These files are renamed:
pmdinfogen       -> dpdk-pmdinfogen
pmdinfo.py       -> dpdk-pmdinfo.py
dpdk_pdump       -> dpdk-pdump
dpdk_proc_info   -> dpdk-procinfo
dpdk_nic_bind.py -> dpdk-devbind.py
setup.sh         -> dpdk-setup.sh

The tools pmdinfogen, pmdinfo.py and dpdk_pdump are new in 16.07.

The scripts dpdk_nic_bind.py and setup.sh may have been used with
previous releases by end users. That's why a symbolic link still
provide the old name in the installed tools directory.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-22 22:31:02 +02:00
Pablo de Lara
954d6cf574 eal: add tailq safe iterator macro
Removing/freeing elements elements within a TAILQ_FOREACH loop is not safe.
FreeBSD defines TAILQ_FOREACH_SAFE macro, which permits
these operations safely.
This patch defines this macro for Linux systems, where it is not defined.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2016-07-22 17:38:59 +02:00
Michal Jastrzebski
fe7b933b7a mem: fix check of physical address retrieval
In rte_mem_virt2phy: Value returned from a function and indicating the
number of bytes was ignored. This could cause a wrong pfn (page frame
number) mask read from pagemap file.
When read returns less than the number of sizeof(uint64_t) bytes,
function rte_mem_virt2phy returns error.

Coverity issue: 13212
Fixes: 40b966a211ab ("ivshmem: library changes for mmaping using ivshmem")

Signed-off-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
2016-07-22 17:36:25 +02:00
Pablo de Lara
5a4e71f1f4 cryptodev: fix memory leak in parameter parsing
When parsing the parameters for virtual device initialization,
rte_kvargs structure was being freed only if there was an error,
not when parsing was successful.

Coverity issue: 124568
Fixes: f3e764fa2fb7 ("cryptodev: uninline parameter parsing")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
2016-07-22 11:53:32 +02:00
Ilya Maximets
164fd39678 vhost: fix unregistering in client mode
Currently while calling of 'rte_vhost_driver_unregister()' connection
to QEMU will not be closed. This leads to inability to register driver
again and reconnect to same virtual machine.

This scenario is reproducible with OVS. While executing of the following
command vhost port will be re-created (will be executed
'rte_vhost_driver_register()' followed by 'rte_vhost_driver_unregister()')
network will be broken and QEMU possibly will crash:

	ovs-vsctl set Interface vhost1 ofport_request=15

Fix this by closing all established connections on driver unregister and
removing of pending connections from reconnection list.

Fixes: 64ab701c3d1e ("vhost: add vhost-user client mode")

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-22 00:23:58 +02:00
Ilya Maximets
81b5d22f1d vhost: fix connect hang in client mode
If something abnormal happened to QEMU, 'connect()' can block calling
thread (e.g. main thread of OVS) forever or for a really long time.
This can break whole application or block the reconnection thread.

Example with OVS:

	ovs_rcu(urcu2)|WARN|blocked 512000 ms waiting for main to quiesce
	(gdb) bt
	#0  connect () from /lib64/libpthread.so.0
	#1  vhost_user_create_client (vsocket=0xa816e0)
	#2  rte_vhost_driver_register
	#3  netdev_dpdk_vhost_user_construct
	#4  netdev_open (name=0xa664b0 "vhost1")
	[...]
	#11 main

Fix that by setting non-blocking mode for client sockets for connection.

Fixes: 64ab701c3d1e ("vhost: add vhost-user client mode")

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-22 00:21:51 +02:00
Remy Horton
53ecfa24fb ethdev: fix overwriting driver-specific stats
After doing a driver callout to fill in the driver specific
parts of struct rte_eth_stats, rte_eth_stats_get() overwrites
the rx_nombuf member regardless of whether the driver itself
has assigned a value. Any driver-assigned value should take
priority.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Remy Horton <remy.horton@intel.com>
2016-07-22 00:16:45 +02:00
Juhamatti Kuusisaari
ecc7d10e44 ring: guarantee dequeue ordering before tail update
Consumer queue dequeuing must be guaranteed to be done fully before
the tail is updated. This is not guaranteed with a read barrier,
changed to a write barrier just before tail update which in practice
guarantees correct order of reads and writes.

Signed-off-by: Juhamatti Kuusisaari <juhamatti.kuusisaari@coriant.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-07-21 23:28:30 +02:00
Zoltan Kiss
a0bfd57a81 mempool: fix missing registration of free function
The new mempool handler interface forgets to register the free() function
of the ops. Introduced in this patch:

Fixes: 449c49b93a6b ("mempool: support handler operations")

Signed-off-by: Zoltan Kiss <zoltan.kiss@schaman.hu>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-21 23:15:47 +02:00
Zoltan Kiss
38c9817ee1 mempool: adjust name size in related data types
A recent patch brought up an issue about the size of the 'name' fields:

85cf0079 mem: avoid memzone/mempool/ring name truncation

These relations should be observed:

1. Each ring creates a memzone with a prefixed name:
RTE_RING_NAMESIZE <= RTE_MEMZONE_NAMESIZE - strlen(RTE_RING_MZ_PREFIX)

2. There are some mempool handlers which create a ring with a prefixed
name:
RTE_MEMPOOL_NAMESIZE <= RTE_RING_NAMESIZE - strlen(RTE_MEMPOOL_MZ_PREFIX)

3. A mempool can create up to RTE_MAX_MEMZONE pre and postfixed memzones:
sprintf(postfix, "_%d", RTE_MAX_MEMZONE)
RTE_MEMPOOL_NAMESIZE <= RTE_MEMZONE_NAMESIZE -
	strlen(RTE_MEMPOOL_MZ_PREFIX) - strlen(postfix)

Setting all of them to 32 hides this restriction from the application.
This patch decreases the mempool and ring string size to accommodate for
these prefixes, but it doesn't apply the 3rd constraint. Applications
relying on these constants need to be recompiled, otherwise they'll run
into ENAMETOOLONG issues.
The size of the arrays are kept 32 for ABI compatibility, it can be
decreased next time the ABI changes.

Signed-off-by: Zoltan Kiss <zoltan.kiss@schaman.hu>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-21 23:13:55 +02:00
Zoltan Kiss
32e17fd571 mem: allow full length name
(strlen(name) == sizeof(mz->name) - 1) is a valid case, change the
condition to reflect that.
Move it earlier to avoid lookup with invalid name.
Change errno to ENAMETOOLONG.

Fixes: 85cf0079 ("mem: avoid memzone/mempool/ring name truncation")

Signed-off-by: Zoltan Kiss <zoltan.kiss@schaman.hu>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-21 23:05:01 +02:00
Chao Zhu
d23a6bd04d eal/ppc: fix memory barrier for IBM POWER
On weak memory order architecture like POWER, rte_smp_wmb/rte_smp_rmb
need to use CPU instructions, not compiler barrier. This patch fixes
this. Also, to improve performance on PPC64, use light weight sync
instruction instead of sync instruction.

Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
2016-07-21 16:25:31 +02:00
Thomas Monjalon
608487f3fc version: 16.07-rc3
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-16 16:48:06 +02:00
Reshma Pattan
e4ffa2d3dc pdump: fix error handlings
The changes include
1)If mkdir fails for user passed socket paths log error and return.

2)At some places return value was set to errno and that non-negative number
was returned, but the intention was to return negative value.
So now rte_errno was set to errno and returning the actual negative value
that the APIs has returned.

Fixes: 278f945402c5 ("pdump: add new library for packet capture")

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-07-16 11:13:22 +02:00
Hiroyuki Mikita
6596554669 ip_frag: fix doxygen formatting
This commit fixes some functions missing in API documentation.

Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com>
2016-07-16 01:10:20 +02:00
Patrik Andersson
acbff5c67e vhost: fix crash when exceeding file descriptors
Protect against DPDK crash when allocation of listen fd >= 1023.
For events on fd:s >1023, the current implementation will trigger
an abort due to access outside of allocated bit mask.

Corrections would include:

  * Match fdset_add() signature in fd_man.c to fd_man.h
  * Handling of return codes from fdset_add()
  * Addition of check of fd number in fdset_add_fd()

The rationale behind the suggested code change is that,
fdset_event_dispatch() could attempt access outside of the FD_SET
bitmask if there is an event on a file descriptor that in turn
looks up a virtio file descriptor with a value > 1023.
Such an attempt will lead to an abort() and a restart of any
vswitch using DPDK.

A discussion topic exist in the ovs-discuss mailing list that can
provide a little more background:
http://openvswitch.org/pipermail/discuss/2016-February/020243.html

Fixes: 8f972312 ("vhost: support vhost-user")

Signed-off-by: Patrik Andersson <patrik.r.andersson@ericsson.com>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-15 22:12:38 +02:00
Ilya Maximets
ebd02c060a vhost: check ring descriptor address
In current implementation vhost will crash with segmentation fault
if malicious or buggy virtio application breaks addresses of descriptors.

Before commit 0823c1cb0a73 ("vhost: workaround stale vring base")
this crash was reproducible even with normal DPDK application that tries
to change number of virtqueues dynamically inside VM.

Fix that by checking addresses of descriptors before using.

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-15 22:12:37 +02:00
Ilya Maximets
8729de6092 vhost: fix used descriptors number of mergeable enqueue
Return value on error changed from '-1' to '0' because it returns
unsigned value and it means number of used descriptors.

Also fixed updating of 'last_used_idx' by using actual number of
used descriptors.

Fixes: 623bc47054d0 ("vhost: do sanity check for ring descriptor length")

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-15 22:12:37 +02:00
Yong Wang
eb68811af7 vfio: fix coding style
Signed-off-by: Yong Wang <yongwang@vmware.com>
2016-07-15 22:12:37 +02:00
Yong Wang
9ba7235664 vfio: fix PCI resource mapping
The offset of the 2nd mmap() when mapping the region after msix_bar
needs to take region address into consideration as mmap() takes
address that is resource-relative instead of bar-relative.  This is
exposed when binding vmxnet3 to vfio-pci.

Fixes: 90a1633b2347 ("eal/linux: allow to map BARs with MSI-X tables")

Signed-off-by: Yong Wang <yongwang@vmware.com>
Signed-off-by: Ronghua Zhang <rzhang@vmware.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
2016-07-15 18:43:09 +02:00
Adrien Mazarguil
1cc275ef61 mempool: fix empty structure definition
This commit addresses the following warning reported by clang, which
happens by default, as long as CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG is disabled:

 warning: empty struct has size 0 in C, size 1 in C++

C and C++ must use the same size for objects to avoid corruption during run
time.

Fixes: 97e7e685bfcd ("mempool: add structure for object trailers")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-15 17:26:52 +02:00
Damjan Marion
a088b5ea35 spinlock: move constructor out of x86 header file
Having constructor function in the header file is generally
a bad idea, as it will eventually be implanted to 3rd party
library.

In this case it causes linking issues with 3rd party libraries
when an application is not linked to dpdk, due to missing
symbol called by constructor.

Fixes: ba7468997ea6 ("spinlock: add HTM lock elision for x86")

Signed-off-by: Damjan Marion <damarion@cisco.com>
Reviewed-by: Jan Viktorin <viktorin@rehivetech.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-15 17:26:52 +02:00
Thomas Monjalon
11c5e45d88 version: 16.07-rc2
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-11 21:47:34 +02:00
Olivier Matz
4d0c51a85d mempool: fix creation with Xen dom0
Restore the use of 2M hugepages when using Xen Dom0 that was
dropped during mempool rework.

Fixes: c042ba20674a ("mempool: rework support of Xen dom0")

Reported-by: Huilong Xu <huilongx.xu@intel.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-11 19:10:09 +02:00
Olivier Matz
996e86bf2a mbuf: set errno on pool creation error
In rte_pktmbuf_pool_create(), the rte_errno variable was not always
set on failure.

Fixes: 152ca517900b ("mbuf: use default mempool handler from config")

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-11 19:10:09 +02:00
Olivier Matz
e33c4d9791 xen: fix retrieval of physical address
When using Xen Dom0, it looks that /proc/self/pagemap returns 0.
This breaks the creation of mbufs pool.

We can workaround this in rte_mem_virt2phy() by browsing the dpdk memory
segments. This only works for dpdk memory, but it's enough to fix the
mempool creation.

Fixes: c042ba20674a ("mempool: rework support of Xen dom0")
Fixes: 3097de6e6bfb ("mem: get physical address of any pointer")

Reported-by: Huilong Xu <huilongx.xu@intel.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-11 19:10:09 +02:00