[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH trivial 0/2] split out os_close_all_open_fd and use it in net/tap
From: |
Michael Tokarev |
Subject: |
[PATCH trivial 0/2] split out os_close_all_open_fd and use it in net/tap.c too |
Date: |
Fri, 26 Jan 2024 01:29:34 +0300 |
We have at least two places in qemu where we're closing all possible file
descriptors, - in async-teardown.c and in net/tap.c. While async-teardown
one uses either close_range() or readdir(/proc/self/fd), the two calls in
net/tap.c loops from 3 to RLIMIT_NOFILE, which might be quite slow, and
it actually *is* slow on some systems (eg, just qemu-system-x86_64 startup
with a tap device is very slow on alpine linux).
While for net/tap.c, maybe the better fix is to get rid of this closing
entirely and use O_CLOEXEC instead, this needs to be prepared at first,
while we alredy have almost ready-to-be-used implementation which only
needs to be moved into a common place.
Michael Tokarev (2):
close_all_open_fd(): move to oslib-posix.c
net/tap: use os_close_all_open_fd() instead of open-coding it
include/sysemu/os-posix.h | 1 +
net/tap.c | 15 ++-------------
system/async-teardown.c | 37 +------------------------------------
util/oslib-posix.c | 36 ++++++++++++++++++++++++++++++++++++
4 files changed, 40 insertions(+), 49 deletions(-)
--
2.39.2
- [PATCH trivial 0/2] split out os_close_all_open_fd and use it in net/tap.c too,
Michael Tokarev <=
[PATCH trivial 2/2] net/tap: use os_close_all_open_fd() instead of open-coding it, Michael Tokarev, 2024/01/25