All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Chinner <dgc@sgi.com>
To: Christoph Hellwig <hch@lst.de>
Cc: David Chinner <dgc@sgi.com>,
	Michal Piotrowski <michal.k.k.piotrowski@gmail.com>,
	xfs-masters@oss.sgi.com,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1
Date: Tue, 22 May 2007 20:44:30 +1000	[thread overview]
Message-ID: <20070522104429.GN86004887@sgi.com> (raw)
In-Reply-To: <20070521102321.GA2632@lst.de>

On Mon, May 21, 2007 at 12:23:21PM +0200, Christoph Hellwig wrote:
> On Mon, May 21, 2007 at 08:11:42PM +1000, David Chinner wrote:
> > Christoph - this is an interaction with xfs_buf_associate_memory();
> > I'm not sure what it is doing is at all safe now that it never gets
> > passed kmem_alloc()d memory - it works for the log recovery case
> > because we use it in pairs - once to shorten the buffer and then once
> > to put it back the way it was.
> > 
> > But that doesn't work for the log buffers (we never return them to their
> > original state) and the log wrap case looks to work mostly by accident
> > now (and could posibly lead to double freeing pages)....
> > 
> > It seems that what we really need with the new code is a xfs_buf_clone()
> > operation followed by trimming the range to what the secondary I/O needs
> > to span. This would work for the log buffer case as well. Your thoughts?
> 
> xfs_buf_associate_memory is a mess.  My original plan was to get rid of
> it, but I kept that out to keep that patchset small and easily reviable,
> but it seems like that was a mistake.  My plan is the following:
> 
>  - xlog_bread and thus the whole buffer I/O path grows an iooffset
>    paramater that specifies at which offset into the buffer we start
>    the actual I/O.  That gets rid of all the xfs_buf_associate_memory
>    memory uses in the log recovery code

Perhaps a new field in the xfs_buf structure - that way call paths
don't need to grow extra parameters and potentially increase
stack usage. The read path tends to be at the top of the stack
when it gets blown in the writeback path....

>  - add a buffer clone operation as suggested by you above, and use
>    the offset in xlog_sync aswell.

I don't want to have to introduce a mempool just for one xfs_buf per
filesystem, so this would need to be able to take a xfs_buf (log->l_xbuf)
that it clones to.... 

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

  reply	other threads:[~2007-05-22 10:45 UTC|newest]

Thread overview: 151+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-16  3:19 2.6.22-rc1-mm1 Andrew Morton
2007-05-16  6:06 ` 2.6.22-rc1-mm1 KAMEZAWA Hiroyuki
2007-05-16  7:58   ` 2.6.22-rc1-mm1 Jeff Garzik
2007-05-16  8:04     ` 2.6.22-rc1-mm1 Andrew Morton
2007-05-16 15:33       ` 2.6.22-rc1-mm1 Jeff Garzik
2007-05-16 20:24       ` 2.6.22-rc1-mm1 Darrick J. Wong
2007-05-16 16:54   ` 2.6.22-rc1-mm1 Randy Dunlap
2007-05-16  7:57 ` 2.6.22-rc1-mm1 - s390 vs. md Cornelia Huck
2007-05-16 17:21   ` Williams, Dan J
2007-05-16 10:18 ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-05-16 15:16   ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-16 17:40     ` 2.6.22-rc1-mm1 Mel Gorman
2007-05-16 17:55       ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-16 18:18         ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-05-16 18:00       ` 2.6.22-rc1-mm1 Andrew Morton
2007-05-16 23:32       ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-16 23:36       ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-17  9:35         ` 2.6.22-rc1-mm1 Mel Gorman
2007-05-29 22:34           ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-06-01  9:50             ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-06-01 23:12               ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-06-05 18:38                 ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-06-05 22:57                   ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-06-07  9:49                     ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-06-11 13:58                       ` 2.6.22-rc1-mm1 Andy Whitcroft
     [not found]                         ` <63a08cc7547f14065becdf9a94d0d529@pinky>
2007-06-11 16:15                           ` [PATCH] move the kernel to 16MB for NUMA-Q Andrew Morton
2007-06-11 17:20                             ` Dave Jones
2007-06-11 17:36                               ` H. Peter Anvin
2007-06-11 18:19                                 ` Jan Engelhardt
2007-06-11 18:46                                   ` Dave Jones
2007-06-11 19:17                                     ` Alan Cox
2007-06-11 20:07                                     ` Rene Herman
2007-06-11 20:21                                       ` Rene Herman
2007-06-11 19:01                                   ` H. Peter Anvin
2007-06-11 20:44                                     ` Jan Engelhardt
2007-06-11 20:51                                       ` H. Peter Anvin
2007-06-15 11:12                                         ` Jan Engelhardt
2007-06-11 17:49                               ` Rene Herman
2007-06-11 17:58                                 ` H. Peter Anvin
2007-06-11 18:01                                   ` Rene Herman
2007-05-17  4:16     ` 2.6.22-rc1-mm1 Bharata B Rao
2007-05-18  8:54     ` 2.6.22-rc1-mm1 young dave
2007-05-18 10:07       ` 2.6.22-rc1-mm1 young dave
2007-05-18 16:54         ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-18 16:59           ` 2.6.22-rc1-mm1 Mel Gorman
2007-05-21  0:53           ` 2.6.22-rc1-mm1 young dave
2007-05-21  4:49             ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-21  5:00               ` 2.6.22-rc1-mm1 young dave
2007-05-21  5:03                 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-21  5:39                   ` 2.6.22-rc1-mm1 young dave
     [not found]                     ` <465138CC.3060605@zytor.com>
2007-05-21  8:41                       ` 2.6.22-rc1-mm1 young dave
2007-05-21 16:35                         ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-22  2:14                           ` 2.6.22-rc1-mm1 young dave
     [not found]                             ` <465319C1.2080206@zytor.com>
2007-05-23  1:15                               ` 2.6.22-rc1-mm1 young dave
2007-05-16 12:10 ` (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1] Jiri Slaby
2007-05-16 12:39   ` Nick Piggin
2007-05-16 12:44     ` Jiri Slaby
2007-05-16 12:47       ` Nick Piggin
2007-05-16 13:00     ` Trond Myklebust
2007-05-16 13:06       ` Nick Piggin
2007-05-16 12:52   ` Trond Myklebust
2007-05-16 14:30 ` 2.6.22-rc1-mm1 Michal Piotrowski
2007-05-16 14:37   ` 2.6.22-rc1-mm1 Nick Piggin
     [not found]     ` <6bffcb0e0705160935r1767a764hce72f24f9eee6c1e@mail.gmail.com>
2007-05-16 16:58       ` 2.6.22-rc1-mm1 Jiri Slaby
2007-05-16 15:34   ` 2.6.22-rc1-mm1 Gabriel C
2007-05-16 16:24 ` 2.6.22-rc1-mm1 Michal Piotrowski
2007-05-16 16:41   ` 2.6.22-rc1-mm1 Andrew Morton
2007-05-17  2:06     ` 2.6.22-rc1-mm1 David Chinner
2007-05-17  8:41       ` [xfs-masters] 2.6.22-rc1-mm1 Christoph Hellwig
2007-05-17 20:05         ` Michal Piotrowski
2007-05-18  2:11           ` David Chinner
2007-05-21 10:11             ` David Chinner
2007-05-21 10:23               ` Christoph Hellwig
2007-05-22 10:44                 ` David Chinner [this message]
2007-05-22 11:42                   ` Christoph Hellwig
2007-05-22 23:23                   ` Nathan Scott
2007-05-22 14:45               ` Michal Piotrowski
2007-05-16 16:50 ` 2.6.22-rc1-mm1 Randy Dunlap
2007-05-16 17:00   ` 2.6.22-rc1-mm1 Richard Purdie
2007-05-16 17:06     ` 2.6.22-rc1-mm1 Andrew Morton
2007-05-16 19:55       ` 2.6.22-rc1-mm1 Richard Purdie
2007-05-16 20:00       ` 2.6.22-rc1-mm1 Richard Purdie
2007-05-18 17:34         ` 2.6.22-rc1-mm1 Edward Shishkin
2007-05-16 17:37 ` 2.6.22-rc1-mm1 [cannot change thermal trip points] Maciej Rutecki
2007-05-16 17:47   ` Chuck Ebbert
2007-05-16 17:47     ` Chuck Ebbert
2007-05-16 18:10     ` Goulven Guillard
2007-05-16 18:10       ` Goulven Guillard
2007-05-17  9:23     ` Pavel Machek
2007-05-17 13:36       ` Maciej Rutecki
2007-05-17 19:08         ` Len Brown
2007-05-17 20:09           ` Maciej Rutecki
2007-05-17 20:42             ` Maciej Rutecki
2007-05-17 21:53           ` Pavel Machek
2007-05-17 22:42             ` Len Brown
2007-05-21 12:11               ` Pavel Machek
2007-06-01  2:46                 ` Len Brown
2007-06-04 11:16                   ` Pavel Machek
2007-05-17 19:17       ` Len Brown
2007-05-17 21:52         ` Pavel Machek
2007-05-17 22:35           ` Len Brown
2007-06-04  9:02             ` Stefan Seyfried
2007-06-04  9:02               ` Stefan Seyfried
2007-06-04 11:06               ` Pavel Machek
2007-05-19 19:56         ` Thomas Renninger
2007-05-21  3:50           ` Len Brown
2007-05-21 11:31             ` Thomas Renninger
2007-05-21 12:10             ` Pavel Machek
2007-05-21 13:27               ` Matthew Garrett
2007-05-21 13:29                 ` Pavel Machek
2007-05-21 13:36                   ` Matthew Garrett
2007-05-21 13:40                     ` Pavel Machek
2007-05-21 13:45                       ` Matthew Garrett
2007-05-21 22:42                         ` Pavel Machek
2007-05-22  0:31                           ` Matthew Garrett
2007-05-22  9:06                             ` Pavel Machek
2007-05-22  9:16                               ` Matthew Garrett
2007-05-22  9:28                                 ` Goulven Guillard
2007-05-22  9:28                                   ` Goulven Guillard
2007-05-22 10:05                                 ` Maciej Rutecki
2007-06-04  9:13                               ` Stefan Seyfried
2007-06-04  9:13                                 ` Stefan Seyfried
2007-05-24 14:16                             ` 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: " Thomas Renninger
2007-05-24 14:36                               ` Matthew Garrett
2007-05-24 18:18                                 ` Thomas Renninger
2007-05-25  6:38                                 ` Pavel Machek
2007-05-27 21:51                                   ` Matthew Garrett
2007-05-28 10:58                                     ` Pavel Machek
2007-05-28 12:50                                       ` Matthew Garrett
2007-05-28 12:53                                         ` Pavel Machek
2007-05-16 18:55 ` 2.6.22-rc1-mm1: IDE compile error Adrian Bunk
2007-05-23 23:45   ` Bartlomiej Zolnierkiewicz
2007-05-24 10:55     ` Alan Cox
2007-05-24 18:53       ` H. Peter Anvin
2007-05-25  0:05       ` H. Peter Anvin
2007-05-25  0:14         ` Alan Cox
2007-05-25  0:18           ` H. Peter Anvin
2007-05-25  0:38             ` Alan Cox
2007-05-25  0:51               ` H. Peter Anvin
2007-05-25 14:19                 ` Alan Cox
2007-05-17 12:38 ` 2.6.22-rc1-mm1 - Call trace in slub_def.h Reuben Farrelly
2007-05-17 12:52   ` Satyam Sharma
2007-05-20 10:12 ` 2.6.22-rc1-mm1 Mariusz Kozlowski
2007-05-20 10:12   ` 2.6.22-rc1-mm1 Mariusz Kozlowski
2007-05-20 10:21   ` 2.6.22-rc1-mm1 Sam Ravnborg
2007-05-20 10:21     ` 2.6.22-rc1-mm1 Sam Ravnborg
2007-05-20 15:33     ` 2.6.22-rc1-mm1 Kumar Gala
2007-05-20 15:33       ` 2.6.22-rc1-mm1 Kumar Gala
2007-05-22  7:25 ` 2.6.22-rc1-mm1: evm BUG when reading sysfs file Joseph Fannin
2007-05-22 21:23   ` Andrew Morton
2007-05-25 21:05     ` Mimi Zohar

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=20070522104429.GN86004887@sgi.com \
    --to=dgc@sgi.com \
    --cc=akpm@linux-foundation.org \
    --cc=hch@lst.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.k.k.piotrowski@gmail.com \
    --cc=xfs-masters@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.