android_kernel_google_msm/arch/arm/include/asm
Eric Dumazet adc3caedd0 net: introduce SO_MAX_PACING_RATE
As mentioned in commit afe4fd0624 ("pkt_sched: fq: Fair Queue packet
scheduler"), this patch adds a new socket option.

SO_MAX_PACING_RATE offers the application the ability to cap the
rate computed by transport layer. Value is in bytes per second.

u32 val = 1000000;
setsockopt(sockfd, SOL_SOCKET, SO_MAX_PACING_RATE, &val, sizeof(val));

To be effectively paced, a flow must use FQ packet scheduler.

Note that a packet scheduler takes into account the headers for its
computations. The effective payload rate depends on MSS and retransmits
if any.

I chose to make this pacing rate a SOL_SOCKET option instead of a
TCP one because this can be used by other protocols.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Steinar H. Gunderson <sesse@google.com>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Change-Id: Iea51b6104a5420d5c9ed1ea7382cbd53bdb8f4be
2020-11-30 19:31:32 +03:00
..
crypto ARM: 8119/1: crypto: sha1: add ARM NEON implementation 2015-01-07 10:45:10 -08:00
hardware coresight: move cp14.h to include/asm/hardware 2013-03-15 17:05:59 -07:00
mach msm: set the packed write feature in platform data for eMMC 2013-03-04 12:43:24 -08:00
arch_timer.h arm: arch_timer: export function to read physical counter 2013-02-27 18:17:35 -08:00
asm-offsets.h
assembler.h ARM: 7527/1: uaccess: explicitly check __user pointer when !CPU_USE_DOMAINS 2013-10-15 16:29:47 -07:00
atomic.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
barrier.h ARM: OMAP2+: Fix omap2+ build error 2012-04-03 10:59:10 -07:00
bitops.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
bug.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
bugs.h
byteorder.h
cache.h
cacheflush.h Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
cachetype.h ARM: 7062/1: cache: detect PIPT I-cache using CTR 2011-10-17 09:13:41 +01:00
checksum.h
clkdev.h ARM: Consolidate the clkdev header files 2011-07-19 18:09:45 +02:00
cmpxchg.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
compiler.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
cp15.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
cpu.h arm: Use generic idle thread allocation 2016-10-29 23:12:38 +08:00
cpuidle.h cpuidle: Add common time keeping and irq enabling 2012-03-21 01:59:40 -04:00
cputype.h ARM: 7011/1: Add ARM cpu topology definition 2011-10-17 09:02:43 +01:00
cti.h arm: introduce cross trigger interface helpers 2011-12-02 15:16:33 +00:00
current.h
delay.h arm: Implement a timer based __delay() loop 2013-02-20 01:32:28 -08:00
device.h ARM: dma-mapping: add support for IOMMU mapper 2013-03-07 15:23:19 -08:00
div64.h ARM: 8027/1: fix do_div() bug in big-endian systems 2014-05-06 07:51:40 -07:00
dma-contiguous.h ARM: integrate CMA with DMA-mapping subsystem 2013-02-27 18:14:48 -08:00
dma-iommu.h ARM: dma-mapping: add support for IOMMU mapper 2013-03-07 15:23:19 -08:00
dma-mapping.h arm: dma-mapping: Add APIs for other memory types 2013-03-07 15:23:22 -08:00
dma.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
domain.h [ARM] Don't use domain 0 for the kernel domain if CONFIG_VERIFY_PERMISSION_FAULT is set. 2013-02-20 02:50:19 -08:00
ecard.h ARM: io: ecard: move ioaddr() inside __ecard_address 2011-08-17 08:44:16 +01:00
edac.h ARM: 7201/1: add EDAC atomic_scrub function 2011-12-11 08:35:50 +00:00
elf.h ARM: 8320/1: fix integer overflow in ELF_ET_DYN_BASE 2015-09-18 09:20:26 +08:00
entry-macro-multi.S ARM: gic: consolidate PPI handling 2011-10-23 13:32:29 +01:00
exception.h ARM: 7115/4: move __exception and friends to asm/exception.h 2011-10-17 09:02:44 +01:00
exec.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
fb.h
fcntl.h
fiq.h arm: fiq: Provide empty stubs for fiq functions 2013-02-20 01:32:07 -08:00
fiq_debugger.h ARM: Add generic fiq serial debugger 2012-04-09 13:57:51 -07:00
fiq_glue.h ARM: Add fiq_glue 2012-04-09 13:57:51 -07:00
fixmap.h
flat.h
floppy.h
fncpy.h
fpstate.h
ftrace.h
futex.h ARM: 7301/1: Rename the T() macro to TUSER() to avoid namespace conflicts 2012-01-25 11:07:40 +00:00
glue-cache.h
glue-df.h
glue-pf.h
glue-proc.h
glue.h
gpio.h ARM: 7271/1: Fix typo in conversion of ARCH_NR_GPIOS to Kconfig 2012-01-08 09:27:19 +00:00
hardirq.h Merge branch 'goog/googly' (early part) into goog/msm-soc-3.4 2013-02-25 11:25:46 -08:00
highmem.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
hw_breakpoint.h ARM: hw_breakpoint: add support for multiple watchpoints 2011-08-31 10:42:48 +01:00
hw_irq.h
hwcap.h ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set 2012-12-17 10:37:43 -08:00
ide.h
idmap.h ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting 2011-12-06 14:04:15 +00:00
io.h ARM: Add support for 64 bit register reads/writes 2013-09-06 16:17:39 -07:00
ioctls.h
ipcbuf.h consolidate a bunch of ipcbuf.h instances 2012-01-03 22:55:18 -05:00
irq.h ARM: smp: implement arch_trigger_all_cpus_backtrace using IPI 2012-04-09 13:53:11 -07:00
irqflags.h
jump_label.h ARM: 7386/1: jump_label: fixup for rename to static_key 2012-04-15 22:00:31 +01:00
Kbuild ARM: pull in <asm/simd.h> from asm-generic 2016-10-29 23:12:14 +08:00
kexec.h
kgdb.h
kmap_types.h
kprobes.h Kernel: Audit Support For The ARM Platform 2012-01-17 16:17:01 -05:00
leds.h
limits.h
linkage.h
localtimer.h Add snapshot of mach-msm from beginning of msm-3.4 2013-02-27 18:09:25 -08:00
locks.h
mach-types.h
mc146818rtc.h ARM: mc146818rtc: remove unnecessary include of mach/irqs.h 2012-01-25 20:37:45 -06:00
memblock.h ARM: Add arm_memblock_steal() to allocate memory away from the kernel 2012-01-13 15:02:35 +00:00
memory.h [ARM] add support for CPUs that do speculative fetches 2013-02-20 02:50:17 -08:00
mman.h
mmu.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
mmu_context.h ARM: 7294/1: vectors: use gate_vma for vectors user mapping 2012-03-24 09:38:51 +00:00
mmu_writeable.h Update copyright to The Linux Foundation 2013-03-15 17:07:39 -07:00
module.h ARM: 7013/1: P2V: Remove ARM_PATCH_PHYS_VIRT_16BIT 2011-08-13 11:26:40 +01:00
msgbuf.h
mtd-xip.h
mutex.h ARM: 7495/1: mutex: use generic atomic_dec-based implementation for ARMv6+ 2013-03-15 17:09:41 -07:00
neon.h ARM: add support for kernel mode NEON 2016-10-29 23:12:13 +08:00
nwflash.h
opcodes.h ARM: 7311/1: Add generic instruction opcode manipulation helpers 2012-03-24 09:38:51 +00:00
outercache.h ARM: move outer_cache declaration out of ifdef 2014-03-30 21:40:30 -07:00
page-nommu.h
page.h mm: Make memory hotplug aware of memmap holes 2013-02-20 02:44:00 -08:00
param.h
parport.h
pci.h PCI: collapse pcibios_resource_to_bus 2012-02-23 20:19:04 -07:00
perf_event.h Perf: Upgrade 8660 L2CC PMU perf support 2013-02-27 18:12:13 -08:00
perftypes.h Update copyright to The Linux Foundation 2013-03-15 17:07:39 -07:00
pgalloc.h ARM: LPAE: Page table maintenance for the 3-level format 2011-12-08 10:30:39 +00:00
pgtable-2level-hwdef.h ARM: 7077/1: LPAE: Use a mask for physical addresses in page table entries 2011-10-06 15:40:06 +01:00
pgtable-2level-types.h ARM: 7076/1: LPAE: Add (pte|pmd)val_t type definitions as u32 2011-10-06 15:40:05 +01:00
pgtable-2level.h ARM: LPAE: Move page table maintenance macros to pgtable-2level.h 2011-12-08 10:30:37 +00:00
pgtable-3level-hwdef.h ARM: LPAE: Introduce the 3-level page table format definitions 2011-12-08 10:30:39 +00:00
pgtable-3level-types.h ARM: LPAE: Introduce the 3-level page table format definitions 2011-12-08 10:30:39 +00:00
pgtable-3level.h ARM: LPAE: Page table maintenance for the 3-level format 2011-12-08 10:30:39 +00:00
pgtable-hwdef.h ARM: LPAE: Introduce the 3-level page table format definitions 2011-12-08 10:30:39 +00:00
pgtable-nommu.h Remove remaining bits of io_remap_page_range() 2012-03-23 16:58:31 -07:00
pgtable.h Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
pmu.h Perf: Fix the condition to toggle PMU IRQ when CPUs are hotplugged. 2015-06-03 13:14:54 -07:00
posix_types.h arm: Use generic posix_types.h 2012-02-14 12:01:28 -08:00
proc-fns.h ARM: LPAE: Page table maintenance for the 3-level format 2011-12-08 10:30:39 +00:00
processor.h Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
procinfo.h
prom.h ARM: get rid of asm/irq.h in asm/prom.h 2012-03-24 09:38:54 +00:00
ptrace.h Kernel: Audit Support For The ARM Platform 2012-01-17 16:17:01 -05:00
remote_spinlock.h Update copyright to The Linux Foundation 2013-03-15 17:07:39 -07:00
rodata.h ARM: allow the kernel text section to be made read-only 2013-02-20 02:49:03 -08:00
scatterlist.h ARM: Allow SoCs to enable scatterlist chaining 2011-06-02 11:16:22 +01:00
sched_clock.h sched_clock: Squashed revert of the latest updates 2018-02-20 21:56:17 +03:00
seccomp.h
segment.h
sembuf.h
serial.h
setup.h ARM: Fix bank_pfn_end macro overflow 2013-02-20 02:50:14 -08:00
shmbuf.h
shmparam.h
sigcontext.h
signal.h signal: Define __ARCH_HAS_SA_RESTORER so we know whether to clear sa_restorer 2013-04-05 10:04:14 -07:00
smp.h ARM: gic: Consolidate PPI handling with request_percpu_irq() API 2013-02-20 02:49:13 -08:00
smp_plat.h ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
smp_scu.h
smp_twd.h ARM: smp_twd: remove old local timer interface 2012-03-13 13:45:54 +00:00
socket.h net: introduce SO_MAX_PACING_RATE 2020-11-30 19:31:32 +03:00
sockios.h
sparsemem.h
spinlock.h arm: Don't disable interrupts during WFE fixup 2013-02-27 18:18:57 -08:00
spinlock_types.h
stackprotector.h
stacktrace.h
stat.h
statfs.h
string.h
suspend.h ARM: pm: preallocate a page table for suspend/resume 2011-09-20 23:33:36 +01:00
swab.h Merge branch 'for-next' of git://git.infradead.org/users/dhowells/linux-headers 2012-01-14 18:03:30 -08:00
switch_to.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
syscall.h CHROMIUM: ARM: r1->r0 for get/set arguments 2014-10-31 19:46:24 -07:00
system.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
system_info.h Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
system_misc.h Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
tcm.h ARM: 6985/1: export functions to determine the presence of I/DTCM 2011-07-06 20:49:45 +01:00
termbits.h
termios.h
therm.h
thread_info.h ARM: 7735/2: Preserve the user r/w register TPIDRURW on context switch and fork 2016-06-03 11:52:03 -07:00
thread_notify.h
timex.h
tlb.h ARM: 7302/1: Add TLB flushing for both entries in a PMD 2012-02-02 17:37:42 +00:00
tlbflush.h msm: 8660: Add TLBIMVAIS workaround 2013-02-20 02:48:50 -08:00
tls.h ARM: 7735/2: Preserve the user r/w register TPIDRURW on context switch and fork 2016-06-03 11:52:03 -07:00
topology.h ARM: 7182/1: ARM cpu topology: fix warning 2011-11-30 23:55:21 +00:00
traps.h ARM: earlier initialization of vectors page 2012-01-23 10:24:11 +00:00
types.h consolidate umode_t declarations 2012-01-03 22:55:17 -05:00
uaccess.h BACKPORT: ARM: 8091/2: add get_user() support for 8 byte types 2017-11-09 15:26:22 +00:00
ucontext.h
unaligned.h
unified.h ARM: make BSYM macro assembly only 2012-01-16 08:56:25 -06:00
unistd.h ARM: wire up memfd_create syscall 2020-10-25 02:37:54 -04:00
unwind.h ARM: 7187/1: fix unwinding for XIP kernels 2011-12-06 11:16:13 +00:00
user.h
vfp.h Add snapshot of mach-msm from beginning of msm-3.4 2013-02-27 18:09:25 -08:00
vfpmacros.h ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set 2012-12-17 10:37:43 -08:00
vga.h ARM: set vga memory base at run-time 2011-07-12 11:19:29 -05:00
xor.h