Bug #2470

[PATCH] network_write_chunkqueue_writev repeatedly calls sysctl to look up iov_max

Added by kevinday about 1 year ago. Updated 10 months ago.

Status:FixedStart date:2013-02-05
Priority:NormalDue date:
Assignee:-% Done:

100%

Category:core
Target version:1.4.33
Missing in 1.5.x:No

Description

On systems with sysconf(_SC_IOV_MAX), network_write_chunkqueue_writev prefers that over other options. On FreeBSD, sysconf is implemented by doing a sysctl lookup of kern.iov_max each time it's called. This has the full weight of a syscall, and is happening once every time through the for() loop.

The patch below checks the max_chunks value only once and remembers it, cutting the number of syscalls network_write_chunkqueue_writev makes in half. Also changes the error message if no way of looking up max_chunks is found to file a bug here instead of annoying Jan by email.

writev.diff.txt Magnifier (2.43 KB) kevinday, 2013-02-05 17:11

Associated revisions

Revision 2885
Added by stbuehler 10 months ago

[network] use constants available at compile time for maximum number of chunks for writev instead of calling sysconf (fixes #2470)

History

#1 Updated by stbuehler 10 months ago

  • Target version set to 1.4.33

#2 Updated by stbuehler 10 months ago

  • Status changed from New to Fixed
  • % Done changed from 0 to 100

Applied in changeset r2885.

Also available in: Atom