Maybe this is too much of a break from tradition but I think df should
report the min(device free space, remaining quota) for the particular
volume being queried.


On Mon, Feb 10, 2014 at 11:41 AM, Josef Bacik <jba...@fb.com> wrote:
> Hello,
>
> So first of all this is going to get a lot of responses, so straight away
> I'm only going to consider your opinion if I recognize your name and think
> you are a sane person.  This basically means any big contributors and we'll
> make sanity exceptions for cwillu.
>
> These are just broad strokes, let us not get bogged down in the details, I
> just want to come to a consensus on how things _generally_ should be
> portrayed to the user.  We can worry about implementation details once we
> agree on the direction we want to go.
>
> We all know space is a loaded question with btrfs, so I'm just going to
> explain the reasoning of why we chose what we chose originally and then
> offer the direction we should go in.  If you agree say yay, if not please
> provide a very concise alternative suggestion with a very short explanation
> of why it is better than I'm suggesting.  I'm not looking to spend a whole
> lot of time this problem.
>
> Also this isn't going to address b_avail, cause frankly that is some fucking
> voodoo right there, suffice it to say we will just adjust b_avail based on
> how we should represent total and used.
>
> ===== ye olde df =====
>
> I don't remember what we did originally, but IIRC we would only show used
> space from the block groups and would show the entire size of the fs.  So
> for example with two 1 tb drives in RAID1 you'd see ENOSPC and look at df
> and it would show total of 2TB and used at 1TB.  Obviously not good, so we
> switched to the mechanism we have today, which is you see 2TB for total, you
> see 2TB for used and you see 0 for available.  We just scaled up the used
> and available based on your raid multiplier.
>
> ===== btrfs fi df =====
>
> I made this for me because of ENOSPC issues but of course it's also really
> useful for users.  It is just a dump of the block group information and
> their flags, so really just spits out bytes_used and total_bytes and flags.
> Because at the block_group/space_info level in btrfs we don't care about how
> much actual space is taken up this number is not adjusted for RAID values,
> and these numbers are reflected in the tools output.  So if you have RAID1
> you need to mentally multiply the Total and Used values by 2 because that is
> how much actual space is being used.
>
> =====  What to do moving forward =====
>
> Flip what both of these do.  Do not multiply for normal df, and multiply for
> btrfs fi df.
>
> ===== New and improved df =====
>
> Since this is the lowest common denominator we should just spit out how much
> space is used based on the block groups and then divide the remaining space
> that hasn't been allocated yet by the raid multiplier.
>
> This is going to be kind of tricky once we do per-subvolume RAID levels, but
> this falls under the b_avail voodoo which is just a guess anyway, so for
> this we will probably take the biggest multiplier and use that to show how
> much available space you have.
>
> This way with RAID1 it shows you have 1tb of total space and you've used 1tb
> of space.
>
> ===== New and improved btrfs fi df =====
>
> Since people using this tool are already going to be better informed and
> since we are already given the block group flags we can go ahead and do the
> raid multiplier in btrfs-progs and spit out the adjusted numbers rather than
> the raw numbers we get from the ioctl.  This will just be a progs thing and
> that way we can possibly add an option to not apply the multipliers and just
> get the raw output.
>
> ===== Conclusion =====
>
> Let me know if this is acceptable to everybody.  Remember this is just broad
> strokes, keep your responses short and simple or I simply won't read them.
> Thanks,
>
> Josef
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Sandy McArthur

"He who dares not offend cannot be honest."
- Thomas Paine
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to