Openwrt/target/linux/generic/patches-3.3
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
..
006-arm_kernel_xz_support.patch
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
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
040-Controlled-Delay-AQM.patch
041-codel-use-Newton-method-instead-of-sqrt-and-divides.patch
042-fq_codel-Fair-Queue-Codel-AQM.patch
043-net-codel-Add-missing-include-linux-prefetch.h.patch
044-net-codel-fix-build-errors.patch
045-codel-use-u16-field-instead-of-31bits-for-rec_inv_sq.patch
046-fq_codel-qdisc-backlog.patch
047-spi_message_queue.patch
048-spi-Dont-call-prepare-unprepare-transfer-if-not-popu.patch
049-codel-refine-one-condition-to-avoid-a-nul-rec_inv_sqrt.patch
050-rng_git_backport.patch
051-rng_git_backport-remove_irqf_sample_random.patch
060-hso_devices.patch
060-tcp-ecn-dont-delay-ACKS-after-CE.patch
061-fq_codel-dont-reinit-flow-state.patch
065-8139cp-fixes.patch
070-gpio-add-flags-to-export-GPIOs-when-requesting.patch
080-prot-release-cb.patch
081-USB-OHCI-Add-a-generic-platform-device-driver.patch
082-USB-EHCI-Add-a-generic-platform-device-driver.patch
083-USB-EHCI-platform-remove-update.patch
084-x86_fix_perf_uclibc_build.patch generic: refresh patches 2012-12-14 08:47:39 +00:00
090-CVE-2013-1763.patch kernel: fix CVE-2013-1763 in older kernels 2013-05-12 10:55:12 +00:00
100-overlayfs_v12.patch
102-ehci_hcd_ignore_oc.patch
110-fix_mtd_include.patch
130-pppoatm-queue-depth.patch
131-atm-fixes.patch
132-solos-dma.patch kernel: add solos-pci update for 3.3 2012-12-21 10:38:33 +00:00
140-ixp4xx_hss_module_h_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
210-darwin_scripts_include.patch
211-stddef_include.patch
212-x86_reloc_portability.patch
220-module_exports.patch
230-openwrt_lzma_options.patch
250-netfilter_depends.patch
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-compressor_kconfig_hack.patch kernel: make zlib and lzo modules selectable 2013-05-09 20:50:07 +00:00
260-move_bcm963xx_tag.patch
270-regmap_dynamic.patch kernel: REGMAP_SPI should only be selectable when SPI_MASTER is selected 2013-03-21 14:50:59 +00:00
300-mips_expose_boot_raw.patch
301-mips_image_cmdline_hack.patch
302-mips_use_generic_thread_info_allocator.patch
303-mips_fix_kexec.patch
304-mips_disable_fpu.patch
305-mips_module_reloc.patch
306-mips_mem_functions_performance.patch
307-mips_oprofile_fix.patch
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
330-mips-add-crash-and-kdump-support.patch
331-mips-kexec-enhanche-the-support.patch generic: fix build failure in MIPS kexec code if SMP is enabled 2013-01-29 09:44:58 +00:00
332-mips-kexec-init-the-arguments-for-the-new-kernel-image.patch generic: fix build failure in MIPS kexec code if SMP is enabled 2013-01-29 09:44:58 +00:00
333-mips-kexec-get-kernel-parameters-from-kexec-tools.patch generic: fix build failure in MIPS kexec code if SMP is enabled 2013-01-29 09:44:58 +00:00
334-mips-fix-compiling-failure-of-relocate_kernel.patch
335-mips-kexec-cleanup-kexec-tools-parameter-handling.patch generic: fix build failure in MIPS kexec code if SMP is enabled 2013-01-29 09:44:58 +00:00
340-module_alloc_size_check.patch
400-rootfs_split.patch
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
442-block2mtd_probe.patch
443-block2mtd-avoid-recursive-call-of-mtd_writev.patch
450-mtd_plat_nand_chip_fixup.patch
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
473-mtd_m25p80_add_w25q128.patch
475-mtd_cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
476-mtd-m25p80-allow-to-disable-small-sector-erase.patch
477-mtd-m25p80-add-support-for-the-EON-EN25Q64-chip.patch
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
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
520-squashfs_update_xz_comp_opts.patch
530-jffs2_make_lzma_available.patch
531-debloat_lzma.patch
532-jffs2_eofdetect.patch
540-crypto-xz-decompression-support.patch
541-ubifs-xz-decompression-support.patch generic: fix UBIFS build error if XZ compression is disabled 2013-01-02 08:53:07 +00:00
550-ubifs-symlink-xattr-support.patch
600-netfilter_layer7_2.22.patch
601-netfilter_layer7_pktmatch.patch
602-netfilter_layer7_match.patch
603-netfilter_layer7_2.6.36_fix.patch
604-netfilter_conntrack_flush.patch kernel: add missing bcma defines and header file for bcrmfmac 2013-04-28 11:10:42 +00:00
610-netfilter_match_bypass_default_checks.patch
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
640-bridge_no_eap_forward.patch
641-bridge_always_accept_eap.patch
642-bridge_port_isolate.patch
643-bridge_remove_ipv6_dependency.patch
644-bridge_optimize_netfilter_hooks.patch
650-pppoe_header_pad.patch
651-wireless_mesh_header.patch
652-atm_header_changes.patch
653-disable_netlink_trim.patch
654-avoid_skb_cow_realloc.patch
655-increase_skb_pad.patch kernel: align the skb padding to power of two 2013-09-11 14:30:15 +00:00
700-swconfig.patch generic: export include/linux/switch.h on 3.3, 3.6 2012-12-14 12:11:48 +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: allow __netdev_alloc_skb_ip_align to be called with dev = NULL 2013-04-22 15:01:36 +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
750-hostap_txpower.patch
800-usb-ohci-multiple-platform-driver-fix.patch generic: add EHCI|OHCI platform driver fix to 3.[36] 2013-01-17 13:54:14 +00:00
801-usb-ehci-multiple-platform-driver-fix.patch generic: add EHCI|OHCI platform driver fix to 3.[36] 2013-01-17 13:54:14 +00:00
810-pci_disable_common_quirks.patch
811-pci_disable_usb_common_quirks.patch
820-usb_add_usb_find_device_by_name.patch
830-ledtrig_morse.patch
831-ledtrig_netdev.patch
832-ledtrig_usbdev.patch
840-rtc7301.patch
841-rtc_pt7c4338.patch
861-04_spi_gpio_implement_spi_delay.patch
862-gpio_spi_driver.patch
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
900-slab_maxsize.patch
910-kobject_uevent.patch
911-kobject_add_broadcast_uevent.patch
921-use_preinit_as_init.patch
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
950-vm_exports.patch
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
993-mpcore_wdt_fix_wdioc_setoptions_handling.patch
994-mpcore_wdt_fix_timer_mode_setup.patch
a01-swconfig_leds-define-leds_set_brightness.patch
a02-swconfig-revert-portid-snd_portid-usage.patch kernel: backport switch user API changes after r36283 2013-04-09 15:47:01 +00:00
a03-swconfig-revert-UAPI-disintegration.patch kernel: backport switch user API changes after r36283 2013-04-09 15:47:01 +00:00