All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Myers <bpm@sgi.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: xfs@oss.sgi.com
Subject: Re: [patch 02/12] xfs: do exact log space wakeups in xlog_ungrant_log_space
Date: Thu, 16 Feb 2012 12:36:59 -0600	[thread overview]
Message-ID: <20120216183659.GR7762@sgi.com> (raw)
In-Reply-To: <20111212141433.714245384@bombadil.infradead.org>

On Mon, Dec 12, 2011 at 09:13:49AM -0500, Christoph Hellwig wrote:
> The only reason that xfs_log_space_wake had to do opportunistic wakeups
> was that the old xfs_log_move_tail calling convention didn't allow for
> exact wakeups when not updating the log tail LSN.

Man, that's a doosey. 

when you called xfs_log_move_tail...

if you passed tail_lsn = 1
it would:			not move the tail
				ignore strict accounting and wake only 1

if you passed tail_lsn = 0
it would:			get tail_lsn from l_last_sync_lsn
				move the tail
				pay attention to strict accounting
				wake as many as is correct

if you passed tail_lsn = !1, !0
it would:			move the tail
				pay attention to strict accounting
				wake as many as is correct.

The important thing to understand is that the opportunistic wakeups
would ignore the the test (free_bytes < need_bytes) in
xfs_log_move_tail, so you could wake a process regardless of whether
there is sufficient space in the log for it.  No wonder they had to
pepper the code with opportunistic wakeups to prevent log space hangs... 

> Since this issue has
> been fixed we can do exact wakeups now.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> 
> ---
>  fs/xfs/xfs_log.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Index: xfs/fs/xfs/xfs_log.c
> ===================================================================
> --- xfs.orig/fs/xfs/xfs_log.c	2011-12-11 15:30:49.977750776 +0100
> +++ xfs/fs/xfs/xfs_log.c	2011-12-11 17:49:00.692836117 +0100
> @@ -2748,7 +2748,7 @@ xlog_ungrant_log_space(xlog_t	     *log,
>  
>  	trace_xfs_log_ungrant_exit(log, ticket);
>  
> -	xfs_log_space_wake(log->l_mp, true);
> +	xfs_log_space_wake(log->l_mp, false);

Yeah, he's doing an _exact_ wakeup now.

Reviewed-by: Ben Myers <bpm@sgi.com>

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  parent reply	other threads:[~2012-02-16 18:36 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-12 14:13 [patch 00/12] log grant code cleanups Christoph Hellwig
2011-12-12 14:13 ` [patch 01/12] xfs: split tail_lsn assignments from log space wakeups Christoph Hellwig
2012-01-17 18:48   ` Mark Tinguely
2012-01-25 16:09     ` Christoph Hellwig
2012-02-16 18:21   ` Ben Myers
2012-02-17 19:21     ` Christoph Hellwig
2011-12-12 14:13 ` [patch 02/12] xfs: do exact log space wakeups in xlog_ungrant_log_space Christoph Hellwig
2012-01-17 22:42   ` Mark Tinguely
2012-02-16 18:36   ` Ben Myers [this message]
2011-12-12 14:13 ` [patch 03/12] xfs: remove xfs_trans_unlocked_item Christoph Hellwig
2012-01-23 14:31   ` Mark Tinguely
2012-02-16 18:51     ` Ben Myers
2011-12-12 14:13 ` [patch 04/12] xfs: cleanup xfs_log_space_wake Christoph Hellwig
2012-01-23 19:22   ` Mark Tinguely
2012-01-25 16:10     ` Christoph Hellwig
2012-01-25 19:09       ` Mark Tinguely
2012-01-26 16:13         ` Mark Tinguely
2012-01-26 22:12         ` Dave Chinner
2012-02-16 19:06   ` Ben Myers
2011-12-12 14:13 ` [patch 05/12] xfs: remove log space waitqueues Christoph Hellwig
2012-01-23 21:58   ` Mark Tinguely
2011-12-12 14:13 ` [patch 06/12] xfs: add the xlog_grant_head structure Christoph Hellwig
2012-01-24 15:35   ` Mark Tinguely
2012-02-16 20:23   ` Ben Myers
2011-12-12 14:13 ` [patch 07/12] xfs: add xlog_grant_head_init Christoph Hellwig
2012-01-24 15:43   ` Mark Tinguely
2012-02-16 20:29   ` Ben Myers
2011-12-12 14:13 ` [patch 08/12] xfs: add xlog_grant_head_wake_all Christoph Hellwig
2012-01-24 15:46   ` Mark Tinguely
2012-02-16 20:44   ` Ben Myers
2011-12-12 14:13 ` [patch 09/12] xfs: share code for grant head waiting Christoph Hellwig
2012-01-24 18:10   ` Mark Tinguely
2012-02-16 20:51   ` Ben Myers
2011-12-12 14:13 ` [patch 10/12] xfs: shared code for grant head wakeups Christoph Hellwig
2012-01-24 18:37   ` Mark Tinguely
2012-02-16 21:08   ` Ben Myers
2011-12-12 14:13 ` [patch 11/12] xfs: share code for grant head availability checks Christoph Hellwig
2012-01-24 18:53   ` Mark Tinguely
2012-02-16 21:25   ` Ben Myers
2012-02-17  2:41     ` Dave Chinner
2011-12-12 14:13 ` [patch 12/12] xfs: split and cleanup xfs_log_reserve Christoph Hellwig
2012-02-16 21:36   ` Ben Myers
2012-02-19 21:16     ` Christoph Hellwig
2012-02-16  6:16 ` [patch 00/12] log grant code cleanups Dave Chinner
2012-02-17 18:00   ` Christoph Hellwig
2012-02-16 21:46 ` Ben Myers
2012-02-19 21:17   ` Christoph Hellwig
2012-02-20 21:59     ` Ben Myers
  -- strict thread matches above, loose matches on Subject: below --
2012-02-20  2:31 [PATCH 00/12] log grant code cleanups V2 Christoph Hellwig
2012-02-20  2:31 ` [PATCH 02/12] xfs: do exact log space wakeups in xlog_ungrant_log_space Christoph Hellwig

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=20120216183659.GR7762@sgi.com \
    --to=bpm@sgi.com \
    --cc=hch@infradead.org \
    --cc=xfs@oss.sgi.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.