openwrt-owl/target/linux/generic/patches-3.8
Felix Fietkau 8eb57d0cd7 kernel: align the skb padding to power of two
The skb is usually started by a padding which allows the protocols in the
network stack to add their headers in front of the payload. The skb can be
reallocated in case the preallocated padding is not large enough. This can for
example happen in the function __skb_cow which will check the requested extra
headroom and allocate more buffer when the requested headroom is bigger than
the available one. The extra buffer is aligned again to the multiple of the
NET_SKB_PAD of the target architecture.

The macro used to create the multiple of the NET_SKB_PAD is written in a way
which allows only values power two as alignment parameter. The currently used
value of 48 bytes can not be written as n ** 2 but as 2 ** 4 + 2 ** 5. The
extra buffer is therefore not always the multiple of 48 but can be 16, 64, 80,
128, 144 and so on. The generated values are also not monotonic (48 requested
bytes are mapped to 80 allocated bytes and 49 requested bytes are mapped to 64
allocated bytes).

These unexpected small values result in more reallocations of the buffer. This
was noticed prominently during tests between two QCA9558 720 MHz devices which
were connected via ethernet to PCs and had a HT40 802.11n 3x3 link between each
other. The throughput PC-to-PC during iperf TCP runs increased reliable from
186 Mibit/s to 214 Mibit/s in one direction and from 195 Mibit/s to 220 Mibit/s
in the other direction. This is a performance increase of ~14% just by reducing
the amount of reallocations.

Signed-off-by: Sven Eckelmann <sven@open-mesh.com>

SVN-Revision: 37948
2013-09-11 14:30:15 +00:00
..
007-hso-Earlier-catch-of-error-condition.patch kernel: fix arch-dependent bug in hso module 2013-09-10 13:47:44 +00:00
008-hso-Fix-stack-corruption-on-some-architectures.patch kernel: fix arch-dependent bug in hso module 2013-09-10 13:47:44 +00:00
010-mtd_mp25p80_add_gd25q32_gd25q64.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
020-ssb_update.patch kernel: update bcma and ssb to version from wireless-testing/master tag master-2013-07-18 2013-07-19 12:02:34 +00:00
025-bcma_backport.patch kernel: update bcma and ssb to version from wireless-testing/master tag master-2013-07-18 2013-07-19 12:02:34 +00:00
026-bcma_pcie_up_down.patch kernel: fix DMA error when BCM4331 is connected to BCM4706 2013-08-05 16:17:05 +00:00
030-backport-lib-devres-Introduce-devm_ioremap_resource.patch linux/3.8: backport devm_ioremap_resource from 3.9 2013-04-06 17:33:00 +00:00
031-PCI-Remove-__weak-annotation-from-pcibios_get_phb_of.patch linux/3.8: use backported pcibios_get_phb_of_node patches 2013-04-30 10:44:07 +00:00
032-MIPS-PCI-Implement-pcibios_get_phb_of_node.patch linux/3.8: use backported pcibios_get_phb_of_node patches 2013-04-30 10:44:07 +00:00
033-backport-spi-of-Use-DT-aliases-for-assigning-bus-number.patch linux/3.8: backport 'spi/of: Use DT aliases for assigning bus number' from 3.9 2013-04-12 19:44:38 +00:00
040-backport_led_gpio_request_fix.patch kernel: refresh patches for kernel 3.8.13 2013-07-13 22:45:56 +00:00
060-hso_devices.patch kernel: update linux 3.8 to 3.8.6 2013-04-06 11:40:44 +00:00
061-arm_xz_decompressor_build_fix.patch
062-mips_decompressor_build_fix.patch
084-x86_fix_perf_uclibc_build.patch
100-overlayfs.patch kernel: update linux 3.8 to 3.8.6 2013-04-06 11:40:44 +00:00
101-overlayfs_path_ref.patch kernel: fix a reference counting bug in overlayfs 2013-06-22 14:00:12 +00:00
102-ehci_hcd_ignore_oc.patch kernel: update linux 3.8 to 3.8.6 2013-04-06 11:40:44 +00:00
110-fix_mtd_include.patch
200-fix_localversion.patch
201-extra_optimization.patch build: unify target independent optimization options 2013-07-29 09:38:29 +00:00
202-reduce_module_size.patch
203-kallsyms_uncompressed.patch kernel: port 203-kallsyms_uncompressed.patch and 305-mips_module_reloc.patch to 3.8 2013-01-14 18:55:36 +00:00
204-module_strip.patch kernel: refresh patches for kernel 3.8.13 2013-07-13 22:45:56 +00:00
210-darwin_scripts_include.patch
212-byteshift_portability.patch
220-gc_sections.patch kernel: prevent -f*-sections from leaking into the boot zImage wrapper on arm 2013-03-10 17:04:36 +00:00
221-module_exports.patch kernel: use -ffunction-sections, -fdata-sections and --gc-sections on mips 2013-01-26 16:26:13 +00:00
230-openwrt_lzma_options.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
250-netfilter_depends.patch kernel: refresh 3.8 patches 2013-01-17 22:28:53 +00:00
251-sound_kconfig.patch kernel: make SND_COMPRESS_OFFLOAD symbol visible for selection (#13193) 2013-03-19 14:13:39 +00:00
252-mv_cesa_depends.patch
253-ssb_b43_default_on.patch
254-textsearch_kconfig_hacks.patch
255-lib80211_kconfig_hacks.patch
256-crypto_add_kconfig_prompts.patch
257-wireless_ext_kconfig_hack.patch
258-netfilter_netlink_kconfig_hack.patch
259-regmap_dynamic.patch kernel: REGMAP_SPI should only be selectable when SPI_MASTER is selected 2013-03-21 14:50:59 +00:00
260-crypto_test_dependencies.patch kernel: prevent cryptomgr from pulling in useless extra dependencies for tests that are not run 2013-01-27 16:21:08 +00:00
261-move_bcm963xx_tag.patch kernel: generic: add back the patch exporting bcm63xx tag header 2013-02-04 10:19:35 +00:00
262-compressor_kconfig_hack.patch kernel: make zlib and lzo modules selectable 2013-05-09 20:50:07 +00:00
300-mips_expose_boot_raw.patch
301-mips_image_cmdline_hack.patch kernel: refresh 3.8 patches 2013-01-17 22:28:53 +00:00
302-mips_no_branch_likely.patch kernel: use -ffunction-sections, -fdata-sections and --gc-sections on mips 2013-01-26 16:26:13 +00:00
304-mips_disable_fpu.patch
305-mips_module_reloc.patch kernel: use -ffunction-sections, -fdata-sections and --gc-sections on ARM to reduce kernel image size, disable those flags when tracing on MIPS to fix compile errors 2013-03-10 14:51:42 +00:00
306-mips_mem_functions_performance.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
308-mips-show-correct-cpu-name-for-24KEc.patch
309-mips_fuse_workaround.patch
310-arm_module_unresolved_weak_sym.patch
320-ppc4xx_optimization.patch
321-powerpc_crtsavres_prereq.patch
322-ppc4xx-crypto-compile-fix.patch
400-rootfs_split.patch kernel: fix a memory leak in split_rootfs_data() 2013-04-28 17:01:56 +00:00
401-partial_eraseblock_write.patch
410-mtd_info_move_forward_decl.patch
420-redboot_space.patch
430-mtd_myloader_partition_parser.patch
440-block2mtd_init.patch
441-block2mtd_refresh.patch kernel: fixing a potential deadlock in block2mtd for kernel 3.6/3.8/3.9 2013-08-26 17:47:14 +00:00
442-block2mtd_probe.patch
450-mtd_plat_nand_chip_fixup.patch kernel: update linux 3.8 to 3.8.6 2013-04-06 11:40:44 +00:00
451-mtd_fix_nand_correct_data_return_code.patch
460-cfi_cmdset_0002_no_erase_suspend.patch
470-mtd_m25p80_add_pm25lv_flash_support.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
473-mtd_m25p80_add_w25q128.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
474-mtd_mp25p80_add_pm25lq032.patch kernel: update linux 3.8 to 3.8.7 2013-04-14 09:25:53 +00:00
475-mtd_cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
476-mtd-m25p80-allow-to-disable-small-sector-erase.patch kernel: update linux 3.8 to 3.8.7 2013-04-14 09:25:53 +00:00
478-mtd-partial_eraseblock_unlock.patch
500-yaffs-Kbuild-integration.patch
501-yaffs-Fix-directory-unlinking-in-yaffs1-mode.patch
502-yaffs-Switch-from-semaphores-to-mutexes.patch
503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch
504-yaffs-Mods-for-Linux-3.0-and-fix-a-typo.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
505-yaffs-3.2-use-MTD_OPS_AUTO_OOB.patch
506-yaffs-3.2-dont-use-i_nlink-directly.patch
507-yaffs-3.3_fix.patch
508-yaffs-3.3-use-mtd_-helpers.patch
509-yaffs-3.4-add-underscore-to-mtd-internal-names.patch
510-yaffs-3.4-use-d_make_root.patch
511-yaffs-3.5-use-clear_inode.patch
512-yaffs-3.5-convert-to-use-kuid_t-kgid_t.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
513-yaffs-3.6-fix-dir_inode-ops.patch
514-yaffs-3.6-use-delayed-work-instead-of-write_super.patch
520-squashfs_update_xz_comp_opts.patch
530-jffs2_make_lzma_available.patch
531-debloat_lzma.patch kernel: refresh patches for kernel 3.8.13 2013-07-13 22:45:56 +00:00
532-jffs2_eofdetect.patch
540-crypto-xz-decompression-support.patch
541-ubifs-xz-decompression-support.patch
550-ubifs-symlink-xattr-support.patch
551-ubifs-fix-default-compression-selection.patch generic: fix default compression selection in ubifs 2013-01-29 21:32:22 +00:00
600-netfilter_layer7_2.22.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
601-netfilter_layer7_pktmatch.patch
602-netfilter_layer7_match.patch
603-netfilter_layer7_2.6.36_fix.patch kernel: refresh 3.8 patches 2013-01-17 22:28:53 +00:00
604-netfilter_conntrack_flush.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
610-netfilter_match_bypass_default_checks.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
611-netfilter_match_bypass_default_table.patch
612-netfilter_match_reduce_memory_access.patch
613-netfilter_optional_tcp_window_check.patch
620-sched_esfq.patch
621-sched_act_connmark.patch
630-packet_socket_type.patch kernel: update linux 3.8-rcX to 3.8 2013-02-19 09:17:38 +00:00
640-bridge_no_eap_forward.patch
641-bridge_always_accept_eap.patch
642-bridge_port_isolate.patch
643-bridge_remove_ipv6_dependency.patch kernel: update linux 3.8 to 3.8.11 2013-05-01 22:15:18 +00:00
644-bridge_optimize_netfilter_hooks.patch kernel: update linux 3.8-rcX to 3.8 2013-02-19 09:17:38 +00:00
650-pppoe_header_pad.patch
651-wireless_mesh_header.patch kernel: refresh 3.8 patches 2013-01-24 17:04:52 +00:00
652-atm_header_changes.patch
653-disable_netlink_trim.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
655-increase_skb_pad.patch kernel: align the skb padding to power of two 2013-09-11 14:30:15 +00:00
656-skb_reduce_truesize-helper.patch kernel: add patches by Dave Täht to reduce buffer size in longer queues to reduce memory pressure 2013-04-10 13:11:16 +00:00
657-qdisc_reduce_truesize.patch kernel: update linux 3.8 to 3.8.7 2013-04-14 09:25:53 +00:00
660-fq_codel_defaults.patch kernel: tune fq_codel defaults for common netdevice speeds 2013-04-10 13:11:21 +00:00
661-fq_codel_keep_dropped_stats.patch kernel: keep dropped stats in fq_codel 2013-04-10 13:11:25 +00:00
662-use_fq_codel_by_default.patch kernel: force CONFIG_NET_SCHED=y for fq_codel (#13360) 2013-04-15 20:40:29 +00:00
663-remove_pfifo_fast.patch kernel: switch default qdisc from pfifo_fast to fq_codel and remove pfifo_fast 2013-04-10 13:11:29 +00:00
670-ipv6-allow-rejecting-with-source-address-failed-policy.patch kernel: refresh patches for kernel 3.8.13 2013-07-13 22:45:56 +00:00
700-swconfig.patch kernel: generic: add back the patch exporting bcm63xx tag header 2013-02-04 10:19:35 +00:00
701-phy_extension.patch
702-phy_add_aneg_done_function.patch
703-phy-add-detach-callback-to-struct-phy_driver.patch generic: add detach callback to struct phy_driver 2013-02-07 15:18:24 +00:00
710-phy-add-mdio_register_board_info.patch generic: add detach callback to struct phy_driver 2013-02-07 15:18:24 +00:00
720-phy_adm6996.patch
721-phy_packets.patch kernel: update linux 3.8 to 3.8.11 2013-05-01 22:15:18 +00:00
722-phy_mvswitch.patch
723-phy_ip175c.patch
724-phy_ar8216.patch
725-phy_rtl8306.patch
726-phy_rtl8366.patch
727-phy-rtl8367.patch
728-phy-micrel.patch
729-phy-rtl8367b.patch
729-phy-tantos.patch
730-phy_b53.patch generic: add b53 swconfig switch driver 2013-01-23 10:12:33 +00:00
750-hostap_txpower.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
800-usb-ohci-multiple-platform-driver-fix.patch generic: add EHCI|OHCI platform driver fix from the cns21xx target 2013-01-14 17:47:23 +00:00
810-pci_disable_common_quirks.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
811-pci_disable_usb_common_quirks.patch kernel: update linux 3.8-rcX to 3.8 2013-02-19 09:17:38 +00:00
820-usb_add_usb_find_device_by_name.patch kernel: update linux 3.8-rcX to 3.8 2013-02-19 09:17:38 +00:00
830-ledtrig_morse.patch
831-ledtrig_netdev.patch
832-ledtrig_usbdev.patch
840-rtc7301.patch kernel: remove __devinit, __devexit and __devexit_p for kernel 3.8 2013-01-27 17:48:48 +00:00
841-rtc_pt7c4338.patch kernel: remove __devinit, __devexit and __devexit_p for kernel 3.8 2013-01-27 17:48:48 +00:00
861-04_spi_gpio_implement_spi_delay.patch
862-gpio_spi_driver.patch kernel: remove __devinit, __devexit and __devexit_p for kernel 3.8 2013-01-27 17:48:48 +00:00
863-gpiommc.patch strict_strtoul is obsolete, use kstrtoul instead 2013-07-27 09:23:18 +00:00
864-gpiommc_configfs_locking.patch strict_strtoul is obsolete, use kstrtoul instead 2013-07-27 09:23:18 +00:00
870-hifn795x_byteswap.patch
880-gateworks_system_controller.patch kernel: allow hwmon GSC driver for all targets 2013-09-10 22:26:30 +00:00
890-8250_optional_sysrq.patch kernel: do not accept sysrq characters via serial port 2013-07-09 12:52:00 +00:00
900-slab_maxsize.patch
901-debloat_sock_diag.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
902-debloat_proc.patch kernel: refresh patches for kernel 3.8.13 2013-07-13 22:45:56 +00:00
903-debloat_direct_io.patch
910-kobject_uevent.patch
911-kobject_add_broadcast_uevent.patch
921-use_preinit_as_init.patch kernel: update linux 3.8 to 3.8.6 2013-04-06 11:40:44 +00:00
922-always-create-console-node-in-initramfs.patch kernel: ensure that /dev/console exists in initramfs 2013-08-27 12:02:54 +00:00
930-crashlog.patch kernel: crashlog: Avoid out-of-bounds write 2013-08-21 20:59:25 +00:00
940-ocf_kbuild_integration.patch
941-ocf_20120127.patch kernel: generic: update to 3.8-rc6 2013-02-04 10:19:28 +00:00
950-vm_exports.patch kernel: update linux 3.8 to 3.8.9 2013-04-26 16:55:42 +00:00
960-decompress_unlzo_fix.patch
970-remove-unsane-filenames-from-deps_initramfs-list.patch
980-arm_openwrt_machtypes.patch
992-mpcore_wdt_fix_watchdog_counter_loading.patch kernel: update linux 3.8 to 3.8.3 2013-03-15 14:39:51 +00:00
993-mpcore_wdt_fix_wdioc_setoptions_handling.patch
994-mpcore_wdt_fix_timer_mode_setup.patch
995-mpcore_twd_calibrate_single_core.patch kernel: calibrate the TWD timer even when booting with only one CPU, it is used for the watchdog timer base 2013-04-10 16:07:50 +00:00
996-zsmalloc_allow_module_build.patch kernel: allow building zsmalloc as a module again 2013-05-09 19:19:36 +00:00
997-device_tree_cmdline.patch lantiq: enable retrieving kernel args from bootloader 2013-05-30 16:00:42 +00:00