[sheepdog] [PATCH 1/6] sheep: avoid atomic operations against uint64_t/int64_t variables

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Mon Sep 24 19:26:40 CEST 2012


At Mon, 24 Sep 2012 17:08:15 +0800,
Liu Yuan wrote:
> 
> On 09/19/2012 12:25 PM, MORITA Kazutaka wrote:
> > On 32 bit architectures, atomic operations against 64 bit integers are
> > not allowed.  This patch uses more proper types for them.
> 
> This patch limit object cache size to 4G, which is completely
> unacceptable to object cache users.
> 
> You mentioned we don't support 32 bits machine, but why bother patching
> this?

Well, I don't remember that.  Supporting other architectures has been
on my todo list since I started Sheepdog project.  Actually, I have a
small i386 cluster though I use it only for testing purpose.

Anyway, I should have used 'unsigned long', which is the biggest type
supported by urcu on both x86_64 and i386, instead of 'uint32_t'.
Then, we can use more than 4 GB object cache on 64 bit machines.  I
think counting the number of cache objects instead of cache size looks
better, though.

Thanks,

Kazutaka



More information about the sheepdog mailing list