Skip to content
Snippets Groups Projects
Select Git revision
  • dddb64bcb34615bf48a2c9cb9881eb76795cc5c5
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

tcp_ipv6.c

Blame
    • Subash Abhinov Kasiviswanathan's avatar
      dddb64bc
      net: Add sysctl to toggle early demux for tcp and udp · dddb64bc
      Subash Abhinov Kasiviswanathan authored
      
      Certain system process significant unconnected UDP workload.
      It would be preferrable to disable UDP early demux for those systems
      and enable it for TCP only.
      
      By disabling UDP demux, we see these slight gains on an ARM64 system-
      782 -> 788Mbps unconnected single stream UDPv4
      633 -> 654Mbps unconnected UDPv4 different sources
      
      The performance impact can change based on CPU architecure and cache
      sizes. There will not much difference seen if entire UDP hash table
      is in cache.
      
      Both sysctls are enabled by default to preserve existing behavior.
      
      v1->v2: Change function pointer instead of adding conditional as
      suggested by Stephen.
      
      v2->v3: Read once in callers to avoid issues due to compiler
      optimizations. Also update commit message with the tests.
      
      v3->v4: Store and use read once result instead of querying pointer
      again incorrectly.
      
      v4->v5: Refactor to avoid errors due to compilation with IPV6={m,n}
      
      Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
      Suggested-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Stephen Hemminger <stephen@networkplumber.org>
      Cc: Tom Herbert <tom@herbertland.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dddb64bc
      History
      net: Add sysctl to toggle early demux for tcp and udp
      Subash Abhinov Kasiviswanathan authored
      
      Certain system process significant unconnected UDP workload.
      It would be preferrable to disable UDP early demux for those systems
      and enable it for TCP only.
      
      By disabling UDP demux, we see these slight gains on an ARM64 system-
      782 -> 788Mbps unconnected single stream UDPv4
      633 -> 654Mbps unconnected UDPv4 different sources
      
      The performance impact can change based on CPU architecure and cache
      sizes. There will not much difference seen if entire UDP hash table
      is in cache.
      
      Both sysctls are enabled by default to preserve existing behavior.
      
      v1->v2: Change function pointer instead of adding conditional as
      suggested by Stephen.
      
      v2->v3: Read once in callers to avoid issues due to compiler
      optimizations. Also update commit message with the tests.
      
      v3->v4: Store and use read once result instead of querying pointer
      again incorrectly.
      
      v4->v5: Refactor to avoid errors due to compilation with IPV6={m,n}
      
      Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
      Suggested-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Stephen Hemminger <stephen@networkplumber.org>
      Cc: Tom Herbert <tom@herbertland.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    init.c 17.99 KiB
    /*
     *  linux/arch/arm/mm/init.c
     *
     *  Copyright (C) 1995-2005 Russell King
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    #include <linux/kernel.h>
    #include <linux/errno.h>
    #include <linux/swap.h>
    #include <linux/init.h>
    #include <linux/bootmem.h>
    #include <linux/mman.h>
    #include <linux/export.h>
    #include <linux/nodemask.h>
    #include <linux/initrd.h>
    #include <linux/of_fdt.h>
    #include <linux/of_reserved_mem.h>
    #include <linux/highmem.h>
    #include <linux/gfp.h>
    #include <linux/memblock.h>
    #include <linux/dma-contiguous.h>
    #include <linux/sizes.h>
    
    #include <asm/mach-types.h>
    #include <asm/memblock.h>
    #include <asm/prom.h>
    #include <asm/sections.h>
    #include <asm/setup.h>
    #include <asm/tlb.h>
    #include <asm/fixmap.h>
    
    #include <asm/mach/arch.h>
    #include <asm/mach/map.h>
    
    #include "mm.h"
    
    static phys_addr_t phys_initrd_start __initdata = 0;
    static unsigned long phys_initrd_size __initdata = 0;
    
    static int __init early_initrd(char *p)
    {
    	phys_addr_t start;
    	unsigned long size;
    	char *endp;
    
    	start = memparse(p, &endp);
    	if (*endp == ',') {
    		size = memparse(endp + 1, NULL);
    
    		phys_initrd_start = start;
    		phys_initrd_size = size;
    	}
    	return 0;
    }
    early_param("initrd", early_initrd);
    
    static int __init parse_tag_initrd(const struct tag *tag)
    {
    	printk(KERN_WARNING "ATAG_INITRD is deprecated; "
    		"please update your bootloader.\n");
    	phys_initrd_start = __virt_to_phys(tag->u.initrd.start);
    	phys_initrd_size = tag->u.initrd.size;
    	return 0;
    }
    
    __tagtable(ATAG_INITRD, parse_tag_initrd);