qemu-e2k/include
Paolo Bonzini 81f730d4d0 block, block-backend: write some hot coroutine wrappers by hand
The introduction of the graph lock is causing blk_get_geometry, a hot function
used in the I/O path, to create a coroutine.  However, the only part that really
needs to run in coroutine context is the call to bdrv_co_refresh_total_sectors,
which in turn only happens in the rare case of host CD-ROM devices.

So, write by hand the three wrappers on the path from blk_co_get_geometry to
bdrv_co_refresh_total_sectors, so that the coroutine wrapper is only created
if bdrv_nb_sectors actually calls bdrv_refresh_total_sectors.

Reported-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20230407153303.391121-9-pbonzini@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2023-04-11 16:46:49 +02:00
..
authz
block block, block-backend: write some hot coroutine wrappers by hand 2023-04-11 16:46:49 +02:00
chardev
crypto replace TABs with spaces 2023-03-20 12:43:50 +01:00
disas replace TABs with spaces 2023-03-20 12:43:50 +01:00
exec include/exec: Change reserved_va semantics to last byte 2023-03-28 15:23:10 -07:00
fpu
gdbstub gdbstub: Remove gdb_do_syscallv 2023-03-07 20:44:09 +00:00
hw softmmu: Restore use of CPU watchpoint for all accelerators 2023-03-28 15:24:06 -07:00
io io: Add support for MSG_PEEK for socket channel 2023-02-06 19:22:56 +01:00
libdecnumber
migration migration: Rename res_{postcopy,precopy}_only 2023-02-15 20:04:30 +01:00
monitor hmp: add cryptodev info command 2023-03-07 12:38:59 -05:00
net net/eth: Introduce EthL4HdrProto 2023-03-10 15:35:38 +08:00
qapi error: add global &error_warn destination 2023-03-13 15:23:37 +04:00
qemu util: import GTree as QTree 2023-03-28 15:23:10 -07:00
qom
scsi coroutine: Clean up superfluous inclusion of qemu/coroutine.h 2023-01-19 10:18:28 +01:00
semihosting
standard-headers linux-headers: Update to v6.2-rc8 2023-02-16 12:13:46 -07:00
sysemu block, block-backend: write some hot coroutine wrappers by hand 2023-04-11 16:46:49 +02:00
tcg tcg: Drop tcg_const_* 2023-03-13 07:03:39 -07:00
ui ui: introduce egl_init() 2023-03-13 23:48:45 +04:00
user *: Add missing includes of qemu/plugin.h 2023-03-22 15:06:57 +00:00
elf.h replace TABs with spaces 2023-03-20 12:43:50 +01:00
glib-compat.h
qemu-io.h
qemu-main.h