this is a follow-up of 6edaf4e, when tcmalloc is enabled,
perfglue/heap_profiler.cc is also compiled, it includes the
google/heap-profiler.h. so to silence the the warnings like
warning: /usr/include/google/heap-profiler.h:35:2: #warning
"google/heap-profiler.h is deprecated. Use gperftools/heap-profiler.h
instead" [-Wcpp]
we also check the new location of these header files if tcmalloc
is enabled.
Signed-off-by: Kefu Chai <kchai@redhat.com>
if we configure --with-librocksdb-static, the rocksdb's Makefile
will detect the installed libbz2 and libz4 by its own. if the
building env happens to have these libraries installed, a link
time dependency is introduced. so we are forced to link against
them.
Fixes: #13850Fixes: #13981
Signed-off-by: Kefu Chai <kchai@redhat.com>
Configure fails with autoconf 2.63 on Centos 6.6 with:
./configure: line 34026: syntax error near unexpected token `newline'
./configure: line 34026: ` yes:no:'
Signed-off-by: Igor Podoski <igor.podoski@ts.fujitsu.com>
To prepare for the migration of rbd.py to Cython, add Cython as a package
dependency and have the configure script look for it.
Also adds Cython as a dependency for admin/build-doc, and changes the
virtualenv to allow usage of system packages (to avoid having to compile
Cython inside the virtualenv).
With contributions by Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Hector Martin <marcan@marcan.st>
EventSocket will wrap different user event notification method like linux
eventfd, solaris port. Caller can user this to replace signal
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
res_query in musl libc is thread safe. Added a WITH_THREAD_SAFE_RES_QUERY cmake build option to disable default res_query lock.
Signed-off-by: John Coyle <dx9err@gmail.com>
This lets us track upstream without mantaining our own autotools fork.
Move back to rocksdb vanilla 3.11.2 (without our autotools patches).
Signed-off-by: Sage Weil <sage@redhat.com>
This results in the tracepoint provider shared libraries being
placed in the library path for unittests.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
When running make distdir=ceph-9.0.3-1870-gfd861bb dist, a few files
have names longer than 99 characters and discarded, which then causes
the resulting tarbal to be incomplete:
tar: ceph-9.0.3-1870-gfd861bb/src/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc: file name is too long (max 99); not dumped
tar: ceph-9.0.3-1870-gfd861bb/src/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h: file name is too long (max 99); not dumped
Use the tar-ustar format instead of the legacy v7
format (http://www.gnu.org/software/automake/manual/automake.html#Options). It
is unlikely machines with a C++11 compiler also have an antique tar
binary that would only support v7.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
They were designed to run in a docker container using loop devices
instead of disks. Although this was fit for ceph-disk activate tests for
regular and dmcrypt devices, a docker instance does not have its own
udev instance it is not possible to run tests involving udev events
without interfering with the host.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
The boost mt code uses uninitialized memory for extra randomness,
which is a bad idea in general but more importantly makes valgrind
unhappy. Use /dev/urandom instead.
Unfortunately this introduces a link time dependency.. meh!
Fixes: #12736
Signed-off-by: Sage Weil <sage@redhat.com>
This patch modifies the build system and spec file to provide a support
for SELinux enforcing in an opt-in matter via ceph-selinux package.
Signed-off-by: Boris Ranto <branto@redhat.com>
To simplify the spec file we should install as much using autotools
and as little as possible in the spec file.
Signed-off-by: Owen Synge <osynge@suse.com>
tmpfiles.d are part of system.d and define how temporary directories are setup.
rgw needs a socket directory. To do this we template tmpfiles.d user and group
for rgw and fill in the values using autotools.
Note1: Added to spec file.
Note2: Name changed to rgw from radosgw as is preferred name by Sage.
Note3: Adds configure options
--with-rgw-user=UserName
--with-rgw-group=GroupName
Note4: Defaults set for debian
Note5: spec file overrides defaults for redhat and suse
Signed-off-by: Owen Synge <osynge@suse.com>
If a system contains older (3) or later (5) release of junit.jar that is
default in the system, the auto-detection might find it before it finds
junit4.jar. This commit fixes that issue by always preferring the
junit4.jar library.
Signed-off-by: Boris Ranto <branto@redhat.com>
Use blkid APIs to get device parition information into the metadata bundle, and leverage common/blkdev.* helpers to parse the device node when possible.
Signed-Off-By: joseph.t.handzik@hp.com
Prior to automake 1.13 the default behavior was serial-tests meaning
tests from make check were run one after the other and their output sent
to stdout/stderr. From automake 1.13 up the default became
parallel-tests which logs the output of each individual test in a
separate .log file and allows them to run in parallel.
http://lists.gnu.org/archive/html/automake/2012-12/msg00038.html
Enable parallel-tests so that tests can always run in parallel, even
with automake 1.11 which is the version found in CentOS 6.5 and Ubuntu
12.04 precise.
A nice side effect of always having the logs in separate files is that
tests do not need to worry about being too verbose because their output
will only be read for diagnostic purposes.
http://tracker.ceph.com/issues/11931Fixes: #11931http://tracker.ceph.com/issues/11906Fixes: #11906
Signed-off-by: Loic Dachary <ldachary@redhat.com>
The configure's --with-debug option builds also some of the tests
so this should be mentioned in its doc string in order to let users
know how to build all the tests.
Signed-off-by: Joaquim Rocha <joaquim.rocha@cern.ch>
The libexec path is different for different distributions.
systemd. This path is defined by a new variable on the
configure path.
This variable can be set with enviroment SYSTEMD_LIBEXEC_DIR.
The parameter --with-systemd-libexec-dir overrides the enviroment
variable.
Appropriate conditionals are set for SUSE and RHEL derivatives.
This is then used to template out systemd/ceph-osd@.service
Signed-off-by: Owen Synge <osynge@suse.com>
* do not require sphinx-build if --without-man-pages
* dist rst files for man pages
* build and dist .8 files if sphinx-build is found
Signed-off-by: Kefu Chai <kchai@redhat.com>
Currently, if you add the flag --disable-pgrefdebugging during configure
it enables pgrefdebugging. The only way for it to actually be disabled
is to remove the flag entirely. This patch makes the flag respect the
--enable and --disable options correctly. Therefore,
--enable-pgrefdebugging is the only way to enable this now and
--enable-pgrefdebugging=no and --disable-pgrefdebugging work as
expected.
Signed-off-by: William A. Kennington III <william@wkennington.com>
On RHEL 6 and CentOS 6 sphinx 1.0+ which is required to build man pages
is packaged as sphinx10 instead of sphinx and the binary is
sphinx-1.0-build instead of sphinx-build.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Certain older systems (SLE11 in this case) do not provide the full
tcmalloc functionality, due to e.g. incomplete libunwind
pieces. Use --with-tcmalloc-minimal to enable the cut-down
version.
Here's how the various mem allocator switches interact now:
--with-jemalloc: overrides --with-tcmalloc & --with-tcmalloc-minimal
--with-tcmalloc-minimal: overrides --with-tcmalloc
--with-tcmalloc: the default. use --without-tcmalloc to disable
Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
* move rst files from doc/man/8 into man/8
* extract man_pages setting for sphinx from doc/conf.py to man/conf.py
* generate all man pages in `make install`
* add python-sphinx to Build-Depends
* check for sphinx-build in `configure`
* run changed rst files through sphinx-build in `make check`
Signed-off-by: Kefu Chai <kchai@redhat.com>
During development each git commit cause currently a complete
rebuild of the source tree. By passing --disable-gitversion to
configure we set a generic version string for ceph to prevent
getting after each commit a new version set.
remove src/check_version and replace with a extended version
of src/make_version which allows detecting changes in .git_version
and ceph_ver.h to avoid not needed updates.
This change also forces to call make_version each time to make
sure that changes from configure or the NO_VERSION env variable
are processed.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
ARMv8 defines a set of optional CRC32/CRC32C instructions.
This patch defines an optimized function that uses these
instructions when available rather than table-based lookup.
Optimized function based on a Hadoop patch by Ed Nevill.
Autotools updated to check for compiler support.
Optimized function is selected at runtime based on HWCAP_CRC32.
Added crc32c "performance" unit test and arch unit test.
Tested on AMD Seattle.
Passes all crc32c unit tests.
Unit test shows ~4x performance increase versus sctp.
Signed-off-by: Yazen Ghannam <yazen.ghannam@linaro.org>
Reviewed-by: Steve Capper <steve.capper@linaro.org>
Google Testing Framework is included by default within the Google
C++ Mocking Framework. Update makefiles to use new gmock/gtest
libraries and remove old gtest source code.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Now, 2-4 async op thread can fully meet a OSD's network demand with SSD
backend. So we can bind limited thread to special cores, it can improve
async event loop performance because most of structure and method will
processed within thread.
For example,
ms_async_op_threads = 2
ms_async_affinity_cores = 0,3
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Replace ceph-helpers.sh check for ms_nocrc with the new formula
for this. Fixes make check for default build.
Additionally, fix linkage of several unittests when building with
--enable-xio.
xio: add missing noinst headers
The common/address_helper.h file was not mentioned, also
msg/xio/XioSubmit.h.
Fix for Message.cc compilation error when Xio disabled.
Mention simple_dispatcher.h and xio_dispatcher.h in noinst_HEADERS.
xio: require boost-regex.
Make address_helper conditional on Xio.
This carries over to simple_client/simple_server,
for convenience.
Signed-off-by: Matt Benjamin <matt@cohortfs.com>