Changeset c6d8589b in rtems


Ignore:
Timestamp:
Jun 7, 2018, 6:18:13 PM (18 months ago)
Author:
rrs <rrs@…>
Branches:
master
Children:
12a263b
Parents:
75d9e79f
git-author:
rrs <rrs@…> (06/07/18 18:18:13)
git-committer:
Sebastian Huber <sebastian.huber@…> (11/18/19 06:16:30)
Message:

Synchronize kernel <sys/time.h> with FreeBSD

Integrate parts of this commit:

This commit brings in a new refactored TCP stack
called Rack. Rack includes the following features: - A different SACK
processing scheme (the old sack structures are not used). - RACK (Recent
acknowledgment) where counting dup-acks is no longer done instead time
is used to knwo when to retransmit. (see the I-D) - TLP (Tail Loss
Probe) where we will probe for tail-losses to attempt to try not to take
a retransmit time-out. (see the I-D) - Burst mitigation using TCPHTPS -
PRR (partial rate reduction) see the RFC.

Once built into your kernel, you can select this stack by either
socket option with the name of the stack is "rack" or by setting
the global sysctl so the default is rack.

Note that any connection that does not support SACK will be kicked
back to the "default" base FreeBSD stack (currently known as "default").

To build this into your kernel you will need to enable in your
kernel:

makeoptions WITH_EXTRA_TCP_STACKS=1
options TCPHPTS

Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D15525

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/include/machine/_kernel_time.h

    r75d9e79f rc6d8589b  
    6767        } while (0)
    6868#endif
     69
     70/*
     71 * Simple macros to convert ticks to milliseconds
     72 * or microseconds and vice-versa. The answer
     73 * will always be at least 1. Note the return
     74 * value is a uint32_t however we step up the
     75 * operations to 64 bit to avoid any overflow/underflow
     76 * problems.
     77 */
     78#define TICKS_2_MSEC(t) max(1, (uint32_t)(hz == 1000) ? \
     79          (t) : (((uint64_t)(t) * (uint64_t)1000)/(uint64_t)hz))
     80#define TICKS_2_USEC(t) max(1, (uint32_t)(hz == 1000) ? \
     81          ((t) * 1000) : (((uint64_t)(t) * (uint64_t)1000000)/(uint64_t)hz))
     82#define MSEC_2_TICKS(m) max(1, (uint32_t)((hz == 1000) ? \
     83          (m) : ((uint64_t)(m) * (uint64_t)hz)/(uint64_t)1000))
     84#define USEC_2_TICKS(u) max(1, (uint32_t)((hz == 1000) ? \
     85         ((u) / 1000) : ((uint64_t)(u) * (uint64_t)hz)/(uint64_t)1000000))
    6986
    7087/* Operations on timevals. */
Note: See TracChangeset for help on using the changeset viewer.