qemu/hw
Christian Schoenebeck 61da38db70 9pfs: fix concurrent v9fs_reclaim_fd() calls
Even though this function is serialized to be always called from main
thread, v9fs_reclaim_fd() is dispatching the coroutine to a worker thread
in between via its v9fs_co_*() calls, hence leading to the situation where
v9fs_reclaim_fd() is effectively executed multiple times simultaniously,
which renders its LRU algorithm useless and causes high latency.

Fix this by adding a simple boolean variable to ensure this function is
only called once at a time. No synchronization needed for this boolean
variable as this function is only entered and returned on main thread.

Fixes: 7a46274529 ('hw/9pfs: Add file descriptor reclaim support')
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Message-Id: <5c622067efd66dd4ee5eca740dcf263f41db20b2.1741339452.git.qemu_oss@crudebyte.com>
2025-05-05 11:28:28 +02:00
..
9pfs 9pfs: fix concurrent v9fs_reclaim_fd() calls 2025-05-05 11:28:28 +02:00
acpi qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
adc qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
alpha qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
arm qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
audio qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
avr qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
block qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
char qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
core Various patches loosely related to single binary work: 2025-04-27 12:47:16 -04:00
cpu qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cxl qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
display exec: Rename target_words_bigendian() -> target_big_endian() 2025-04-25 17:00:42 +02:00
dma qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
fsi qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
gpio qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
hppa qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
hyperv qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
i2c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
i386 qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ide qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
input qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
intc hw/intc/i8259: Remove unused DEBUG_PIC define 2025-04-25 17:00:42 +02:00
ipack qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ipmi qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
isa qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
loongarch qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
m68k qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
mem qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
microblaze hw/microblaze: Evaluate TARGET_BIG_ENDIAN at compile time 2025-04-25 17:09:58 +02:00
mips hw/mips: Evaluate TARGET_BIG_ENDIAN at compile time 2025-04-25 17:09:58 +02:00
misc qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
net hw/net/can: Fix type conflict of GLib function pointers 2025-04-25 17:09:53 +02:00
nubus qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
nvme qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
nvram qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
openrisc qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
pci qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pci-bridge qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pci-host qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ppc Various patches loosely related to single binary work: 2025-04-27 12:47:16 -04:00
remote qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
riscv qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
rtc qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
rx qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
s390x Various patches loosely related to single binary work: 2025-04-27 12:47:16 -04:00
scsi qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
sd qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
sensor qom: Constify TypeInfo::class_data 2025-04-25 17:00:41 +02:00
sh4 codebase: prepare to remove cpu.h from exec/exec-all.h 2025-04-23 13:52:25 -07:00
smbios ipmi: add fwinfo to pci ipmi devices 2025-04-11 10:50:42 -05:00
sparc qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sparc64 qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
ssi qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
timer qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
tpm qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
tricore qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
uefi qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ufs qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
usb hw/usb/hcd-xhci: Unmap canceled packet 2025-04-25 17:00:42 +02:00
vfio Various patches loosely related to single binary work: 2025-04-27 12:47:16 -04:00
virtio exec: Rename target_words_bigendian() -> target_big_endian() 2025-04-25 17:00:42 +02:00
vmapple qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
watchdog qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xen qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
xenpv hw/boards: Do not create unusable default if=sd drives 2025-02-16 14:25:08 +01:00
xtensa qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
Kconfig Misc HW patches 2025-03-05 21:54:58 +08:00
meson.build Misc HW patches 2025-03-05 21:54:58 +08:00