Commit Graph

527 Commits

Author SHA1 Message Date
Sage Weil
c639ce51ac Merge pull request #3604 from yghannam/yazen-testing
crc32c: add aarch64 optimized crc32c implementation

Reviewed-by: Sage Weil <sage@redhat.com>
2015-03-25 10:06:46 -07:00
Kefu Chai
301fe6cbf2 doc: generate man pages in man/Makefile
* 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>
2015-03-24 12:36:41 +08:00
Sage Weil
d26a9dce5e Merge remote-tracking branch 'gh/hammer'
Conflicts:
	PendingReleaseNotes
	src/Makefile.am
	src/gmock
	src/test/Makefile.am
2015-03-19 12:41:04 -07:00
Danny Al-Gaaf
cca067efde configure.ac: add --disable-gitversion
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>
2015-03-19 09:38:46 +01:00
Yazen Ghannam
60762338a2 crc32c: add aarch64 optimized crc32c implementation
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>
2015-03-17 13:56:52 -05:00
Rohan Mars
d06c1d7097 rhel 5.9 port fixes to compile librados only
Signed-off-by: Rohan Mars <code@rohanmars.com>
2015-03-15 12:28:06 -07:00
Boris Ranto
e531dd4b37 Add new configure options to improve build refinement 2015-03-05 19:57:08 +01:00
Jenkins
bebf8e9a83 0.93 2015-02-27 09:52:54 -08:00
Danny Al-Gaaf
65ce7b731a fix configure to reflect the missing libs for xio
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2015-02-11 14:37:01 +01:00
Sage Weil
5a08179384 Merge remote-tracking branch 'gh/next' 2015-02-03 06:52:07 -08:00
Jenkins
00a3ac3b67 0.92 2015-02-02 10:35:28 -08:00
Sage Weil
74e584b258 Merge pull request #3311 from xinxinsh/fix1
disable tcmalloc by default when enable jemalloc

Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-27 12:56:00 -08:00
Jason Dillaman
bf05ec186a tests: replace existing gtest 1.5.0 with gmock/gtest 1.7.0
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>
2015-01-25 23:09:03 -05:00
Sage Weil
01af73bc45 Merge pull request #3211 from yuyuyu101/wip-10172
AsyncMessenger: Bind thread to core, use buffer read and fix some bugs
2015-01-19 12:38:01 -08:00
Haomai Wang
f4fcff16b6 AsyncMessenger: Bind async thread to special cpu core
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>
2015-01-16 03:07:09 +08:00
Matt Benjamin
45e9cd5bd4 Fix make check blockers.
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>
2015-01-14 16:44:47 -05:00
Matt Benjamin
dcfb80a8db Accelio Autotools glue.
Add Accelio to build process with --enable-xio is provided.

Signed-off-by: Matt Benjamin <matt@cohortfs.com>
2015-01-14 16:43:43 -05:00
Sage Weil
5c8ee3388f Merge remote-tracking branch 'gh/next' 2015-01-14 08:57:33 -08:00
Jenkins
725d66098c 0.91 2015-01-13 12:10:22 -08:00
Danny Al-Gaaf
36dd487a0c configure.ac: fix warnings about unknown commands
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2015-01-07 10:14:11 +01:00
xinxin shu
1c38895fe0 disable tcmalloc by default when enable jemalloc
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
2015-01-07 14:14:50 +08:00
Ken Dreyer
6ca2eb86be configure: show pkg names when libkeyutils is missing
Prior to this commit, when ./configure can't find libkeyutils, it would
bail out with a terse error message.

Some of the other library checks helpfully print the DEB and RPM package
names in parentheses. Add the DEB and RPM package names to the
libkeyutils check.

Reported-by: Pankaj Garg <Pankaj.Garg@caviumnetworks.com>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2015-01-05 12:19:40 -07:00
Loic Dachary
94abadbd80 tests: replace --enable-docker with --enable-root-make-check
The --enable-docker logic was that each test that needs privileges to
run uses a container to do so. The problem with this approach and
make -j8 check is that such tests compete for a single container.

The --enable-root-make-check activates tests that require privileges and
assume it is ok to use sudo to acquire privileges. The decision to run
in a container is then taken by the caller who will run something like:

   docker-tests.sh ./configure --enable-root-make-check
   docker-tests.sh make -j8 check

Signed-off-by: Loic Dachary <ldachary@redhat.com>
2014-12-21 17:53:00 +01:00
Sage Weil
6067462102 Merge remote-tracking branch 'gh/next' 2014-12-19 11:55:58 -08:00
Jenkins
08bd1e1eee 0.90 2014-12-19 06:56:22 -08:00
shishir gowda
973e9f755a jemalloc-support: Added --with-jemalloc configure option
If --with-jemalloc option is not specified, then it defaults to tcmalloc.

If --with-jemalloc is specified, then --without-tcmalloc is required.
Also if a rocksdb static linking is desired --with-librocksdb-static,
do not use --with-jemalloc, as rocksdb uses tcmalloc for builds.

Support for jemalloc in package build and perf stats/heap profiler is
underway

Signed-off-by: shishir gowda <shishir.gowda@sandisk.com>
2014-12-15 11:22:29 +05:30
Sage Weil
19e6c58622 Merge pull request #3072 from ceph/wip-10231-gperftools-location
heap_profiler: support new gperftools header locations

gitbuilders are happy

Reviewed-by: Sage Weil <sage@redhat.com>
2014-12-04 10:13:55 -08:00
Samuel Just
d212ced82b Merge pull request #2694 from dachary/wip-9728-jerasure-neon
erasure-code: jerasure support for NEON

Reviewed-by: Samuel Just <sjust@redhat.com>
2014-12-04 09:26:48 -08:00
Sage Weil
c0685ec709 Merge remote-tracking branch 'gh/next' 2014-12-04 08:39:56 -08:00
Ken Dreyer
6edaf4e796 heap_profiler: support new gperftools header locations
The google/ headers location has been deprecated as of gperftools 2.0.
As of gperftools 2.2rc, the google/ headers will now give deprecation
warnings, and they will probably disappear in a future gperftools
update.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2014-12-03 13:44:00 -07:00
Jenkins
68fdc0f68e 0.89 2014-12-03 08:18:33 -08:00
Janne Grunau
cec00c9f4a autotools: ARM/AArch64 NEON detection similar to x86 2014-11-25 14:17:37 +01:00
Janne Grunau
ba520bf73b erasure-code: conditionally build jerasure sse3/sse4 plugins 2014-11-25 14:17:37 +01:00
Loic Dachary
c9121167d0 autotools: add --enable-docker
Docker based tests should be explicit instead of auto-detected. It is
good that they do not run if docker is not available. It would be bad if
they run when the developer does not expect them to create docker
containers.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
2014-11-18 12:20:01 +01:00
Sage Weil
80865fea71 Merge remote-tracking branch 'gh/next' 2014-11-11 16:22:40 -08:00
Jenkins
4be687bf44 0.88 2014-11-11 09:33:12 -08:00
Sage Weil
936c74fdad Merge pull request #2831 from yuyuyu101/async-kqueue
AsyncMessenger: Add kqueue support
2014-10-30 11:35:43 -07:00
Sage Weil
e2e6f9739d v0.87
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJUUSwLAAoJEH6/3V0X7TFtsLMQAM0xPn3NFFOGMrZobs4ogB6Q
 kPCSf21cHdreExNpUcUDIgaH8Vff63yUKghkkSBYESI8IA0/tuJcClL98sWuWyyj
 aU1zEomjOMtKgb5cKdQSjX3ss2GYZgQGLWAeAawdIaNO1WaXXPjg/mVSdWL2tFAJ
 EkhPg3THS2Bvnm+B1g3QY9QZTU9EA3fm4Np/UjBxZToD6TL+GNXXIjYUSE11PTIB
 gfnWhpvhqK3DTFkjtKvlPTEiYRd60nnnbhYXI3Ry2bmrJIJ+lIzXUlFfjtuBRjc6
 ZQvwBPXuxbUvo3dfI5c75PKk8BCSdBtA5gZ8rrgpdcp8AC8pX/5DhuNamfgBMOug
 s+H5j07De9/FrVJ5JW8CkSQLyQt2HD2E8cNAa5me87kOv9DIWC1fMFmA/mGPlDCz
 NJhpl/z4BBfmB0AtCVvjqpeP7vJWV74rrnWUET7FTj/1xCY4EmX5CalCvbE1Q7e5
 1nA0RoZ8EPtP/VLfBzlglv7MPelrTsq1BaUzP5YtZ5XPVShCZCIc/lvJZz4tOFaU
 0PFA9GrHIGRn6WPzQGDLiyN6XE8W+t/fWEs6N7ToFrRsMpmxdgwWtERfXhGGBNVJ
 8HYrIlfOKLAsQ1HpOEyn9cMF1AW2gVAn6wdmyPuahmm83Z6XprhL6i3V+sdLyhRx
 LSzWJ+Dufn4+K4AA73mi
 =oz3o
 -----END PGP SIGNATURE-----

Merge tag 'v0.87'

v0.87
2014-10-29 13:50:24 -07:00
Jenkins
c51c8f9d80 0.87 2014-10-29 11:03:55 -07:00
Haomai Wang
ce6f22d698 AsyncMessenger: Add kqueue support
AsyncMessenger will select event driver following epoll, kqueue and
select(now not exists) sequence

Fix #9926
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-10-30 01:15:33 +08:00
xinxin shu
a460c3b85b check rocksdb library when '--with-librocksdb' option is enabled
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
2014-10-23 13:20:58 +08:00
Jenkins
d14ca34a1c 0.86 2014-10-07 12:16:58 -07:00
Sage Weil
63075361fd configure: do not try yasm on x32
Signed-off-by: Sage Weil <sage@redhat.com>
2014-09-08 15:51:58 -07:00
Sage Weil
c050afdbe0 Merge remote-tracking branch 'gh/next' 2014-09-08 12:19:45 -07:00
Jenkins
a0c22842db 0.85 2014-09-08 06:31:31 -07:00
Loic Dachary
39bcb43a7a erasure-code: preload the isa plugin by default
But only do so when it has been compiled because a recent enough yasm
has been found.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
2014-08-28 11:09:29 +02:00
Adam Crume
9673e2f3c1 lttng: Split --with-lttng and --with-babeltrace options
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:35 -07:00
Adam Crume
3f1917c094 lttng: Add informational messages to configure.ac
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:34 -07:00
Adam Crume
141f37a611 lttng: Check for babeltrace when autoconfiguring lttng
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:34 -07:00
Adam Crume
9c388f08f7 lttng: Check that the main babeltrace header is present
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:34 -07:00
Adam Crume
84bfe910a7 lttng: Test for sane lttng-gen-tp
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:34 -07:00
Adam Crume
861e6a3920 lttng: Update packaging
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:34 -07:00
Adam Crume
d4186feec5 lttng: Support --with-lttng=check
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:33 -07:00
Adam Crume
2a11a5cc92 lttng: Disable LTTng by default, add --with-lttng configure option
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:31 -07:00
Adam Crume
fcf49257f0 lttng: Add tracing-common.h
Signed-off-by: Adam Crume <adamcrume@gmail.com>
2014-08-21 10:57:28 -07:00
Noah Watkins
33b87f9227 tracing: automake-ify tracepoint generation
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2014-08-21 10:57:27 -07:00
Adam Crume
915a6a642f lttng: Check for lttng/tracepoint.h when configuring 2014-08-21 10:57:27 -07:00
Noah Watkins
115cfb3a2e tracing: bootstrap lttng-ust with mutex events
See src/tracing/README.md

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2014-08-21 10:57:27 -07:00
Sage Weil
92b227e1c0 Merge remote-tracking branch 'gh/next' 2014-08-18 21:10:32 -07:00
Jenkins
8336f81c5c 0.84 2014-08-18 09:02:20 -07:00
Sage Weil
f752ff49fe Merge pull request #2180 from ceph/wip-ec-isa
osd: add support for intel ISA-L EC library
2014-08-01 10:00:23 -07:00
Sage Weil
8fcbb65901 configure: enable static rocksdb if check and c++11
Signed-off-by: Sage Weil <sage@redhat.com>
2014-07-31 21:11:24 -07:00
Sage Weil
5502dd3e0f configure: verify c++11 is present for rocksdb
Signed-off-by: Sage Weil <sage@redhat.com>
2014-07-31 21:11:24 -07:00
Josh Durgin
eb1cd7801e rocksdb: update submodule makefile
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2014-07-31 21:11:24 -07:00
Sage Weil
d8b291f30d configure: check for 'better' yasm that can build ISA-L
Signed-off-by: Sage Weil <sage@redhat.com>
2014-07-31 15:18:51 -07:00
xinxin shu
708b5b8766 add --with-librocksdb-static configure options
with this options, ceph will build rocksdb from submodule

Signed-off-by: xinxin shu <xinxin.shu@intel.com>
2014-07-29 21:45:25 -07:00
xinxinsh
cbd0043ca7 add rocksdb support
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
2014-07-29 21:45:25 -07:00
Sage Weil
6e6fc23c7e v0.83
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJT2AdNAAoJEH6/3V0X7TFt+5EP/iLOUg5o6aqBa/7yUNwtgZEb
 6cm1h8bWJpigP51oHGNyoeS4PnYWQ7DfvwKL/TDP8268g/o/w0DRvSnCZopHFos9
 j6Ci/VE9ag9uQNqW+NOph13k3fjf5KetzM5g/q/Ay4dKVCS2+9uABfosql9RNZa6
 ojhGKf2BtMgswfemq/0XWc49Ptimox5G/ntR+/xYm0s906q5wB1Y9Tvh2PNZo1Y1
 wL2qy9UnmonBLGIu0BIStKnub57VHCYbNqV6fl3W+Oct9f0znYPCqnRVUb2lw3Ie
 4KciilzteQCfurCCI7CQFmNEKCVpPlujiKo/q8CKIDgbwkMcUntCmW9QcmH3BzC5
 czYr695aokE+dt+MICRY+sIREY5achXynb7wnSon9JI8qrCUQ0o4fHQ1AZOio7V6
 +zcCdussqSeEXOoVUlNS5eGrzbY1kqrFcXY18WiCy6nadLapuUQTtJ5QALQyJ5TW
 8TidkkU6h0V4sworwpM6tiDLfq2UQwZ5NuP8MGz9DtOjMDbLHSE6TrRug7Irjj41
 4AKdkSWMhuXljm/rEsOi54ZGRUhq2VZ2xpnUD0WR8r/3lAP1d2UnefFlrSZaCN4z
 bNcrCncK7wre2UUyDQ/qJ+S808XPUPQaohbmb3Eg+Hr0mbkiJXYdNNyrUzL3wnkr
 E3YL+8sapzZKn9zOxNQ3
 =ujRc
 -----END PGP SIGNATURE-----

Merge tag 'v0.83'

v0.83
2014-07-29 16:23:12 -07:00
Jenkins
78ff1f0a5d 0.83 2014-07-29 13:42:53 -07:00
Sage Weil
b08470f0bf configure.ac: link libboost_thread only with json-spirit
Signed-off-by: Sage Weil <sage@redhat.com>
2014-07-27 16:58:08 -07:00
Sage Weil
9d23cc6aa6 configure: don't link blkid, udev to everything
These are already explicitly called out for libkrbd; don't need them in
LIBS.

Signed-off-by: Sage Weil <sage@redhat.com>
2014-07-27 11:25:47 -07:00
Dan Mick
06a8f7b99c configure: do not link leveldb with everything
Detect leveldb, but do not let autoconf blindly link it with everything on the
planet.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Sighed-off-by: Sage Weil <sage@redhat.com>
2014-07-17 21:44:06 -07:00
Josh Durgin
59c00e5fd0 os: add prototype KineticStore
Implement the KeyValueDB interface using libkinetic_client,
and allow it to be configured as the backend for the KeyValueStore,
running the entire OSD on it.

This prototype implementation has no transaction safety, and is
only suitable as a proof of concept. Since the libkinetic_client
API does not provide reverse iteration over keys without also reading
the value off disk, it implements iterators in a very slow but correct way.
These are used heavily by the KeyValueDB callers, so this is a bottleneck
in performance.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2014-07-10 13:23:35 -07:00
Jenkins
14085f42dd 0.82 2014-06-25 16:47:51 +00:00
Sage Weil
4951244726 Merge remote-tracking branch 'gh/next' 2014-06-02 22:24:48 -07:00
Jenkins
8de9501df2 0.81 2014-06-02 18:37:27 +00:00
Samuel Just
f0316411fa Merge pull request #1811 from ceph/wip-perf-atomic
perf_counter: use atomics instead of mutex

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-05-27 15:04:31 -07:00
Dmitry Smirnov
0f4120c011 look for "jni.h" in gcj-jdk path, needed to find "jni.h" with gcj-jdk_4.9.0
Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
2014-05-12 13:57:20 +10:00
Yehuda Sadeh
bf3ba6001c atomic_t: add atomic64_t
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-05-11 11:18:13 -07:00
Sage Weil
d903895441 v0.80
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJTaOuwAAoJEH6/3V0X7TFtMQgP/1UWkr94SrxwHwToD5TsLug4
 aeR923MnBn5qyPCDNyqpftWtxskfPSdDxJlkpc6qsFYlupECIb593z4F7tFejzVh
 LN0fkdHmut9g7EDpd9kgNeqgTb8tqxj/Nq4jih1fXWeznNEaQWkk5dVA8UsopCyv
 0FvSllxmTwD/jNtaloXb8jSI/wtjIlQzhucjJb80OjdIl7LfmtsA3DAAweTjX7c0
 Wv8daBnj2clgSe+gjYHvXOopzNszB9/+K5kWgLS5Cvs4ngHeYh03O7hVoFluHRbc
 hnzLQHMs/Pfs6HR2+eybc7z3UYxfVKZkcHpCqVzM5+lCwKQc61MZeJrJg7RWcTgP
 SNFBPYMMgPZABpdhNi3qEJpvZ65pD/gfShXdzQwMnXRCIF0714LWKYdsuSRCr9Lf
 3pkZ+zPHaID2OWWOXDOe6WY1Wg1YiVt8uss9ZRsOCkKDnc8JzPhx5Z7f4+f74bOU
 Cm7xLQH8EJtrxqQjGz2HO3OucI253OceVHWh2L9nHbRRNM3LMxW8fbd/dEbIfHiG
 g6Qh+NbyuRtiYLq7pRChKirE67dqXNoauE0Co0M6C6x1hqou41YQMD0gwjPdj5Iy
 1tScKXS+onPzt9KR/ZA8RNOLCCnLdOSn4G0qRD0xJIdyDPB562u6FNv9b4X7xgry
 kxpFEPCfRGSNNH2hNb0X
 =sTfQ
 -----END PGP SIGNATURE-----

Merge tag 'v0.80'

v0.80

Conflicts:
	src/osd/PG.cc
	src/osd/ReplicatedPG.cc
2014-05-09 10:58:35 -07:00
Sage Weil
e65a9da93a Revert "Fix installation into user home directory, broken by d3f0c0b"
This reverts commit 7539281037.

This breaks mount.fuse.ceph installation.
2014-05-06 07:04:56 -07:00
Jenkins
b78644e7de 0.80 2014-05-06 14:03:28 +00:00
Stefan Eilemann
7539281037 Fix installation into user home directory, broken by d3f0c0b
Signed-off-by: Stefan Eilemann <Stefan.Eilemann@epfl.ch>
2014-05-05 09:54:19 +02:00
Sage Weil
915bd92f50 Merge pull request #1701 from ceph/wip-libkrbd
libkrbd convenience library

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-04-28 16:52:12 -07:00
Ilya Dryomov
2651750498 rbd: add libkrbd convenience library
Add libkrbd libtool convenience library to provide an interface for
mapping and unmapping rbd images programmatically.  This will be used
by the rbd binary itself and the librbd_fsx testing tool.

libkrbd takes care of the kernel module stuff (common/module.h) and
makes use of libudev to be able to properly wait for block device
creation and deletion and tell which block device got assigned by the
kernel to the newly created mapping.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-04-23 13:33:43 +04:00
Jenkins
6769f4dc88 0.80-rc1 2014-04-22 21:21:45 +00:00
Ilya Dryomov
070a8208af configure: check for blkid/blkid.h header
The check for the presence of blkid/blkid.h was missing.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-04-22 20:43:14 +04:00
Dan Mick
d0a7632a31 Use cpp_strerror() wherever possible, and use autoconf for portability
strerror_r is not portable; on Gnu libc it returns char * and sometimes
does not fill in the supplied buffer.  Use autoconf to test which
version this platform uses and adapt.

Clean up the random calls to strerror and strerror_r (along with all
their private little one-use buffers) and regularize the code to use
cpp_strerror almost everywhere.  Where changed, any negation of the
error code is also removed, since cpp_strerror() will do that.

Note: some tools were using their own calls to strerror/strerror_r, so
will now get a (%d) in their output that wasn't there before; hence
the change to test/cli/monmaptool/print-nonexistent.t

Fixes: #8041
Signed-off-by: Dan Mick <dan.mick@inktank.com>
2014-04-14 13:07:17 -07:00
Jenkins
4c2d73a509 0.79 2014-04-07 16:48:36 +00:00
Loic Dachary
c07aedb6db autotools: intel cpu features detection
Rename SIMD to INTEL for clarity.

Instead of agregating all flags in INTEL_FLAGS, create individual flags
for each feature (INTEL_SSE2_FLAGS etc.) for finer control in the
makefiles.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-27 14:27:23 +01:00
Loic Dachary
1bc680ebff erasure-code: deactivate SSE optimizations
Workaround until the bug is diagnosed and fixed

http://tracker.ceph.com/issues/7826 refs #7826

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-24 09:14:57 +01:00
Sage Weil
361b251e15 v0.78
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJTLLeZAAoJEH6/3V0X7TFtOTMP/Ru4Y8raF/yKFIKeqCu98l51
 CHYEQYHhLviDy6l0JJTZHVjkzYyfD1gf015ggIXGgQ45yp0dY2+Rv5kNJlRn9t+c
 HUyNO2Qaxe+9wmApkIIoNMrkmAcp2FVSNN0Vuri+LmlQkGJdRFwH1qfBnmqEMI22
 /4Zfca68LTFe2RzhE6sF1kqaHJAXx6YpApSyDJ5tzYNIk6JQ5sX4aObIBzPYYSZZ
 +VYbiQgV/UutiO0j2+V4Cg+Bm0tu0d4aoQam5rIYVDdzm17phzox4Y2r4XlTNe21
 5hz1MFGLbvi+gcwOiChQbOerGWa9MWhSstcAKuUmf8la1NHgG13rYVjbWnpiGNrH
 nOblSypZarCLkypOg8Ogv5wS8Q5d4j8MrU2lqciJTmMOVMtIonGg33qpS6WSelAa
 MetDgWqMCqnSeVj0kILE7rSRSZ0hnU4YRPu6mhHaahttdleb4jxQALT8YESp9Yep
 yH5BZHrfaUbqnSek/Pe+rNk+D4fsXMzsRI4YrqpLl/EWTmbtFWS5FXxCzfwQThA9
 SuhZtOCiKMykt/fyIkW9CxQyanGM1uZdRV5driu+2YbAtHQO7zT4sBV8RicEdX3M
 3HHDuuSWzjEN3ASkXUuJYncnXDLxYSiKvXCpTZ5+n5c/MtK7isQnmdt3PJRN5pKJ
 aQp3CL1bTrOue/yhNd/o
 =3q4f
 -----END PGP SIGNATURE-----

Merge tag 'v0.78'

v0.78
2014-03-22 10:24:25 -07:00
Jenkins
f6c746c314 0.78 2014-03-21 22:05:12 +00:00
Loic Dachary
8c7f6c11d4 autotools: AX_SSE detects the compiler SSE capabilities
For each SSE feature supported by the compiler

* add the corresponding -msse* flag
* define HAVE_SSE*

Remove AX_EXT because it decides based on the CPU capabilities of the
machine compiling the binary which may or may not be the one running
them.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-21 13:07:32 +01:00
Loic Dachary
543c642b1a erasure-code: disable SSE extensions
Until jerasure-2 / gf-complete is able to detect them at runtime.

http://tracker.ceph.com/issues/7757 refs #7757

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-18 15:46:22 +01:00
Sage Weil
7bc9ade26b Merge pull request #1384 from dachary/wip-7599
upgrade jerasure to version 2

Reviewed-by: Sage Weil <sage@inktank.com>
2014-03-17 20:52:57 -07:00
Ilya Dryomov
2e342d6d2a FileStore: support compiling without libxfs
When configured with --without-libxfs, use GenericFileStoreBackend
instead of XfsFileStoreBackend for XFS.  At this point this would only
impact the allocation hint op.  The default is to compile with
--with-libxfs.  (Previously it was unconditionally enabled on linux and
disabled for non-linux arches.)

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-03-10 11:44:11 +02:00
Loic Dachary
b74115a508 autotools: set SIMD_FLAGS with SSE flags
As well as compiler options.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-10 08:24:20 +01:00
Ilya Dryomov
1f5b796f58 FileStore: introduce XfsFileStoreBackend class
Introduce XfsFileStoreBackend class, currently the only filestore
backend implementing SETALLOCHINT op.  This commit adds a build-time
dependency on libxfs as xfs-specific ioctl (XFS_IOC_FSSETXATTR /
XFS_XFLAG_EXTSIZE) is used to implement the new set_alloc_hint()
method.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-03-03 20:33:44 +02:00
Ken Dreyer
c5c7f6c8e8 Merge branch 'next'
Conflicts:
	src/test/admin_socket.cc

Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
2014-02-20 03:06:00 +00:00
Ken Dreyer
1bca9c5c41 v0.77 2014-02-19 22:54:44 +00:00
Ilya Dryomov
a5f479c2aa configure: fix F_SETPIPE_SZ detection
Currently CEPH_HAVE_SETPIPE_SZ is not set even if F_SETPIPE_SZ is
available, because AC_COMPILE_IFELSE test program as written always
fails to compile.  F_SETPIPE_SZ is a macro, so use AC_EGREP_CPP which
works on the preprocessor output instead of trying to compile.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-02-10 19:37:30 +02:00
Ilya Dryomov
450163ec40 configure: don't check for arpa/nameser_compat.h twice
Nuke redundant check and move the real one into the common
AC_CHECK_HEADERS stanza.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-02-10 19:37:30 +02:00
Ken Dreyer
3b990136bf v0.76 2014-02-03 18:26:25 +00:00
Ken Dreyer
03d7d97d5d Merge branch 'next' 2014-01-14 16:16:41 +00:00
Ken Dreyer
946d603695 v0.75 2014-01-13 21:07:01 +00:00
Sage Weil
5300ed9428 Merge pull request #1043 from ceph/port/misc
misc portability patches

Reviewed-by: Sage Weil <sage@inktank.com>
2014-01-06 23:00:05 -08:00
Jonathan Dieter
822ad58867 configure: support Automake 1.12
Signed-off-by: Jonathan Dieter <jdieter@lesbg.com>
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
2014-01-06 22:26:17 -07:00
Noah Watkins
ef6a56aa26 keyutils: handle non-linux platform
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2014-01-04 09:18:04 -08:00
Sage Weil
1f47a5b12e Merge pull request #1035 from ceph/port/bitsandints
endianess and integer types

Reviewed-by: Sage Weil <sage@inktank.com>
2014-01-02 13:52:40 -08:00
Noah Watkins
8220549315 inttypes: detect and define missing integer types
Working around missing integer types is pretty easy. For example, the
__u32 family are Linux-specific types, and using these in Ceph
internally is fine because we can typedef them.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2014-01-02 11:03:48 -08:00
Gary Lowell
fe3fd5fb4a Merge branch 'next' 2014-01-01 07:53:37 +00:00
Gary Lowell
c165483bc7 v0.74 2013-12-30 21:03:17 +00:00
Noah Watkins
1fec818f7c spinlock: add generic spinlock implementation
Adds a ceph_spinlock_t implementation that will use pthread_spinlock_t
if available, and otherwise reverts to pthread_mutex_t. Note that this
spinlock is not intended to be used in process-shared memory.

Switches implementation in:

  ceph_context
  SimpleMessenger
  atomic_t

Only ceph_context initialized its spinlock with PTHREAD_PROCESS_SHARED.
However, there does not appear to be any instance in which CephContext
is allocated in shared memory, and thus can use the default private
memory space behavior.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-12-28 14:43:14 -08:00
Sage Weil
b8fb366eab Merge pull request #837 from ceph/port/fallocate
FileJournal: zero-fill in-lieu of posix_fallocate

We may want to change that to a #warning later...

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-26 21:33:39 -08:00
Sage Weil
1597d4e9f5 Merge pull request #951 from ceph/wip-linux-version
common: introduce get_linux_version()

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-16 09:27:43 -08:00
Ilya Dryomov
fcf6e9878b common: introduce get_linux_version()
get_linux_version() returns a version of the currently running kernel,
encoded as in int, and is contained in common/linux_version.[ch].

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2013-12-16 18:57:21 +02:00
Ilya Dryomov
a2babe27e8 configure: break up AC_CHECK_HEADERS into one header-file per line
Break up AC_CHECK_HEADERS macro into one header-file per line so it's
easier to read and make changes.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2013-12-16 18:57:21 +02:00
Ilya Dryomov
462b3898e5 rbd: match against whole disks on unmap
Currently the way 'rbd unmap' translates a user-provided block device
into an rbd id is it matches the major number of the specified device
against /sys/bus/rbd/devices/<id>/major for each rbd mapping and
declares success on the first match.  This works for both entire disks
and partitions, because under the current device number allocation
scheme, each mapping means a new major number.

In preparation for support for single-major device number allocation
scheme, which would require matching both major and minor numbers, make
sure to always match against entire disk device numbers, by converting
the specified device major:minor pair into wholdedisk major:minor pair.
To achive that, use the libblkid library, which accomplishes this goal
by walking stable sysfs structures.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2013-12-13 17:40:52 +02:00
Gary Lowell
e5a02c33e2 Merge branch 'next' 2013-12-10 21:00:14 +00:00
Gary Lowell
d8ad51ee8a v0.73 2013-12-10 04:55:36 +00:00
Noah Watkins
539fe26109 wbthrottle: use feature check for fdatasync
Checking for fdatasync uses the same approach as the qemu configure
script. The relevant commit is d1722a27f552a22561104210e0afad4577878e53.
Here is a copy of the commit message which explains the check:

Under Darwin, a symbol exists for the fdatasync() function, so that our
link test succeeds. However _POSIX_SYNCHRONIZED_IO is set to '-1'.

According to POSIX:2008, a value of -1 means the feature is not
supported.
A value of 0 means supported at compilation time, and a value greater 0
means supported at both compilation and run time.

Enable fdatasync() only if _POSIX_SYNCHRONIZED_IO is '>0'.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-12-07 10:37:00 -08:00
Sage Weil
51cd75080d Merge pull request #838 from xinglin/boost-program-option-check
autoconf: add check for the boost_program_options library

Reviewed-by: Noah Watkins <noah.watkins@inktank.com>
2013-11-29 22:25:28 -08:00
Sage Weil
444ddaef7b Merge pull request #829 from ceph/port/detect-clang
conf: use better clang detection
2013-11-29 22:24:34 -08:00
Josh Durgin
29ef3d4607 Merge branch 'wip-zero-copy-bufferlist-last'
Reviewed-by: Samuel Just <sam.just@inktank.com>
2013-11-25 17:12:03 -08:00
Josh Durgin
be29b3471c buffer: attempt to size raw_pipe buffers
Make sure the requested length is below the maximum pipe size for now,
since we're only using one pipe and splicing once into and out of
it. The default max is 1MB on recent kernels, so this isn't such a
terrible limitation.

To get around this we could use multiple pipes, or keep both source and
destination fds open at the same time and call splice many times. This
is more usual usage for splice, but would require a lot more work to
restructure the filestore and messenger to handle it.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-11-22 16:14:03 -08:00
Josh Durgin
30bc0e2791 safe_io: add functions for handling splice
Like the other functions, these don't handle non-blocking I/O.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-11-22 16:14:03 -08:00
Xing Lin
125582e08e autoconf: add check for the boost_program_options library
check for the existence of boost_program_options library in
configure.ac since several files need that library

Signed-off-by: Xing Lin <xinglin@cs.utah.edu>
2013-11-10 17:06:55 -07:00
Noah Watkins
cfb82a1759 filejournal: add journal pre-allocate for osx
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-10 15:50:13 -08:00
Sage Weil
3596b4cfdb Merge pull request #823 from ceph/port/detect-libresolv
autoconf: check for res_nquery explicitly
2013-11-09 00:36:08 -08:00
Sage Weil
3c70da20e3 Merge pull request #834 from ceph/port/stat
client: use platform-specific stat time members

Reviewed-by: Sage Weil <sage@inktank.com>
2013-11-08 00:26:17 -08:00
Gary Lowell
aef3378bd7 Merge branch 'next' 2013-11-08 05:19:11 +00:00
Noah Watkins
01f7b463d1 client: use platform-specific stat time members
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-07 15:48:05 -08:00
Gary Lowell
5832e2603c v0.72 2013-11-07 20:27:35 +00:00
Noah Watkins
afb3566b18 conf: use better clang detection
Handle case where compiler isn't called 'clang'. This is slightly
modified from the version here:
http://src.chromium.org/svn/branches/1312/src/third_party/mesa/MesaLib/configure.ac

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-06 14:33:52 -08:00
Noah Watkins
ac044812d0 assert: choose function-var name on non-gnu
Selects __PRETTY_FUNCTION__ or __func__. Linux assumes GNU, and chooses
__PRETTY_FUNCTION__ if gcc/g++ versions are favorable.

This also includes a fix in ax_c_var_func.m4:

AC_TRY_COMPILE will wrap the test in main{}, and then GCC will complain
about nested functions. Just use the original main{} body.

diff --git a/m4/ax_c_var_func.m4 b/m4/ax_c_var_func.m4
index 0ad7d2b..8b57563 100644
--- a/m4/ax_c_var_func.m4
+++ b/m4/ax_c_var_func.m4
@@ -57,9 +57,9 @@ AC_DEFUN([AX_C_VAR_FUNC],
 [AC_REQUIRE([AC_PROG_CC])
 AC_CACHE_CHECK(whether $CC recognizes __func__, ac_cv_c_var_func,
 AC_TRY_COMPILE(,
-[int main() {
+[
 char *s = __func__;
-}],
+],
 AC_DEFINE(HAVE_FUNC,,
 [Define if the C complier supports __func__]) ac_cv_c_var_func=yes,
 ac_cv_c_var_func=no) )

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-06 14:16:28 -08:00
Noah Watkins
81a3ea1bc0 rgw: add compat file for name service macros
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-05 13:38:48 -08:00
Noah Watkins
1cc8558b60 autoconf: check for res_nquery explicitly
Creates a test that checks explicitly for res_nquery, which can be a
macro in resolv.h. Defines RESOLV_LIBS that contains any libraries that
need to be linked against.

Notes from later fix:

Based on the 2013-09-30 version of wip-port.  On FreeBSD, one must
include netinet/in.h to get the definitions for stuff in resolv.h.
Also, resolv.h's functions are part of libc instead of libresolv.

Signed-off-by: Alan Somers <asomers@gmail.com>
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-05 08:24:11 -08:00
Sage Weil
74873fd110 Merge pull request #816 from ceph/wip-fadvise
wbthrottle: use posix_fadvise if available

Reviewed-by: Sage Weil <sage@inktank.com>
2013-11-05 05:31:57 -08:00
Noah Watkins
6821a6e83a assert: use feature test for static_cast
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-04 13:14:11 -08:00
Noah Watkins
330a6a769b wbthrottle: use posix_fadvise if available
Only adding information about data usage. This won't effect correctness.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-04 13:01:33 -08:00
Noah Watkins
59a55fdaaf pipe: use pipe2 feature test; check fcntl retval
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-01 16:21:14 -07:00
Gary Lowell
e11c9756af v0.72-rc1 2013-10-30 00:45:10 +00:00
Gary Lowell
e509cb1e69 v0.71 2013-10-17 09:19:36 +00:00
Gary Lowell
7efbebe20f Merge branch 'next' 2013-10-05 02:11:36 +00:00
Gary Lowell
e3bb0656d9 v0.70 2013-10-04 20:12:24 +00:00
Sage Weil
b683005c21 Merge pull request #607 from ceph/prctl-getname-test
code_env: use feature test for PR_GET_NAME support

Reviewed-by: Sage Weil <sage@inktank.com>
2013-09-23 10:14:07 -07:00
Noah Watkins
f3718c29bb code_env: use feature test for PR_GET_NAME support
Function `get_process_name` has platform specific dependencies. Check
for Linux prctl function and correct command flag.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-09-19 15:00:31 -07:00
Gary Lowell
5216ed134b Merge pull request #604 from ceph/wip-buck-centos-core
Wip buck centos core
Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
2013-09-19 13:01:00 -07:00
Gary Lowell
33671f3554 Merge branch 'next' 2013-09-18 09:11:02 +00:00