lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20140929.162950.1960056644564225055.davem@davemloft.net>
Date:	Mon, 29 Sep 2014 16:29:50 -0400 (EDT)
From:	David Miller <davem@...emloft.net>
To:	david.stevens@...cle.com
Cc:	netdev@...r.kernel.org, sowmini.varadhan@...cle.com,
	raghuram.kothakota@...cle.com
Subject: Re: [PATCHv8 net-next 2/4] sunvnet: make transmit path zero-copy
 in the kernel

From: David L Stevens <david.stevens@...cle.com>
Date: Mon, 29 Sep 2014 15:54:10 -0400

> This patch removes pre-allocated transmit buffers and instead directly maps
> pending packets on demand. This saves O(n^2) maximum-sized transmit buffers,
> for n hosts on a vswitch, as well as a copy to those buffers.
> 
> Single-stream TCP throughput linux-solaris dropped ~5% for 1500-byte MTU,
> but linux-linux at 1500-bytes increased ~20%.
> 
> Signed-off-by: David L Stevens <david.stevens@...cle.com>

It doesn't work to liberate SKBs in the TX ring purely from the
->ndo_start_xmit() method.

All SKBs given to a device must be liberated in a finite, short,
amount of time.

This means that there must be an event which indicates TX completion
(either precisely, or at some small finite amount of time afterwards)
which will trigger kfree_skb().

Otherwise you can get a set of TX skbs in the TX queue, then if the
network goes quiet they are all stuck there indefinitely.

These SKBS hold onto resources such as sockets, netfilter state, etc.

Even if you apply a sledgehammer and skb_orphan() these packets, that
doesn't release the netfilter and other pieces of state.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ