Project

General

Profile

Actions

Feature #14017

closed

Add support for TCP_QUICKACK

Added by Nils Nieuwejaar 10 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Category:
networking
Start date:
2021-08-10
Due date:
% Done:

100%

Estimated time:
Difficulty:
Bite-size
Tags:
Gerrit CR:

Description

TCP_QUICKACK is a Linux setsockopt() option. When a socket is in quickack mode, it acks each TCP packet immediately rather than delaying in the hopes that it might be able to ack multiple packets at once.

Linux has had support for this option for ~20 years. While it doesn't seem to be widely used, I ran into a vendor-provided, closed-source tool that uses it. When running the tool under Illumos without enabling this mode, the increased latency caused a significant performance hit. I was able to work around the issue by using ndd to set the deferred-ack limit to 0. Using a per-socket mechanism rather than system-wide will reduce overall chattiness, allowing the system to remain a good network citizen.

Actions #1

Updated by Joshua M. Clulow 9 months ago

  • Gerrit CR set to 1659
Actions #2

Updated by Nils Nieuwejaar 4 months ago

I verified the new functionality by running the Linux-ported application that
required it. The binary-only server code is running on Linux, the client-side
code builds and runs on Illumos, and the two are working well together. I have
also been running with the changes on my main server / build / test system for
7+ months.

Actions #3

Updated by Electric Monk 4 months ago

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

git commit 861fa1490335b8e3cc91a1efafd8b9e481813931

commit  861fa1490335b8e3cc91a1efafd8b9e481813931
Author: Nils Nieuwejaar <nils@oxidecomputer.com>
Date:   2022-01-10T15:24:25.000Z

    14017 Add support for TCP_QUICKACK
    Reviewed by: Joshua M. Clulow <josh@sysmgr.org>
    Reviewed by: Andy Fiddaman <andy@omnios.org>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions

Also available in: Atom PDF