aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Expand)AuthorAge
* [PATCH] fix menuconfig colours with TERM=vt100Roman Zippel2006-11-25
* [PATCH] qconf: fix uninitialsied memberRoman Zippel2006-11-25
* [PATCH] initramfs: handle more than one source dir or file listThomas Chou2006-11-25
* [PATCH] .gitignore: add miscellaneous filesFranck Bui-Huu2006-11-13
* [PATCH] update some docbook commentsRandy Dunlap2006-11-03
* [POWERPC] Support feature fixups in modulesBenjamin Herrenschmidt2006-10-24
* [PATCH] kbuild: allow multi-word $M in Makefile.modpostGreg Banks2006-10-17
* [PATCH] fix `make headers_install'David Woodhouse2006-10-17
* [PATCH] kernel-doc: make parameter description indentation uniformRandy Dunlap2006-10-11
* [PATCH] kernel-doc: drop various "inline" qualifiersRandy Dunlap2006-10-11
* [PATCH] Fix menuconfig build failure due to missing stdbool.hLuca Tettamanti2006-10-11
* [PATCH] hdrcheck permission fixAndrew Morton2006-10-04
* Fix copy&waste bug in comment in scripts/kernel-docRolf Eike Beer2006-10-03
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds2006-10-03
|\
| * kconfig: fix saving alternate kconfig file in parent dirSam Ravnborg2006-10-01
| * kbuild: make modpost processing configurableSam Ravnborg2006-10-01
| * kconfig/menuconfig: do not let ncurses clutter screen on exitSam Ravnborg2006-09-30
| * kconfig/lxdialog: clear long menu linesSam Ravnborg2006-09-30
| * kbuild: do not build mconf & lxdialog unless neededSam Ravnborg2006-09-30
| * kconfig/lxdialog: fix make mrproperSam Ravnborg2006-09-30
| * kconfig/lxdialog: support resizeSam Ravnborg2006-09-30
| * kconfig/lxdialog: let <ESC><ESC> behave as expectedSam Ravnborg2006-09-30
| * kconfig/menuconfig: lxdialog is now built-inSam Ravnborg2006-09-30
| * kconfig/lxdialog: add a new theme bluetitle which is now defaultSam Ravnborg2006-09-30
| * kconfig/lxdialog: add support for color themes and add blackbg themeSam Ravnborg2006-09-30
| * kconfig/lxdialog: refactor color supportSam Ravnborg2006-09-30
* | [PATCH] Add unifdef to gitignorePaul Mundt2006-10-02
* | [PATCH] allow /proc/config.gz to be built as a moduleRoss Biro2006-10-01
|/
* [PATCH] docbook: fix segfault in docproc.cHenrik Kretzschmar2006-09-29
* [PATCH] EISA bus MODALIAS attributes supportMichael Tokarev2006-09-27
* [PATCH] i386/x86-64: Work around gcc bug with noreturn functions in unwinderJan Beulich2006-09-26
* [PATCH] Add the -fstack-protector option to the CFLAGSArjan van de Ven2006-09-26
* [PATCH] x86: Detect CFI support in the assembler at runtimeAndi Kleen2006-09-26
* Merge git://git.infradead.org/~dwmw2/khdrs-2.6Linus Torvalds2006-09-24
|\
| * Use dependencies for 'make headers_install'.David Woodhouse2006-09-24
* | kbuild: fix "mkdir -p" usage in scripts/package/mkspecRolf Eike Beer2006-09-25
* | kbuild: update help in top level MakefileRobert P. J. Day2006-09-25
* | kbuild: fail kernel compilation in case of unresolved module symbolsKirill Korotaev2006-09-25
* | kbuild: remove debug left-over from Makefile.hostSam Ravnborg2006-09-25
* | kbuild: create output directory for hostprogs with O=.. buildSam Ravnborg2006-09-25
* | kbuild: add missing return statement in modpost.c:secref_whitelist()Sam Ravnborg2006-09-25
* | kbuild: make V=2 tell why a target is rebuildSam Ravnborg2006-09-25
* | kbuild: modpost on vmlinux regardless of CONFIG_MODULESSam Ravnborg2006-09-25
* | kbuild: ignore references from ".pci_fixup" to ".init.text"Magnus Damm2006-09-25
* | kbuild: use in-kernel unifdefSam Ravnborg2006-09-25
* | kbuild: replace use of strlcpy with a dedicated implmentation in unifdefSam Ravnborg2006-09-25
* | kbuild: add unifdefSam Ravnborg2006-09-25
* | kbuild: consistently decide when to rebuild a targetSam Ravnborg2006-09-25
* | kconfig: support DOS line endingsMatthew Wilcox2006-09-25
|/
* Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6Linus Torvalds2006-09-22
|\
/* 0.11 */ }, { 71617, 27, /* 0.11 */ }, { 75401, 26, /* 0.10 */ }, { 79517, 26, /* 0.10 */ }, { 84035, 25, /* 0.10 */ }, { 89053, 24, /* 0.10 */ }, }; #define HSTCP_AIMD_MAX ARRAY_SIZE(hstcp_aimd_vals) struct hstcp { u32 ai; }; static void hstcp_init(struct sock *sk) { struct tcp_sock *tp = tcp_sk(sk); struct hstcp *ca = inet_csk_ca(sk); ca->ai = 0; /* Ensure the MD arithmetic works. This is somewhat pedantic, * since I don't think we will see a cwnd this large. :) */ tp->snd_cwnd_clamp = min_t(u32, tp->snd_cwnd_clamp, 0xffffffff/128); } static void hstcp_cong_avoid(struct sock *sk, u32 adk, u32 in_flight) { struct tcp_sock *tp = tcp_sk(sk); struct hstcp *ca = inet_csk_ca(sk); if (!tcp_is_cwnd_limited(sk, in_flight)) return; if (tp->snd_cwnd <= tp->snd_ssthresh) tcp_slow_start(tp); else { /* Update AIMD parameters. * * We want to guarantee that: * hstcp_aimd_vals[ca->ai-1].cwnd < * snd_cwnd <= * hstcp_aimd_vals[ca->ai].cwnd */ if (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd) { while (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd && ca->ai < HSTCP_AIMD_MAX - 1) ca->ai++; } else if (ca->ai && tp->snd_cwnd <= hstcp_aimd_vals[ca->ai-1].cwnd) { while (ca->ai && tp->snd_cwnd <= hstcp_aimd_vals[ca->ai-1].cwnd) ca->ai--; } /* Do additive increase */ if (tp->snd_cwnd < tp->snd_cwnd_clamp) { /* cwnd = cwnd + a(w) / cwnd */ tp->snd_cwnd_cnt += ca->ai + 1; if (tp->snd_cwnd_cnt >= tp->snd_cwnd) { tp->snd_cwnd_cnt -= tp->snd_cwnd; tp->snd_cwnd++; } } } } static u32 hstcp_ssthresh(struct sock *sk) { const struct tcp_sock *tp = tcp_sk(sk); const struct hstcp *ca = inet_csk_ca(sk); /* Do multiplicative decrease */ return max(tp->snd_cwnd - ((tp->snd_cwnd * hstcp_aimd_vals[ca->ai].md) >> 8), 2U); } static struct tcp_congestion_ops tcp_highspeed __read_mostly = { .init = hstcp_init, .ssthresh = hstcp_ssthresh, .cong_avoid = hstcp_cong_avoid, .min_cwnd = tcp_reno_min_cwnd, .owner = THIS_MODULE, .name = "highspeed" }; static int __init hstcp_register(void) { BUILD_BUG_ON(sizeof(struct hstcp) > ICSK_CA_PRIV_SIZE); return tcp_register_congestion_control(&tcp_highspeed); } static void __exit hstcp_unregister(void) { tcp_unregister_congestion_control(&tcp_highspeed); } module_init(hstcp_register); module_exit(hstcp_unregister); MODULE_AUTHOR("John Heffner"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("High Speed TCP");