<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/gfs2/locking/dlm, branch v3.4.7</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs/gfs2/locking/dlm?h=v3.4.7</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs/gfs2/locking/dlm?h=v3.4.7'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2009-03-24T11:21:14Z</updated>
<entry>
<title>GFS2: Merge lock_dlm module into GFS2</title>
<updated>2009-03-24T11:21:14Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2009-01-12T10:43:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f057f6cdf64175db1151b1f5d110e29904f119a1'/>
<id>urn:sha1:f057f6cdf64175db1151b1f5d110e29904f119a1</id>
<content type='text'>
This is the big patch that I've been working on for some time
now. There are many reasons for wanting to make this change
such as:
 o Reducing overhead by eliminating duplicated fields between structures
 o Simplifcation of the code (reduces the code size by a fair bit)
 o The locking interface is now the DLM interface itself as proposed
   some time ago.
 o Fewer lookups of glocks when processing replies from the DLM
 o Fewer memory allocations/deallocations for each glock
 o Scope to do further optimisations in the future (but this patch is
   more than big enough for now!)

Please note that (a) this patch relates to the lock_dlm module and
not the DLM itself, that is still a separate module; and (b) that
we retain the ability to build GFS2 as a standalone single node
filesystem with out requiring the DLM.

This patch needs a lot of testing, hence my keeping it I restarted
my -git tree after the last merge window. That way, this has the maximum
exposure before its merged. This is (modulo a few minor bug fixes) the
same patch that I've been posting on and off the the last three months
and its passed a number of different tests so far.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Send useful information with uevent messages</title>
<updated>2009-01-05T07:39:15Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-11-27T09:42:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9a776db7371b9c77a8f4f0d2ac6374d78ac7db7d'/>
<id>urn:sha1:9a776db7371b9c77a8f4f0d2ac6374d78ac7db7d</id>
<content type='text'>
In order to distinguish between two differing uevent messages
and to avoid using the (racy) method of reading status from
sysfs in future, this adds some status information to our
uevent messages.

Btw, before anybody says "sysfs isn't racy", I'm aware of that,
but the way that GFS2 was using it (send an ambiugous uevent and
then expect the receiver to read sysfs to find out the status
of the reported operation) was.

The additional benefit of using the new interface is that it
should be possible for a node to recover multiple journals
at the same time, since there is no longer any confusion as
to which journal the status belongs to.

At some future stage, when all the userland programs have been
converted, I intend to remove the old interface.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Send some sensible sysfs stuff</title>
<updated>2009-01-05T07:39:10Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-11-26T10:26:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fdd1062ebaa422c5684f97fa91da06f91167d76b'/>
<id>urn:sha1:fdd1062ebaa422c5684f97fa91da06f91167d76b</id>
<content type='text'>
We ought to inform the user of the locktable and lockproto for each
uevent we generate.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: allow multiple lockspace creates</title>
<updated>2008-08-28T16:49:15Z</updated>
<author>
<name>David Teigland</name>
<email>teigland@redhat.com</email>
</author>
<published>2008-08-06T18:30:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0f8e0d9a317406612700426fad3efab0b7bbc467'/>
<id>urn:sha1:0f8e0d9a317406612700426fad3efab0b7bbc467</id>
<content type='text'>
Add a count for lockspace create and release so that create can
be called multiple times to use the lockspace from different places.
Also add the new flag DLM_LSFL_NEWEXCL to create a lockspace with
the previous behavior of returning -EEXIST if the lockspace already
exists.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Fix module building</title>
<updated>2008-06-27T08:40:57Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-06-27T08:40:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f17172e00167238cc5e4f61ac4e78c68e5c558ec'/>
<id>urn:sha1:f17172e00167238cc5e4f61ac4e78c68e5c558ec</id>
<content type='text'>
Two lines missed from the previous patch.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Remove all_list from lock_dlm</title>
<updated>2008-06-27T08:39:50Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-06-04T14:06:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=31fcba00fe7145527b159f8893ec6c9cc61309fd'/>
<id>urn:sha1:31fcba00fe7145527b159f8893ec6c9cc61309fd</id>
<content type='text'>
I discovered that we had a list onto which every lock_dlm
lock was being put. Its only function was to discover whether
we'd got any locks left after umount. Since there was already
a counter for that purpose as well, I removed the list. The
saving is sizeof(struct list_head) per glock - well worth
having.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Remove obsolete conversion deadlock avoidance code</title>
<updated>2008-06-27T08:39:47Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-06-03T13:34:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b2cad26cfc2091050574a460b304ed103a35dbda'/>
<id>urn:sha1:b2cad26cfc2091050574a460b304ed103a35dbda</id>
<content type='text'>
This is only used by GFS1 so can be removed.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Remove remote lock dropping code</title>
<updated>2008-06-27T08:39:44Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-06-03T13:09:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1bdad606338debc6384b2844f1b53cc436b3ac90'/>
<id>urn:sha1:1bdad606338debc6384b2844f1b53cc436b3ac90</id>
<content type='text'>
There are several reasons why this is undesirable:

 1. It never happens during normal operation anyway
 2. If it does happen it causes performance to be very, very poor
 3. It isn't likely to solve the original problem (memory shortage
    on remote DLM node) it was supposed to solve
 4. It uses a bunch of arbitrary constants which are unlikely to be
    correct for any particular situation and for which the tuning seems
    to be a black art.
 5. In an N node cluster, only 1/N of the dropped locked will actually
    contribute to solving the problem on average.

So all in all we are better off without it. This also makes merging
the lock_dlm module into GFS2 a bit easier.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Fix ordering bug in lock_dlm</title>
<updated>2008-06-27T08:39:25Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-05-21T16:21:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f3c9d38a26be32abf9b8897e9e0afc7166c712dd'/>
<id>urn:sha1:f3c9d38a26be32abf9b8897e9e0afc7166c712dd</id>
<content type='text'>
This looks like a lot of change, but in fact its not. Mostly its
things moving from one file to another. The change is just that
instead of queuing lock completions and callbacks from the DLM
we now pass them directly to GFS2.

This gives us a net loss of two list heads per glock (a fair
saving in memory) plus a reduction in the latency of delivering
the messages to GFS2, plus we now have one thread fewer as well.
There was a bug where callbacks and completions could be delivered
in the wrong order due to this unnecessary queuing which is fixed
by this patch.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Cc: Bob Peterson &lt;rpeterso@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Clean up the glock core</title>
<updated>2008-06-27T08:39:22Z</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-05-21T16:03:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6802e3400ff4549525930ee744030c36fce9cc73'/>
<id>urn:sha1:6802e3400ff4549525930ee744030c36fce9cc73</id>
<content type='text'>
This patch implements a number of cleanups to the core of the
GFS2 glock code. As a result a lot of code is removed. It looks
like a really big change, but actually a large part of this patch
is either removing or moving existing code.

There are some new bits too though, such as the new run_queue()
function which is considerably streamlined. Highlights of this
patch include:

 o Fixes a cluster coherency bug during SH -&gt; EX lock conversions
 o Removes the "glmutex" code in favour of a single bit lock
 o Removes the -&gt;go_xmote_bh() for inodes since it was duplicating
   -&gt;go_lock()
 o We now only use the -&gt;lm_lock() function for both locks and
   unlocks (i.e. unlock is a lock with target mode LM_ST_UNLOCKED)
 o The fast path is considerably shortly, giving performance gains
   especially with lock_nolock
 o The glock_workqueue is now used for all the callbacks from the DLM
   which allows us to simplify the lock_dlm module (see following patch)
 o The way is now open to make further changes such as eliminating the two
   threads (gfs2_glockd and gfs2_scand) in favour of a more efficient
   scheme.

This patch has undergone extensive testing with various test suites
so it should be pretty stable by now.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Cc: Bob Peterson &lt;rpeterso@redhat.com&gt;
</content>
</entry>
</feed>
