437490fed3
The current trace event always output result like this: find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=4(METADATA) find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=4(METADATA) find_free_extent: root=2(EXTENT_TREE) len=8192 empty_size=0 flags=1(DATA) find_free_extent: root=2(EXTENT_TREE) len=8192 empty_size=0 flags=1(DATA) find_free_extent: root=2(EXTENT_TREE) len=4096 empty_size=0 flags=1(DATA) find_free_extent: root=2(EXTENT_TREE) len=4096 empty_size=0 flags=1(DATA) T's saying we're allocating data extent for EXTENT tree, which is not even possible. It's because we always use EXTENT tree as the owner for trace_find_free_extent() without using the @root from btrfs_reserve_extent(). This patch will change the parameter to use proper @root for trace_find_free_extent(): Now it looks much better: find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) find_free_extent: root=5(FS_TREE) len=8192 empty_size=0 flags=1(DATA) find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=1(DATA) find_free_extent: root=5(FS_TREE) len=4096 empty_size=0 flags=1(DATA) find_free_extent: root=5(FS_TREE) len=8192 empty_size=0 flags=1(DATA) find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) find_free_extent: root=7(CSUM_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) find_free_extent: root=1(ROOT_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) Reported-by: Hans van Kranenburg <hans@knorrie.org> CC: stable@vger.kernel.org # 5.4+ Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> |
||
---|---|---|
.. | ||
9p.h | ||
afs.h | ||
alarmtimer.h | ||
asoc.h | ||
bcache.h | ||
block.h | ||
bpf_test_run.h | ||
bridge.h | ||
btrfs.h | ||
cachefiles.h | ||
cgroup.h | ||
clk.h | ||
cma.h | ||
compaction.h | ||
context_tracking.h | ||
cpuhp.h | ||
devfreq.h | ||
devlink.h | ||
dma_fence.h | ||
erofs.h | ||
ext4.h | ||
f2fs.h | ||
fib.h | ||
fib6.h | ||
filelock.h | ||
filemap.h | ||
fs_dax.h | ||
fscache.h | ||
fsi.h | ||
fsi_master_aspeed.h | ||
fsi_master_ast_cf.h | ||
fsi_master_gpio.h | ||
gpio.h | ||
gpu_mem.h | ||
host1x.h | ||
hswadsp.h | ||
huge_memory.h | ||
hwmon.h | ||
i2c.h | ||
ib_mad.h | ||
ib_umad.h | ||
initcall.h | ||
intel-sst.h | ||
intel_iommu.h | ||
intel_ish.h | ||
io_uring.h | ||
iocost.h | ||
iommu.h | ||
ipi.h | ||
irq.h | ||
irq_matrix.h | ||
iscsi.h | ||
jbd2.h | ||
kmem.h | ||
kvm.h | ||
kyber.h | ||
libata.h | ||
lock.h | ||
mce.h | ||
mdio.h | ||
migrate.h | ||
mlxsw.h | ||
mmap.h | ||
mmc.h | ||
mmflags.h | ||
module.h | ||
napi.h | ||
nbd.h | ||
neigh.h | ||
net.h | ||
net_probe_common.h | ||
nilfs2.h | ||
nmi.h | ||
objagg.h | ||
oom.h | ||
page_isolation.h | ||
page_pool.h | ||
page_ref.h | ||
pagemap.h | ||
percpu.h | ||
power.h | ||
power_cpu_migrate.h | ||
preemptirq.h | ||
printk.h | ||
pwc.h | ||
pwm.h | ||
qdisc.h | ||
qla.h | ||
qrtr.h | ||
random.h | ||
rcu.h | ||
rdma.h | ||
rdma_core.h | ||
regulator.h | ||
rpcgss.h | ||
rpcrdma.h | ||
rpm.h | ||
rseq.h | ||
rtc.h | ||
rxrpc.h | ||
sched.h | ||
scmi.h | ||
scsi.h | ||
sctp.h | ||
signal.h | ||
siox.h | ||
skb.h | ||
smbus.h | ||
sock.h | ||
spi.h | ||
spmi.h | ||
sunrpc.h | ||
sunvnet.h | ||
swiotlb.h | ||
syscalls.h | ||
target.h | ||
task.h | ||
tcp.h | ||
tegra_apb_dma.h | ||
thermal.h | ||
thermal_power_allocator.h | ||
thp.h | ||
timer.h | ||
tlb.h | ||
udp.h | ||
ufs.h | ||
v4l2.h | ||
vb2.h | ||
vmscan.h | ||
vsock_virtio_transport_common.h | ||
wbt.h | ||
workqueue.h | ||
writeback.h | ||
xdp.h | ||
xen.h |