Re: [ceph-commit] [ceph/ceph] e6a154: osx: compile on OSX

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/10/2012 07:01 AM, Sage Weil wrote:
On Mon, 10 Dec 2012, Jimmy Tang wrote:

On 9 Dec 2012, at 18:22, Noah Watkins wrote:

On Sun, Dec 9, 2012 at 10:05 AM, Gregory Farnum <greg@xxxxxxxxxxx> wrote:
Oooh, very nice! Do you have a list of the dependencies that you actually needed to install?

I can put that together. They were boost, gperf, fuse4x, cryptopp. I
think that might have been it.


Is libaio really needed to build ceph-fuse? I use macports on my system
and the last time I tried to make a change set to let ceph/ceph-fuse
build on my laptop failed as I didn't have libaio, though I could just
write a port for it.

libaio is only used by ceph-osd.  Not needed by fuse.

An alternative on OSX could be aio-lite: https://trac.mcs.anl.gov/projects/aio-lite

It might perform better on linux as well because of the request serialization there, although that library was implemented a few years ago, and the linux implementation may have improved significantly since then. It also wouldn't be hard to do something similar with ceph thread structures instead of depending on an external library like this one.

-sam


sage



Apart from breaking this up into smaller patches, we'll also want to reformat some of it. Rather than sticking an #if APPLE on top of every spin lock, we should have utility functions that do this for us. ;)

Definitely. OSX has spinlock implementations for user space, but it's
going to take some reading. For example, spinlocks in Ceph are
initialized for shared memory, rather than the default private. It
isn't clear from documentation what the semantics are of OSX
spinlocks, nor is it clear if the shared memory attribute is needed.

Also, we should be able to find libatomic_ops for OS X (its parent project works under OS X), and we can use that to construct a spin lock if we think it'll be useful. I'm not too sure how effective its muteness are at spinlock-y workloads.

This patch set uses the OSX atomic inc/dec ops, rather than spinlocks.

Another fun fact:

msg/Pipe.cc and common/pipe.c are compiled into libcommon_la-Pipe.o
and libcommon_la-pipe.o, but HFS+ is case-insensitive by default.
Result is duplicate symbols. That took a while to figure out :P


good catch, that might explain why my last look at ceph on osx failed so miserably.


Jimmy.

--
Senior Software Engineer, Digital Repository of Ireland (DRI)
Trinity Centre for High Performance Computing,
Lloyd Building, Trinity College Dublin, Dublin 2, Ireland.
http://www.tchpc.tcd.ie/ | jtang@xxxxxxxxxxxx
Tel: +353-1-896-3847

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux