Revision 6e474083f3daf3a3546737f5d7d502ad12eb257c authored by Wei Xu on 01 December 2017, 10:10:36 UTC, committed by David S. Miller on 03 December 2017, 02:31:03 UTC
Matthew found a roughly 40% tcp throughput regression with commit
c67df11f(vhost_net: try batch dequing from skb array) as discussed
in the following thread:
https://www.mail-archive.com/netdev@vger.kernel.org/msg187936.html

Eventually we figured out that it was a skb leak in handle_rx()
when sending packets to the VM. This usually happens when a guest
can not drain out vq as fast as vhost fills in, afterwards it sets
off the traffic jam and leaks skb(s) which occurs as no headcount
to send on the vq from vhost side.

This can be avoided by making sure we have got enough headcount
before actually consuming a skb from the batched rx array while
transmitting, which is simply done by moving checking the zero
headcount a bit ahead.

Signed-off-by: Wei Xu <wexu@redhat.com>
Reported-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent fa935ca
Raw File
Kconfig
#
# SAMSUNG SoC drivers
#
menuconfig SOC_SAMSUNG
	bool "Samsung SoC driver support" if COMPILE_TEST

if SOC_SAMSUNG

config EXYNOS_PMU
	bool "Exynos PMU controller driver" if COMPILE_TEST
	depends on ARCH_EXYNOS || ((ARM || ARM64) && COMPILE_TEST)
	select EXYNOS_PMU_ARM_DRIVERS if ARM && ARCH_EXYNOS

# There is no need to enable these drivers for ARMv8
config EXYNOS_PMU_ARM_DRIVERS
	bool "Exynos PMU ARMv7-specific driver extensions" if COMPILE_TEST
	depends on EXYNOS_PMU

config EXYNOS_PM_DOMAINS
	bool "Exynos PM domains" if COMPILE_TEST
	depends on PM_GENERIC_DOMAINS || COMPILE_TEST

endif
back to top