issue: ASAN reported that param_ut free already
freed memory.
Reason: spdk_iscsi_negotiate_params does some
modifcation on params and may free old params
and create new params. To solve this issue,
we need to input **params but not *params in
spdk_iscsi_negotiate_params
Change-Id: I68658fd8e08f317343753620692f04e7b0b57577
Signed-off-by: Ziye Yang <optimistyzy@gmail.com>
Reviewed-on: https://review.gerrithub.io/363670
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Collect coverage info when running UT locally when lcov
is available.
Change-Id: I34a8b60056775a25cd4a3906d59c4a42e7cc845f
Signed-off-by: paul luse <paul.e.luse@intel.com>
Make it clear to humans (who may not be looking at the return code) that
the tests all passed if unittest.sh makes it to the end.
Change-Id: I113961584773ae310f8f415dc54323d6854f523b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
The cache_ut test uses multiple threads in a way that hangs under
valgrind; disable valgrind for that test for now.
Change-Id: Ia372806204459c8f2a5eef261416386641b6a1f8
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This is the initial commit for "blobfs", a lightweight
filesystem built on top of the SPDK blobstore.
Also included in this patch:
1) a shim for using SPDK bdevs as the backing store for
SPDK blobstore/blobfs
2) documentation for using blobfs as the storage engine
with RocksDB
3) scripts for running a set of workloads and collecting
profiling data with RocksDB and blobfs
See doc/blobfs/getting_started.md included in this commit
for more details on blobfs, including some of the current
limitations.
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I2a6d3d4b87236730051228ed62c0c04e04c42c73
This is the initial commit for the "blobstore", a lightweight,
highly parallel, persistent, power-fail safe block allocator.
Documentation will be added in future patches.
Change-Id: I20a4daf899f1215d396f7931c3ec9a2e2bb269d0
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
No functional change, just rearranging code.
Change-Id: I28328dfefd7de269d326834c484f2c2fca4e6c1f
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This function parses in place by inserting null terminators.
Change-Id: I61cb97b87ec05d0183fbaa993fd3d7580a188bde
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Now that unittest.sh is run as part of the automated tests, drop the
various unit test calls scattered throughout the tree.
Change-Id: Iea98314bb7f04620d72d81d25e24f8e706b50ce1
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
The unittest.sh script now assumes that the build has already completed
before it is run.
Change-Id: I814b7bf462e8596986b80fe31a93c26c82db7d57
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This doesn't actually enable valgrind on the Travis CI instance, but it
allows the possibility of adding it in the future.
Change-Id: Id3787899e7e0f5f7ebbce3919caea8242b6bf706
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
The PCIe-specific unit tests still need to be updated; this patch just
moves the existing tests over and stubs out the necessary external
functions.
Change-Id: Ia6d46013231d8880df111b744523d02b56b9b37a
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Change the unittest.sh script to assume that all dependencies are
available and just build the entirety of SPDK from the root directory.
Change-Id: I394fe0cdfe25373c030b2769dd19c1a9827510c3
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This patch also drops support for automatically unbinding
devices from the kernel - run scripts/setup.sh first.
Our generic pci interface is now hidden behind include/spdk/pci.h
and implemented in lib/util/pci.c. We no longer wrap the calls
in nvme_impl.h or ioat_impl.h. The implementation now only uses
DPDK and the libpciaccess dependency has been removed. If using
a version of DPDK earlier than 16.07, enumerating devices
by class code isn't available and only Intel SSDs will be
discovered. DPDK 16.07 adds enumeration by class code and all
NVMe devices will be correctly discovered.
Change-Id: I0e8bac36b5ca57df604a2b310c47342c67dc9f3c
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Now that the NVMe and I/OAT libraries depend on the log library, log
needs to be built earlier in the Travis-CI unit test script.
Change-Id: I189800934007fe8365cdfd5eb4cd797eed252b73
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Also remove libspdk_util.a from the io_channel_ut linker command, since
it already includes the tested C file directly and doesn't depend on any
other util library functions.
Change-Id: I4b3fc4d57b5af4524b53664365f6ba52686e4b80
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
The scsi_bdev code now depends on lib/util, which needs additional
dependencies (libpciaccess or DPDK) to build beyond what is normally
installed on the Travis-CI system. Drop that test from the Travis-CI
unittest.sh script until this is resolved.
Change-Id: Ic2c90b765d2812f485553db77b7a433a50861f7b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
The JSON-RPC tests use the JSON and log libraries, so build those before
the JSON-RPC test directory.
This is just a workaround; ideally, we should build DPDK so the whole
SPDK repository can be built, but that is a larger change.
Change-Id: Ida0e98ad95fb90a22bd261cf688deafd1fd51975
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Allow end users to build the code even if, for example, warnings are
added with new compilers versions.
-Werror is still enforced for automated builds.
Change-Id: I567009d55cf5b941c452bd41d09f75d03b037209
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
The ioat driver supports DMA engine copy offload hardware available on
Intel Xeon platforms.
Change-Id: Ida0b17b25816576948ddb1b0443587e0f09574d4
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Use the container-based travis-ci.org infrastructure to run only the unit
tests.
Change-Id: I4f7d011edb07341a668fa6fea495f6eb2a9c029b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>