From: Patrick Steinhardt Date: Thu, 16 Jul 2026 07:52:18 GMT Subject: [PATCH 0/5] Reintroduce writev(3p) Message-ID: <20260716-pks-reintroduce-writev-v1-0-ea9038c884bc@pks.im> Hi, this patch series reintroduces the writev(3p) wrapper. This wrapper was originally introduced as part of Git 2.54 [1], but was ejected due to issues on NonStop [2]. This patch series here revives the effort with a couple of fixes on top: - It picks Dscho's fix for CMake [3]. - It picks a fix for NonStop [4] and polishes it a bit. - It adapts one more site to demonstrate that its usefulness is not limited to a single callsite, only. Furthermore, I have included benchmarks now that demonstrate the benefits to make this series a bit more appealing. Ultimately, I'd be fine if we say we rather don't want to go this way though. I merely wanted to tie some loose ends that I left dangling. That, and it's nice to not work on pluggable object databases once in a while. Thanks! Patrick [1]: <20260227-pks-upload-pack-write-contention-v1-0-7166fe255704@pks.im> [2]: <028901dcc859$d2419470$76c4bd50$@nexbridge.com> [3]: [4]: <20260409-b4-pks-writev-max-io-size-v1-1-81730e8f35df@pks.im> --- Patrick Steinhardt (5): compat/posix: introduce writev(3p) wrapper wrapper: introduce writev(3p) wrappers wrapper: properly handle MAX_IO_SIZE in writev(3p) sideband: use writev(3p) to send pktlines fast-import: use writev(3p) to send cat-blob responses Makefile | 4 ++ builtin/fast-import.c | 18 +++++++-- compat/posix.h | 14 +++++++ compat/writev.c | 44 +++++++++++++++++++++ config.mak.uname | 2 + contrib/buildsystems/CMakeLists.txt | 6 ++- meson.build | 1 + sideband.c | 14 +++++-- wrapper.c | 78 +++++++++++++++++++++++++++++++++++++ wrapper.h | 10 +++++ write-or-die.c | 8 ++++ write-or-die.h | 1 + 12 files changed, 193 insertions(+), 7 deletions(-) --- base-commit: 55526a18268bbc1ddaf8a6b7850c33d984eac9e9 change-id: 20260714-pks-reintroduce-writev-2d8f7e52eee9