On Mon, Nov 7, 2011 at 3:34 PM, Tommi Virtanen
<tommi.virta...@dreamhost.com> wrote:
> On Mon, Nov 7, 2011 at 15:10, Sage Weil <s...@newdream.net> wrote:
>> It applies to RBD too... _if_ the ceph-osd process is calling sync(2).
>> On btrfs it doesn't, and on XFS/extN/etc., it only does on older kernels
>> with older glibc.  New kernels (.39+) and new glibc have syncfs(2), which
>> syncs only the fs the ceph-osd is serving up.
>>
>> http://linux.die.net/man/2/syncfs
>
> I'm willing to believe syncfs(2) makes the deadlock more rare, but
> isn't it still possible?
>
> e.g. see slide 23 of www.scs.stanford.edu/nyu/02fa/notes/l3.pdf for a
> description of this in context of loopback NFS. If rbd.ko does write
> caching, and uses buffer cache for it:

There are two different deadlock problems in this thread: sync
deadlock (due to syncs triggering a recursive sync call) versus memory
pressure writeout deadlock.

The first is dealt with by using syncfs; the second is usually dealt
with by using a userspace client (because then the OS can swap the
userspace client memory to disk if necessary).
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to