xfs
[Top] [All Lists]

Re: [PATCH 2/9]: Reduce Log I/O latency

To: Andi Kleen <andi@xxxxxxxxxxxxxx>
Subject: Re: [PATCH 2/9]: Reduce Log I/O latency
From: David Chinner <dgc@xxxxxxx>
Date: Fri, 23 Nov 2007 15:03:29 +1100
Cc: David Chinner <dgc@xxxxxxx>, Stewart Smith <stewart@xxxxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>, lkml <linux-kernel@xxxxxxxxxxxxxxx>
In-reply-to: <20071123025317.GA12257@xxxxxxxxxxxxxxxxxx>
References: <20071122003339.GH114266761__34694.2978365861$1195691722$gmane$org@xxxxxxx> <p73oddnhzoq.fsf@xxxxxxxxxxxxxx> <20071122011214.GR114266761@xxxxxxx> <1195702123.8369.78.camel@xxxxxxxxxxxxxxxxxxxxx> <20071122120611.GA3573@xxxxxxxxxxxxxxxxxx> <20071122131539.GX114266761@xxxxxxx> <20071123025317.GA12257@xxxxxxxxxxxxxxxxxx>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
On Fri, Nov 23, 2007 at 03:53:17AM +0100, Andi Kleen wrote:
> On Fri, Nov 23, 2007 at 12:15:39AM +1100, David Chinner wrote:
> > On Thu, Nov 22, 2007 at 01:06:11PM +0100, Andi Kleen wrote:
> > > > FWIW from a "real time" database POV this seems to make sense to me...
> > > > in fact, we probably rely on filesystem metadata way too much
> > > > (historically it's just "worked".... although we do seem to get issues
> > > > on ext3).
> > > 
> > > For that case you really would need priority inheritance: any metadata
> > > IO on behalf or blocking a process needs to use the process' block IO 
> > > priority.
> > 
> > How do you do that when the processes are blocking on semaphores,
> > mutexes or rw-semaphores in the fileysystem three layers removed from
> > the I/O in progress?
> 
> [...] I didn't say it was easy (or rather explicitely said it would be 
> tricky).
> Probably it would be possible to fold it somehow into rt mutexes PI,
> but it's not easy and semaphores would need to be handled too.
> 
> Just my point was to solve the metadata RT problem unconditionally increasing
> the priority is a bad idea and not really a replacement to a "full"
> solution. Short term a user can just increase the priority of all the XFS 
> threads anyways.

The point is that it's not actually a thread-based problem - the priority
can't be inherited via the traditional mutex-like manner. There is no
connection between a thread and an I/o it has already issued and so you
can't transfer a priority from a blocked thread to an issued-but-blocked
i/o....

Cheers,

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


<Prev in Thread] Current Thread [Next in Thread>