diff options
| author | Christian Brauner <[email protected]> | 2024-10-21 11:54:46 +0000 |
|---|---|---|
| committer | Christian Brauner <[email protected]> | 2024-10-30 08:58:02 +0000 |
| commit | aab154a442f9ba2a08fc130dbc8d178a33e10345 (patch) | |
| tree | 391d7f413919f98ce716690d5556afb0c024ee5d /fs/ext4/fast_commit.c | |
| parent | Merge branch 'work.fdtable' into vfs.file (diff) | |
| download | kernel-aab154a442f9ba2a08fc130dbc8d178a33e10345.tar.gz kernel-aab154a442f9ba2a08fc130dbc8d178a33e10345.zip | |
selftests: add file SLAB_TYPESAFE_BY_RCU recycling stressor
Add a simple file stressor that lives directly in-tree. This will create
a bunch of processes that each open 500 file descriptors and then use
close_range() to close them all.
Concurrently, other processes read /proc/<pid>/fd/ which rougly does
f = fget_task_next(p, &fd);
if (!f)
break;
data.mode = f->f_mode;
fput(f);
Which means that it'll try to get a reference to a file in another
task's file descriptor table.
Under heavy file load it is increasingly likely that the other task will
manage to close @file and @file will be recycled due to
SLAB_TYPEAFE_BY_RCU concurrently. This will trigger various warnings in
the file reference counting code.
Link: https://lore.kernel.org/r/20241021-vergab-streuen-924df15dceb9@brauner
Signed-off-by: Christian Brauner <[email protected]>
Diffstat (limited to 'fs/ext4/fast_commit.c')
0 files changed, 0 insertions, 0 deletions
