Coda File System

Re: librvm.so vs. librvmlwp.so ?

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Thu, 14 Sep 2006 00:21:15 -0400
On Wed, Sep 13, 2006 at 10:06:35PM -0400, Adam Goode wrote:
> Is there any real difference between librvm.so and librvmlwp.so ?
> It looks like these two libraries are 99% identical except for a little
> code in the log and util functions.

The main (and very important difference) is that librvm assumes that the
application is single-threaded and has no locking around critical
sections. The librvmlwp version uses liblwp lock primitives to allow for
concurrent threads.

Some minor details are that the lwp version actually starts an LWP
thread to periodically flush changes from the RVM log to RVM data, while
the non-lwp variant requires the application to explicitly use rvm_flush().

> Is there any reason to have both libraries installed at once? Can this
> just be a compile-time option?

No real reason, most Coda binaries only use the lwp variant. I think
only the rvm_basher test program links against the non-threaded variant.
Not 100% sure though, it could be that the server RVM debugging tools
(norton and norton-reinit) link against the non-threaded version.

Jan
Received on 2006-09-14 00:22:40