lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <25a072e4691ec1ec56149c7266825cee4f82dee3.camel@ibm.com>
Date: Thu, 4 Sep 2025 21:43:49 +0000
From: Viacheslav Dubeyko <Slava.Dubeyko@....com>
To: "max.kellermann@...os.com" <max.kellermann@...os.com>
CC: Xiubo Li <xiubli@...hat.com>, Alex Markuze <amarkuze@...hat.com>,
        "idryomov@...il.com" <idryomov@...il.com>,
        "stable@...r.kernel.org"
	<stable@...r.kernel.org>,
        "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>,
        "ceph-devel@...r.kernel.org"
	<ceph-devel@...r.kernel.org>
Subject: RE: [PATCH] fs/ceph/addr: always call ceph_shift_unused_folios_left()

On Thu, 2025-08-28 at 23:37 +0200, Max Kellermann wrote:
> On Thu, Aug 28, 2025 at 9:08 PM Viacheslav Dubeyko
> <Slava.Dubeyko@....com> wrote:
> > And which practical step of actions do you see to repeat and reproduce it? :)
> 
> Apply the patch in the link. Did you read that thread/patch?

By applying the patch [1], enabling CONFIG_DEBUG_VM, and returning -E2BIG from
ceph_check_page_before_write(), I was able to reproduce this warning:

 [  123.147833] ------------[ cut here ]------------
 [  123.147861] WARNING: CPU: 5 PID: 72 at ./include/linux/huge_mm.h:482
folios_put_refs+0x4c2/0x600
 [  123.147900] Modules linked in: intel_rapl_msr intel_rapl_common
intel_uncore_frequency_common intel_pmc_core pmt_telemetry pmt_discovery
pmt_class intel_pmc_ssram_telemetry intel_vsec kvm_intel kvm irqbypass joydev
polyval_clmulni ghash_clmulni_intel aesni_intel rapl input_leds psmouse
i2c_piix4 vga16fb pata_acpi bochs vgastate i2c_smbus serio_raw floppy
qemu_fw_cfg mac_hid sch_fq_codel rbd msr parport_pc ppdev lp parport efi_pstore
 [  123.147988] CPU: 5 UID: 0 PID: 72 Comm: kworker/u32:2 Not tainted 6.17.0-
rc4+ #9 PREEMPT(voluntary) 
 [  123.147995] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.17.0-5.fc42 04/01/2014
 [  123.148002] Workqueue: writeback wb_workfn (flush-ceph-1)
 [  123.148021] RIP: 0010:folios_put_refs+0x4c2/0x600
 [  123.148031] Code: cc c6 db 05 0f 85 19 01 00 00 48 81 c4 b8 00 00 00 5b 41
5c 41 5d 41 5e 41 5f 5d 31 c0 31 d2 31 c9 31 f6 31 ff c3 cc cc cc cc <0f> 0b e9
1e fe ff ff e8 c2 fe 24 00 e9 da fb ff ff 4c 89 ef e8 b5
 [  123.148035] RSP: 0018:ffff888101c6f228 EFLAGS: 00010246
 [  123.148051] RAX: ffffed102038dea4 RBX: 0000000000000000 RCX:
0000000000000000
 [  123.148057] RDX: 0000000000000001 RSI: 0000000000000000 RDI:
ffff888101c6f520
 [  123.148060] RBP: ffff888101c6f308 R08: 0000000000000000 R09:
0000000000000000
 [  123.148063] R10: 0000000000000000 R11: 0000000000000000 R12:
0000000000000000
 [  123.148066] R13: ffff888101c6f520 R14: 0000000000000000 R15:
dffffc0000000000
 [  123.148069] FS:  0000000000000000(0000) GS:ffff88824a034000(0000)
knlGS:0000000000000000
 [  123.148072] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 [  123.148075] CR2: 0000700798000020 CR3: 0000000111b6a005 CR4:
0000000000772ef0
 [  123.148082] PKRU: 55555554
 [  123.148085] Call Trace:
 [  123.148088]  <TASK>
 [  123.148093]  ? __pfx_folios_put_refs+0x10/0x10
 [  123.148099]  ? __pfx_filemap_get_folios_tag+0x10/0x10
 [  123.148110]  __folio_batch_release+0x52/0xe0
 [  123.148115]  ceph_writepages_start+0x277a/0x45f0
 [  123.148129]  ? update_load_avg+0x1bd/0x1fe0
 [  123.148145]  ? dequeue_entity+0x3e5/0x1450
 [  123.148151]  ? ata_sff_qc_issue+0x443/0xa90
 [  123.148175]  ? kvm_sched_clock_read+0x11/0x20
 [  123.148198]  ? sched_clock_noinstr+0x9/0x10
 [  123.148203]  ? sched_clock+0x10/0x30
 [  123.148216]  ? __pfx_ceph_writepages_start+0x10/0x10
 [  123.148221]  ? psi_group_change+0x3fa/0x8a0
 [  123.148233]  ? __pfx_sched_clock_cpu+0x10/0x10
 [  123.148238]  ? set_next_entity+0x325/0xb40
 [  123.148245]  ? ncsi_channel_monitor.cold+0x36d/0x553
 [  123.148269]  ? __kasan_check_write+0x14/0x30
 [  123.148283]  ? _raw_spin_lock+0x82/0xf0
 [  123.148293]  ? __pfx__raw_spin_lock+0x10/0x10
 [  123.148298]  do_writepages+0x1e1/0x540
 [  123.148303]  ? do_writepages+0x1e1/0x540
 [  123.148308]  __writeback_single_inode+0xa7/0x940
 [  123.148312]  ? _raw_spin_unlock+0xe/0x40
 [  123.148315]  ? wbc_attach_and_unlock_inode+0x440/0x610
 [  123.148325]  ? __pfx_call_function_single_prep_ipi+0x10/0x10
 [  123.148336]  writeback_sb_inodes+0x563/0xe40
 [  123.148341]  ? __pfx_writeback_sb_inodes+0x10/0x10
 [  123.148348]  ? __pfx_move_expired_inodes+0x10/0x10
 [  123.148360]  __writeback_inodes_wb+0xbe/0x210
 [  123.148364]  wb_writeback+0x4e4/0x6f0
 [  123.148368]  ? __pfx_wb_writeback+0x10/0x10
 [  123.148416]  ? get_nr_dirty_inodes+0xdc/0x1e0
 [  123.148426]  wb_workfn+0x5a9/0xb30
 [  123.148430]  ? __pfx_wb_workfn+0x10/0x10
 [  123.148433]  ? __pfx___schedule+0x10/0x10
 [  123.148438]  ? __pfx__raw_spin_lock_irq+0x10/0x10
 [  123.148442]  process_one_work+0x611/0xe20
 [  123.148448]  ? __kasan_check_write+0x14/0x30
 [  123.148452]  worker_thread+0x7e3/0x1580
 [  123.148456]  ? __pfx_worker_thread+0x10/0x10
 [  123.148458]  kthread+0x381/0x7a0
 [  123.148463]  ? __pfx__raw_spin_lock_irq+0x10/0x10
 [  123.148466]  ? __pfx_kthread+0x10/0x10
 [  123.148468]  ? __kasan_check_write+0x14/0x30
 [  123.148471]  ? recalc_sigpending+0x160/0x220
 [  123.148478]  ? _raw_spin_unlock_irq+0xe/0x50
 [  123.148481]  ? calculate_sigpending+0x78/0xb0
 [  123.148484]  ? __pfx_kthread+0x10/0x10
 [  123.148487]  ret_from_fork+0x285/0x350
 [  123.148490]  ? __pfx_kthread+0x10/0x10
 [  123.148493]  ret_from_fork_asm+0x1a/0x30
 [  123.148499]  </TASK>
 [  123.148501] ---[ end trace 0000000000000000 ]---

The warning has been eliminated by applying suggested fix. The suggested patch
has been tested by xfstests and no regression or issue has been detected.

Reviewed-by: Viacheslav Dubeyko <Slava.Dubeyko@....com>
Tested-by: Viacheslav Dubeyko <Slava.Dubeyko@....com>

Thanks,
Slava.

[1]
https://lore.kernel.org/all/20250826231626.218675-1-max.kellermann@ionos.com/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ