Commit Graph

338 Commits

Author SHA1 Message Date
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