Le 03/12/2018 à 23:22, Hans van Kranenburg a écrit : > [...] > Yes, I think that's true. See btrfs_read_block_groups in extent-tree.c: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/btrfs/extent-tree.c#n9982 > > What the code is doing here is starting at the beginning of the extent > tree, searching forward until it sees the first BLOCK_GROUP_ITEM (which > is not that far away), and then based on the information in it, computes > where the next one will be (just after the end of the vaddr+length of > it), and then jumps over all normal extent items and searches again near > where the next block group item has to be. So, yes, that means that they > depend on each other. > > Two possible ways to improve this: > > 1. Instead, walk the chunk tree (which has all related items packed > together) instead to find out at which locations in the extent tree the > block group items are located and then start getting items in parallel. > If you have storage with a lot of rotating rust that can deliver much > more random reads if you ask for more of them at the same time, then > this can already cause a massive speedup. > > 2. Move the block group items somewhere else, where they can nicely be > grouped together, so that the amount of metadata pages that has to be > looked up is minimal. Quoting from the link below, "slightly tricky > [...] but there are no fundamental obstacles". > > https://www.spinics.net/lists/linux-btrfs/msg71766.html > > I think the main obstacle here is finding a developer with enough > experience and time to do it. :)
I would definitely be interested in sponsoring at least a part of the needed time through my company (we are too small to hire kernel developers full-time but we can make a one-time contribution for something as valuable to us as faster mount delays). If needed it could be split in two steps with separate bounties : - providing a patch for the latest LTS kernel with a substantial decrease in mount time in our case (ideally less than a minute instead of 15 minutes but <5 minutes is already worth it). - having it integrated in mainline. I don't have any experience with company sponsorship/bounties but I'm willing to learn (don't hesitate to make suggestions). I'll have to discuss it with our accountant to make sure we do it correctly. Is it the right place to discuss this kind of subject or should I take the discussion elsewhere ? Best regards, Lionel