xfs
[Top] [All Lists]

Re: higher agcount on LVM2 thinp volumes

To: Chris Murphy <lists@xxxxxxxxxxxxxxxxx>
Subject: Re: higher agcount on LVM2 thinp volumes
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Thu, 29 Aug 2013 22:35:20 -0500
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <289A5A42-9879-4A2A-9284-4B8529A1488D@xxxxxxxxxxxxxxxxx>
References: <321D1F95-5603-4571-A445-A267DA5F670F@xxxxxxxxxxxxxxxxx> <52200BAE.1060501@xxxxxxxxxxx> <4393C3B8-8C46-41ED-B9F3-BC7B37C2681F@xxxxxxxxxxxxxxxxx> <52200F5A.9050702@xxxxxxxxxxx> <289A5A42-9879-4A2A-9284-4B8529A1488D@xxxxxxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
On 8/29/13 10:24 PM, Chris Murphy wrote:
> 
> On Aug 29, 2013, at 9:19 PM, Eric Sandeen <sandeen@xxxxxxxxxxx> wrote:
>>
>> Argh sorry, how did I type THAT?
>>
>> # blockdev --getiomin --getioopt /dev/mapper/vg1-data
> 
> conventional LV:
> [root@f19s ~]# blockdev --getiomin --getioopt /dev/mapper/vg1-data
> 512
> 0
> 
> thinp LV:
> 
> [root@f19s ~]# blockdev --getiomin --getioopt /dev/mapper/vg1-data
> 512
> 262144
> 
> (Now I see two ways to get the same info.)

:)

ok so it says the stripe unit (minimum IO size) is 512...

Around line 2240, it does:

        if (dsunit && !(BBTOB(dsunit) % blocksize) &&
            dswidth && !(BBTOB(dswidth) % blocksize)) {
...
        } else {
                if (nodsflag)
                        dsunit = dswidth = 0;

essentially saying: If we autodetected a stripe unit or stripe width
which is not a multiple of the block size, silently set it to 0.
So we do that.

However, _just_ before this, we did:

                calc_default_ag_geometry(blocklog, dblocks,
                                dsunit | dswidth, &agsize, &agcount);

when dsunit & dswidth were still set (to invalid values).

So we calculated it w/ stripe geom set, got more AGs, then zeroed
out the stripe geom.

I'm ... not sure how many bugs are here.  ;)  We shouldn't calculate
AG geometry until we've validated sunit/swidth, I think.  But I'm not
convinced that dm-thinp's exported values make a lot of sense either.

-Eric


> 
> Chris Murphy
> 

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