From: Mark Syms <Mark.Syms@citrix.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH 1/2] GFS2: use schedule timeout in find insert glock
Date: Tue, 9 Oct 2018 08:50:15 +0000 [thread overview]
Message-ID: <46277514ff8c4cb3b46a29c914a4fcc3@AMSPEX02CL02.citrite.net> (raw)
In-Reply-To: <d3f16837-8bf2-eaf3-141c-cb1408747865@redhat.com>
We think we have, just making a build to test.
Will follow up later.
Mark.
-----Original Message-----
From: Steven Whitehouse <swhiteho@redhat.com>
Sent: 09 October 2018 09:41
To: Mark Syms <Mark.Syms@citrix.com>; Tim Smith <tim.smith@citrix.com>
Cc: cluster-devel at redhat.com; Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: Re: [Cluster-devel] [PATCH 1/2] GFS2: use schedule timeout in find insert glock
On 09/10/18 09:13, Mark Syms wrote:
> Having swapped the line below around we still see the timeout on
> schedule fire, but only once in a fairly mega stress test. This is why
> we weren't worried about the timeout being HZ, the situation is hardly
> ever hit as having to wait is rare and normally we are woken from
> schedule and without a timeout on schedule we never wake up so a rare occurrence of waiting a second really doesn't seem too bad.
>
> Mark.
We should still get to the bottom of why the wake up is missing though, since without that fix we won't know if there is something else wrong somewhere,
Steve.
>
> -----Original Message-----
> From: Tim Smith <tim.smith@citrix.com>
> Sent: 08 October 2018 14:27
> To: Steven Whitehouse <swhiteho@redhat.com>
> Cc: Mark Syms <Mark.Syms@citrix.com>; cluster-devel at redhat.com; Ross
> Lagerwall <ross.lagerwall@citrix.com>
> Subject: Re: [Cluster-devel] [PATCH 1/2] GFS2: use schedule timeout in
> find insert glock
>
> On Monday, 8 October 2018 14:13:10 BST Steven Whitehouse wrote:
>> Hi,
>>
>> On 08/10/18 14:10, Tim Smith wrote:
>>> On Monday, 8 October 2018 14:03:24 BST Steven Whitehouse wrote:
>>>> On 08/10/18 13:59, Mark Syms wrote:
>>>>> That sounds entirely reasonable so long as you are absolutely sure
>>>>> that nothing is ever going to mess with that glock, we erred on
>>>>> the side of more caution not knowing whether it would be guaranteed safe or not.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Mark
>>>> We should have a look at the history to see how that wait got added.
>>>> However the "dead" flag here means "don't touch this glock" and is
>>>> there so that we can separate the marking dead from the actual
>>>> removal from the list (which simplifies the locking during the
>>>> scanning procedures)
>>> You beat me to it :-)
>>>
>>> I think there might be a bit of a problem inserting a new entry with
>>> the same name before the old entry has been fully destroyed (or at
>>> least removed), which would be why the schedule() is there.
>> If the old entry is marked dead, all future lookups should ignore it.
>> We should only have a single non-dead entry at a time, but that
>> doesn't seem like it should need us to wait for it.
> On the second call we do have the new glock to insert as arg2, so we could try to swap them cleanly, yeah.
>
>> If we do discover that the wait is really required, then it sounds
>> like as you mentioned above there is a lost wakeup, and that must
>> presumably be on a code path that sets the dead flag and then fails
>> to send a wake up later on. If we can drop the wait in the first
>> place, that seems like a better plan,
> Ooooh, I wonder if these two lines:
>
> wake_up_glock(gl);
> call_rcu(&gl->gl_rcu, gfs2_glock_dealloc);
>
> in gfs2_glock_free() are the wrong way round?
>
> --
> Tim Smith <tim.smith@citrix.com>
>
>
next prev parent reply other threads:[~2018-10-09 8:50 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-08 12:36 [Cluster-devel] [PATCH 0/2] GFS2 locking patches Mark Syms
2018-10-08 12:36 ` [Cluster-devel] [PATCH 1/2] GFS2: use schedule timeout in find insert glock Mark Syms
2018-10-08 12:56 ` Steven Whitehouse
2018-10-08 12:59 ` Mark Syms
2018-10-08 13:03 ` Steven Whitehouse
2018-10-08 13:10 ` Tim Smith
2018-10-08 13:13 ` Steven Whitehouse
2018-10-08 13:26 ` Tim Smith
2018-10-09 8:13 ` Mark Syms
2018-10-09 8:41 ` Steven Whitehouse
2018-10-09 8:50 ` Mark Syms [this message]
2018-10-09 12:34 ` Andreas Gruenbacher
2018-10-09 14:00 ` Tim Smith
2018-10-09 14:47 ` Andreas Gruenbacher
2018-10-09 15:34 ` Tim Smith
2018-10-08 13:25 ` Bob Peterson
2018-10-08 12:36 ` [Cluster-devel] [PATCH 2/2] GFS2: Flush the GFS2 delete workqueue before stopping the kernel threads Mark Syms
2018-10-08 12:57 ` Steven Whitehouse
2018-10-08 20:10 ` Bob Peterson
2018-10-08 20:53 ` Mark Syms
[not found] ` <1603192.QCZcUHDx0E@dhcp-3-135.uk.xensource.com>
[not found] ` <CAHc6FU7AyDQ=yEj9WtN+aqtf7jfWs0TGh=Og0fQFVHyYMKHacA@mail.gmail.com>
2018-10-09 15:08 ` [Cluster-devel] [PATCH 1/2] GFS2: use schedule timeout in find insert glock Tim Smith
2018-10-10 8:22 ` Tim Smith
2018-10-11 8:14 ` Mark Syms
2018-10-11 19:28 ` Mark Syms
[not found] ` <5bbfa461.1c69fb81.1242f.59a7SMTPIN_ADDED_BROKEN@mx.google.com>
2019-03-06 16:14 ` Andreas Gruenbacher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=46277514ff8c4cb3b46a29c914a4fcc3@AMSPEX02CL02.citrite.net \
--to=mark.syms@citrix.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).