From: Boris Burkov <boris@bur.io>
To: kreijack@inwind.it
Cc: linux-btrfs@vger.kernel.org,
Zygo Blaxell <ce3g8jdj@umail.furryterror.org>,
Josef Bacik <josef@toxicpanda.com>,
David Sterba <dsterba@suse.cz>,
Sinnamohideen Shafeeq <shafeeqs@panasas.com>,
Paul Jones <paul@pauljones.id.au>
Subject: Re: [RFC][V9][PATCH 0/6] btrfs: allocation_hint mode
Date: Wed, 5 Jan 2022 09:55:39 -0800 [thread overview]
Message-ID: <YdXbmwHZneMdxcly@zen> (raw)
In-Reply-To: <7377b63d-23a7-5efd-4ae2-cffe70463d0b@libero.it>
On Wed, Jan 05, 2022 at 10:16:08AM +0100, Goffredo Baroncelli wrote:
> Hi Boris,
>
>
>
> On 1/5/22 03:44, Boris Burkov wrote:
> [...]
> >
> > This is cool, thanks for building it!
> >
> > I'm playing with setting this up for a test I'm working on where I want
> > to send data to a dm-zero device. To that end, I applied this patchset
> > on top of misc-next and ran:
> >
> > $ mkfs.btrfs -f /dev/vg0/lv0 -dsingle -msingle
> > $ mount /dev/vg0/lv0 /mnt/lol
>
> You should mount the filesystem with
>
> $ mount -o allocation_hint=1 /dev/vg0/lv0 /mnt/lol
>
With this option, I got the expected usage output:
Data,single: Size:1.00GiB, Used:512.00KiB (0.05%)
/dev/mapper/zero-data 1.00GiB
Metadata,single: Size:1.00GiB, Used:112.00KiB (0.01%)
/dev/mapper/vg0-lv0 1.00GiB
Sorry I missed that, and thanks for the quick reply.
>
> In the previous iteration I missed the patch #6, which activates this option. You can drop patch #6 and avoid to pass this option.
>
> Please give me a feedback if this resolve.
>
> BR
> G.Baroncelli
>
> > $ btrfs device add /dev/mapper/zero-data /mnt/lol
> > $ btrfs fi usage /mnt/lol
> > Overall:
> > Device size: 50.01TiB
> > Device allocated: 20.00MiB
> > Device unallocated: 50.01TiB
> > Device missing: 0.00B
> > Used: 128.00KiB
> > Free (estimated): 50.01TiB (min: 50.01TiB)
> > Free (statfs, df): 50.01TiB
> > Data ratio: 1.00
> > Metadata ratio: 1.00
> > Global reserve: 3.25MiB (used: 0.00B)
> > Multiple profiles: no
> >
> > Data,single: Size:8.00MiB, Used:0.00B (0.00%)
> > /dev/mapper/vg0-lv0 8.00MiB
> >
> > Metadata,single: Size:8.00MiB, Used:112.00KiB (1.37%)
> > /dev/mapper/vg0-lv0 8.00MiB
> >
> > System,single: Size:4.00MiB, Used:16.00KiB (0.39%)
> > /dev/mapper/vg0-lv0 4.00MiB
> >
> > Unallocated:
> > /dev/mapper/vg0-lv0 9.98GiB
> > /dev/mapper/zero-data 50.00TiB
> >
> > $ ./btrfs property set -t device /dev/mapper/zero-data allocation_hint DATA_ONLY
> > $ ./btrfs property set -t device /dev/vg0/lv0 allocation_hint METADATA_ONLY
> >
> > $ btrfs balance start --full-balance /mnt/lol
> > Done, had to relocate 3 out of 3 chunks
> >
> > $ btrfs fi usage /mnt/lol
> > Overall:
> > Device size: 50.01TiB
> > Device allocated: 2.03GiB
> > Device unallocated: 50.01TiB
> > Device missing: 0.00B
> > Used: 640.00KiB
> > Free (estimated): 50.01TiB (min: 50.01TiB)
> > Free (statfs, df): 50.01TiB
> > Data ratio: 1.00
> > Metadata ratio: 1.00
> > Global reserve: 3.25MiB (used: 0.00B)
> > Multiple profiles: no
> >
> > Data,single: Size:1.00GiB, Used:512.00KiB (0.05%)
> > /dev/mapper/zero-data 1.00GiB
> >
> > Metadata,single: Size:1.00GiB, Used:112.00KiB (0.01%)
> > /dev/mapper/zero-data 1.00GiB
> >
> > System,single: Size:32.00MiB, Used:16.00KiB (0.05%)
> > /dev/mapper/zero-data 32.00MiB
> >
> > Unallocated:
> > /dev/mapper/vg0-lv0 10.00GiB
> > /dev/mapper/zero-data 50.00TiB
> >
> >
> > I expected that I would have data on /dev/mapper/zero-data and metadata
> > on /dev/mapper/vg0-lv0, but it seems both of them were written to the zero
> > device. Attempting to actually use the file system eventually fails, since
> > the metadata is black-holed :)
> >
> > Did I make some mistake in how I used it, or is this a bug?
> >
> > Thanks,
> > Boris
> >
> > > BR
> > > G.Baroncelli
> > >
> > > Revision:
> > > V9:
> > > - rename dev_item->type to dev_item->flags
> > > - rename /sys/fs/btrfs/$UUID/devinfo/type -> allocation_hint
> > >
> > > V8:
> > > - drop the ioctl API, instead use a sysfs one
> > >
> > > V7:
> > > - make more room in the struct btrfs_ioctl_dev_properties up to 1K
> > > - leave in btrfs_tree.h only the costants
> > > - removed the mount option (sic)
> > > - correct an 'use before check' in the while loop (signaled
> > > by Zygo)
> > > - add a 2nd sort to be sure that the device_info array is in the
> > > expected order
> > >
> > > V6:
> > > - add further values to the hints: add the possibility to
> > > exclude a disk for a chunk type
> > >
> > >
> > > Goffredo Baroncelli (6):
> > > btrfs: add flags to give an hint to the chunk allocator
> > > btrfs: export the device allocation_hint property in sysfs
> > > btrfs: change the device allocation_hint property via sysfs
> > > btrfs: add allocation_hint mode
> > > btrfs: rename dev_item->type to dev_item->flags
> > > btrfs: add allocation_hint option.
> > >
> > > fs/btrfs/ctree.h | 18 +++++-
> > > fs/btrfs/disk-io.c | 4 +-
> > > fs/btrfs/super.c | 17 ++++++
> > > fs/btrfs/sysfs.c | 73 ++++++++++++++++++++++
> > > fs/btrfs/volumes.c | 105 ++++++++++++++++++++++++++++++--
> > > fs/btrfs/volumes.h | 7 ++-
> > > include/uapi/linux/btrfs_tree.h | 20 +++++-
> > > 7 files changed, 232 insertions(+), 12 deletions(-)
> > >
> > > --
> > > 2.34.1
> > >
>
>
> --
> gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it>
> Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
next prev parent reply other threads:[~2022-01-05 17:56 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-17 18:47 [RFC][V9][PATCH 0/6] btrfs: allocation_hint mode Goffredo Baroncelli
2021-12-17 18:47 ` [PATCH 1/6] btrfs: add flags to give an hint to the chunk allocator Goffredo Baroncelli
2022-01-05 22:10 ` Boris Burkov
2022-01-06 8:53 ` Goffredo Baroncelli
2021-12-17 18:47 ` [PATCH 2/6] btrfs: export the device allocation_hint property in sysfs Goffredo Baroncelli
2022-01-05 21:57 ` Boris Burkov
2021-12-17 18:47 ` [PATCH 3/6] btrfs: change the device allocation_hint property via sysfs Goffredo Baroncelli
2021-12-17 18:47 ` [PATCH 4/6] btrfs: add allocation_hint mode Goffredo Baroncelli
2022-01-05 23:48 ` Boris Burkov
2022-01-06 10:09 ` Goffredo Baroncelli
2021-12-17 18:47 ` [PATCH 5/6] btrfs: rename dev_item->type to dev_item->flags Goffredo Baroncelli
2022-01-05 23:50 ` Boris Burkov
2021-12-17 18:47 ` [PATCH 6/6] btrfs: add allocation_hint option Goffredo Baroncelli
2022-01-05 2:44 ` [RFC][V9][PATCH 0/6] btrfs: allocation_hint mode Boris Burkov
2022-01-05 9:16 ` Goffredo Baroncelli
2022-01-05 17:55 ` Boris Burkov [this message]
2022-01-05 18:07 ` Zygo Blaxell
2022-01-05 18:16 ` Goffredo Baroncelli
2022-01-05 18:29 ` Boris Burkov
2022-01-05 22:21 ` Boris Burkov
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=YdXbmwHZneMdxcly@zen \
--to=boris@bur.io \
--cc=ce3g8jdj@umail.furryterror.org \
--cc=dsterba@suse.cz \
--cc=josef@toxicpanda.com \
--cc=kreijack@inwind.it \
--cc=linux-btrfs@vger.kernel.org \
--cc=paul@pauljones.id.au \
--cc=shafeeqs@panasas.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).