[PATCH 0/5] Reintroduce writev(3p)
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Jul 16, 2026, 07:52 UTC
- 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]: <pull.2078.git.1775206502134.gitgitgadget@gmail.com> [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 responsesMakefile | 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