All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zygo Blaxell <ce3g8jdj@umail.furryterror.org>
To: "Libor Klepáč" <libor.klepac@bcom.cz>
Cc: "linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: Btrfs lockups on ubuntu with bees
Date: Fri, 31 Dec 2021 14:24:52 -0500	[thread overview]
Message-ID: <Yc9ZBE8lioRZY0cB@hungrycats.org> (raw)
In-Reply-To: <5f1f3114281659c7869cb3f8aa4016c85f2b47cb.camel@bcom.cz>

On Fri, Dec 24, 2021 at 11:40:56AM +0000, Libor Klepáč wrote:
> Hi, i think, we hit it on 5.10.x

Over the last week I've hit it every ~400 machine-hours on 5.10.80+
as well.  Compare to once every ~3 machine-hours for kernels after
5.11-rc1.

It does get worse when there is more contention for various locks,
so more bees threads or a different distribution of work between the
threads will reproduce it faster.

> Not sure what version is it
> Linux nakivo 5.10.0-051000-generic #202012132330 SMP Sun Dec 13
> 23:33:36 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
> 
> It is taken from
> https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10/
> 
> Maybe i should go for specific version like
> https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.88/
> 
> It was running fine for few days with bees doing it's job.
> One thing i changed yesterday was changing
> --loadavg-target 5
> to
> --loadavg-target 6
> (VM has 6 virtual CPUs)
> 
> Here is trace from machine
> https://download.bcom.cz/btrfs/trace6.txt
> 
> Thanks,
> Libor
> 
> On St, 2021-12-08 at 23:44 -0500, Zygo Blaxell wrote:
> > On Fri, Nov 26, 2021 at 02:36:30PM +0000, Libor Klepáč wrote:
> > > Hi,
> > > we are trying to use btrfs with compression and deduplication using
> > > bees to host filesystem for nakivo repository.
> > > Nakivo repository is in "incremental with full backups" format -
> > > ie.
> > > one file per VM snapshot transferred from vmware, full backup every
> > > x
> > > days, no internal deduplication. 
> > > We have also disabled internal compression in nakivo repository and
> > > put
> > > compression-force=zstd:13 on filesystem.
> > > 
> > > It's a VM on vmware 6.7.0 Update 3 (Build 17700523) on Dell R540.
> > > It has 6vCPU, 16GB of ram.
> > > 
> > > Bees is run with this parameters
> > > OPTIONS="--strip-paths --no-timestamps --verbose 5 --loadavg-target
> > > 5 
> > > --thread-min 1"
> > > DB_SIZE=$((8*1024*1024*1024)) # 8G in bytes
> > > 
> > > 
> > > 
> > > Until today it was running ubuntu provided kernel 5.11.0-
> > > 40.44~20.04.2
> > > (not sure about exact upstream version),
> > > today we switched to 5.13.0-21.21~20.04.1 after first crash.
> > > 
> > > It was working ok for 7+days, all data were in (around 10TB), so i
> > > started bees. 
> > > It now locks the FS, bees runs on 100% CPU, i cannot enter
> > > directory
> > > with btrfs
> > > 
> > > # btrfs filesystem usage /mnt/btrfs/repo02/
> > > Overall:
> > >     Device size:                  20.00TiB
> > >     Device allocated:             10.88TiB
> > >     Device unallocated:            9.12TiB
> > >     Device missing:                  0.00B
> > >     Used:                         10.87TiB
> > >     Free (estimated):              9.13TiB      (min: 4.57TiB)
> > >     Data ratio:                       1.00
> > >     Metadata ratio:                   1.00
> > >     Global reserve:              512.00MiB      (used: 0.00B)
> > > 
> > > Data,single: Size:10.85TiB, Used:10.83TiB (99.91%)
> > >    /dev/sdd       10.85TiB
> > > 
> > > Metadata,single: Size:35.00GiB, Used:34.71GiB (99.17%)
> > >    /dev/sdd       35.00GiB
> > > 
> > > System,DUP: Size:32.00MiB, Used:1.14MiB (3.56%)
> > >    /dev/sdd       64.00MiB
> > > 
> > > Unallocated:
> > >    /dev/sdd        9.12TiB
> > > 
> > > This happened yesterday on kernel 5.11
> > > https://download.bcom.cz/btrfs/trace1.txt
> > > 
> > > This is today, on 5.13
> > > https://download.bcom.cz/btrfs/trace2.txt
> > > 
> > > this is trace from sysrq later, when i noticed it happened again
> > > https://download.bcom.cz/btrfs/trace3.txt
> > > 
> > > 
> > > Any clue what can be done?
> > 
> > I am currently hitting this bug on all kernel versions starting from
> > 5.11.
> > Test runs end with the filesystem locked up, 100% CPU usage in bees
> > and the following lockdep dump:
> > 
> >         [Wed Dec  8 14:14:03 2021] Linux version 5.11.22-zb64-
> > e4d48558d24c+ (zblaxell@waya) (gcc (Debian 10.2.1-6) 10.2.1 20210110,
> > GNU ld (GNU Binutils for Debian) 2.37) #1 SMP Sun Dec 5 04:18:31 EST
> > 2021
> > 
> >         [Wed Dec  8 23:17:32 2021] sysrq: Show Locks Held
> >         [Wed Dec  8 23:17:32 2021] 
> >                                    Showing all locks held in the
> > system:
> >         [Wed Dec  8 23:17:32 2021] 1 lock held by in:imklog/3603:
> >         [Wed Dec  8 23:17:32 2021] 1 lock held by dmesg/3720:
> >         [Wed Dec  8 23:17:32 2021]  #0: ffff8a1406ac80e0 (&user-
> > >lock){+.+.}-{3:3}, at: devkmsg_read+0x4d/0x320
> >         [Wed Dec  8 23:17:32 2021] 3 locks held by bash/3721:
> >         [Wed Dec  8 23:17:32 2021]  #0: ffff8a142a589498
> > (sb_writers#4){.+.+}-{0:0}, at: ksys_write+0x70/0xf0
> >         [Wed Dec  8 23:17:32 2021]  #1: ffffffff98f199a0
> > (rcu_read_lock){....}-{1:2}, at: __handle_sysrq+0x5/0xa0
> >         [Wed Dec  8 23:17:32 2021]  #2: ffffffff98f199a0
> > (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x23/0x187
> >         [Wed Dec  8 23:17:32 2021] 1 lock held by btrfs-
> > transacti/6161:
> >         [Wed Dec  8 23:17:32 2021]  #0: ffff8a14e0178850 (&fs_info-
> > >transaction_kthread_mutex){+.+.}-{3:3}, at:
> > transaction_kthread+0x5a/0x1b0
> >         [Wed Dec  8 23:17:32 2021] 3 locks held by
> > crawl_257_265/6491:
> >         [Wed Dec  8 23:17:32 2021] 3 locks held by
> > crawl_257_291/6494:
> >         [Wed Dec  8 23:17:32 2021]  #0: ffff8a14bd092498
> > (sb_writers#12){.+.+}-{0:0}, at: vfs_dedupe_file_range_one+0x3b/0x180
> >         [Wed Dec  8 23:17:32 2021]  #1: ffff8a1410d7c848 (&sb-
> > >s_type->i_mutex_key#17){+.+.}-{3:3}, at:
> > lock_two_nondirectories+0x6b/0x70
> >         [Wed Dec  8 23:17:32 2021]  #2: ffff8a14161a39c8 (&sb-
> > >s_type->i_mutex_key#17/4){+.+.}-{3:3}, at:
> > lock_two_nondirectories+0x59/0x70
> >         [Wed Dec  8 23:17:32 2021] 4 locks held by
> > crawl_257_292/6502:
> >         [Wed Dec  8 23:17:32 2021]  #0: ffff8a14bd092498
> > (sb_writers#12){.+.+}-{0:0}, at: vfs_dedupe_file_range_one+0x3b/0x180
> >         [Wed Dec  8 23:17:32 2021]  #1: ffff8a131637a908 (&sb-
> > >s_type->i_mutex_key#17){+.+.}-{3:3}, at:
> > lock_two_nondirectories+0x6b/0x70
> >         [Wed Dec  8 23:17:32 2021]  #2: ffff8a14161a39c8 (&sb-
> > >s_type->i_mutex_key#17/4){+.+.}-{3:3}, at:
> > lock_two_nondirectories+0x59/0x70
> >         [Wed Dec  8 23:17:32 2021]  #3: ffff8a14bd0926b8
> > (sb_internal#2){.+.+}-{0:0}, at: btrfs_start_transaction+0x1e/0x20
> >         [Wed Dec  8 23:17:32 2021] 2 locks held by
> > crawl_257_293/6503:
> >         [Wed Dec  8 23:17:32 2021]  #0: ffff8a14bd092498
> > (sb_writers#12){.+.+}-{0:0}, at: vfs_dedupe_file_range_one+0x3b/0x180
> >         [Wed Dec  8 23:17:32 2021]  #1: ffff8a14161a39c8 (&sb-
> > >s_type->i_mutex_key#17){+.+.}-{3:3}, at:
> > btrfs_remap_file_range+0x2eb/0x3c0
> >         [Wed Dec  8 23:17:32 2021] 3 locks held by
> > crawl_256_289/6504:
> >         [Wed Dec  8 23:17:32 2021]  #0: ffff8a14bd092498
> > (sb_writers#12){.+.+}-{0:0}, at: vfs_dedupe_file_range_one+0x3b/0x180
> >         [Wed Dec  8 23:17:32 2021]  #1: ffff8a140f2c4748 (&sb-
> > >s_type->i_mutex_key#17){+.+.}-{3:3}, at:
> > lock_two_nondirectories+0x6b/0x70
> >         [Wed Dec  8 23:17:32 2021]  #2: ffff8a14161a39c8 (&sb-
> > >s_type->i_mutex_key#17/4){+.+.}-{3:3}, at:
> > lock_two_nondirectories+0x59/0x70
> > 
> >         [Wed Dec  8 23:17:32 2021]
> > =============================================
> > 
> > There's only one commit touching vfs_dedupe_file_range_one
> > between v5.10 and v5.15 (3078d85c9a10 "vfs: verify source area in
> > vfs_dedupe_file_range_one()"), so I'm now testing 5.11 with that
> > commit
> > reverted to see if it introduced a regression.
> > 
> > > We would really like to use btrfs for this use case, because
> > > nakivo,
> > > with this type of repository format, needs to be se to do full
> > > backup
> > > every x days and does not do deduplication on its own.
> > > 
> > > 
> > > With regards,
> > > Libor
> > > 

  parent reply	other threads:[~2021-12-31 19:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-26 14:36 Btrfs lockups on ubuntu with bees Libor Klepáč
2021-12-09  4:44 ` Zygo Blaxell
2021-12-09  9:23   ` Libor Klepáč
2021-12-13 22:51     ` Zygo Blaxell
2021-12-15  9:42       ` Libor Klepáč
2021-12-15  9:48         ` Nikolay Borisov
2021-12-23  9:54           ` Libor Klepáč
2021-12-24 11:40   ` Libor Klepáč
2021-12-24 11:49     ` Libor Klepáč
2021-12-31 19:17       ` Zygo Blaxell
2021-12-31 19:24     ` Zygo Blaxell [this message]
2022-01-03 10:47       ` Libor Klepáč
2022-01-04  3:09         ` Zygo Blaxell

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=Yc9ZBE8lioRZY0cB@hungrycats.org \
    --to=ce3g8jdj@umail.furryterror.org \
    --cc=libor.klepac@bcom.cz \
    --cc=linux-btrfs@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.