xfs
[Top] [All Lists]

Re: [PATCH 50/50] xfs: use reference counts to free clean buffer items

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 50/50] xfs: use reference counts to free clean buffer items
From: Zhi Yong Wu <zwu.kernel@xxxxxxxxx>
Date: Wed, 14 Aug 2013 12:12:36 +0800
Cc: Mark Tinguely <tinguely@xxxxxxx>, xfstests <xfs@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=VWSJKbVHaFyt7wawZWmQ576KLdKmppbIhdeLeNxtlAg=; b=a3MGYHWAz32lot1I589LRgZIOACiBLP3Dod2EZTiD6TJu8Ch9fxcBvne+0uKFYJPJ3 cXlXyvZxKfjwajg6Sqp2LKJVZJz4vbASeCWEFRcBUO/HWnJt5JTXkQHComfv+sZmjHfv IEzJUamEhUC/aQGV0iFvfTZ/QxHEqEBDpc09ZrvjdQDeHwPAGpvHsDI56S+F5HzHi58J +9GvYOYG5Qh6+K8t5XD+CZqq3WjvUNp+08lTrNnOf1yRCH6H1IXF5mbAm/MpvtlUvyPh LpSNrSXNe1GeUvMyClEiCdTcdDge4gZ61YZWD+mQIisPUArAThx+N5NEk+RdYDS6rFK0 TS7w==
In-reply-to: <20130814035738.GD6023@dastard>
References: <1376304611-22994-1-git-send-email-david@xxxxxxxxxxxxx> <1376304611-22994-51-git-send-email-david@xxxxxxxxxxxxx> <520A4AB7.1080207@xxxxxxx> <20130813214648.GC6023@dastard> <520AAC79.1030608@xxxxxxx> <20130814035738.GD6023@dastard>
On Wed, Aug 14, 2013 at 11:57 AM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> On Tue, Aug 13, 2013 at 05:00:25PM -0500, Mark Tinguely wrote:
>> On 08/13/13 16:46, Dave Chinner wrote:
>> >On Tue, Aug 13, 2013 at 10:03:19AM -0500, Mark Tinguely wrote:
>> >>On 08/12/13 05:50, Dave Chinner wrote:
>> >>>From: Dave Chinner<dchinner@xxxxxxxxxx>
>> >>>
>> >>>When a transaction is cancelled and the buffer log item is clean in
>>
>> ...
>>
>> >>
>> >>why is a clean buffer on the AIL? Racing with a completion handler?
>> >
>> >"clean" means that it wasn't dirtied in the transaction - it can be
>> >in the AIL and holding a reference count that way.
>>
>> I am wondering because it should not have made it into the CIL if it
>> was not dirtied in a transaction - at least according to the the log
>> item descriptor flag at least.
>
> CIL != AIL. IOWs, the bli_refcount going to zero doesn't always
By the way, can you explain what the difference is between CIL and AIL?

> mean the bli should be freed. All a zero value means is that it is
> not tracked by any transaction. If the item is not going to be
> placed in the AIL (or not already in the AIL) then it can be
> released (freed). Clean or aborted items are not going into the AIL,
> so they can be freed immeidately. Everything else needs to avoid
> freeing the item until the correct state is reached, even if the ref
> count goes to zero.
>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@xxxxxxxxxxxxx
>
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs



-- 
Regards,

Zhi Yong Wu

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