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: <20070828.170618.62343274.davem@davemloft.net>
Date:	Tue, 28 Aug 2007 17:06:18 -0700 (PDT)
From:	David Miller <davem@...emloft.net>
To:	rick.jones2@...com
Cc:	msb@...gle.com, netdev@...r.kernel.org, grundler@...gle.com,
	hadi@...erus.ca, robert.olsson@....uu.se, venza@...wnhat.org
Subject: Re: pktgen terminating condition

From: Rick Jones <rick.jones2@...com>
Date: Tue, 28 Aug 2007 16:48:24 -0700

> Not to defend any one driver, but could it be that the behaviour of TCP
> is such that we've not noticed until now?
> 
> Does TCP particularly care for an SKB carrying an ACK?  For ones carrying
> data there would be an ACK arriving before TCP could "really" free them
> right?  And that ACK (rx event) could very well come after some other TX
> completion, or perhaps trigger cleaning up TXs in the driver at that time?
> 
> And a UDP app is as likely as not to be request/response in nature, with the
> response behaving at the driver level rather like a TCP ACK in terms of the
> above.

The issue is not ACKs or anything of that nature, but socket buffer
accounting.

We can't release the socket until all transmit packets have been
liberated and their size subtracted from the send buffer quota.
Because these packets have their skb->destructor and skb->sk
set to reference that socket and the protocol code that manages
it's send buffer allocations.

In the worst possible case, using UDP as an example, let's say one big
packets fits in the send buffer and this is the one last packet that
gets into the devices TX ring.

It never liberates the packet, and if that is the only application
generating traffic in the system we deadlock.

Devices need to free packets in a deterministic amount of time, no
matter what.

I don't even understand why this needs to be discussed to be honest
with you :-)
-
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