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] [day] [month] [year] [list]
Date:	Thu, 27 Aug 2009 10:05:34 +0200
From:	Frank Blaschka <blaschka@...ux.vnet.ibm.com>
To:	Bastian Blank <bastian@...di.eu.org>, davem@...emloft.net,
	netdev@...r.kernel.org, linux-s390@...r.kernel.org,
	Klaus-Dieter Wacker <kdwacker@...ibm.com>
Subject: Re: [patch 1/5] [PATCH] qeth: HiperSockets SIGA retry support on
 CC=2.

Bastian Blank schrieb:
> On Wed, Aug 26, 2009 at 02:01:06PM +0200, frank.blaschka@...ibm.com wrote:
>> Qeth HiperSockets support now retries sending of packets when the
>> IBM System z signals a temporary resource shortage (e.g. target
>> buffer full). The packet is enqueued into the device queue.
>> After 3 times of unsuccessful send the packet is dropped.
> 
> What is the reason for that? How large is the timeout for each retry?
> Usually the upper layers should already handle dropped packages fine and
> adding another retry below can produce retry multiplication.
>

HiperSocket is very different from usual network hardware. Microcode can
notify the driver the target of an xmit can not receive the packet because of
a target buffer full condition (this is the queue->sync_iqdio_error == 2 error
code). The buffer full condition is only for the target of the xmit not the
senders hardware. There is no timeout for the retry. The retry is more or less
immediately. If the target buffer full is only a temporary(short) condition we
can stay at a higher throughput level because TCP congestion does not kick in.

>> @@ -3178,6 +3203,25 @@ int qeth_do_send_packet_fast(struct qeth
>>  	atomic_set(&queue->state, QETH_OUT_Q_UNLOCKED);
>>  	qeth_fill_buffer(queue, buffer, skb, hdr, offset, hd_len);
>>  	qeth_flush_buffers(queue, index, 1);
>> +	if (queue->sync_iqdio_error == 2) {
> 
> Is this a magic constant?
> 
> Bastian
> 


--
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