|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Wed, 17 Aug 2005
Acrypto and asynchronous IPsec.
Something major happened between 2.6.12-rc2 and current kernel in XFRM processing
engine. My old proof-of-concept patch can only send 5 packets now, but with old
kernel it's asynchronous performance was almost the same as synchronous stack.
So I need to investigate what changes in XFRM stack can cause such behaviour.
Test shows that it is ICMP which has such a strange behaviour - TCP ssh over asynchronous
IPsec works perfectly without any stalls.
Ok, ICMP problem found -
raw_sendmsg()->ip_append_data()->sock_alloc_send_skb()->
sock_alloc_send_pskb()->atomic_read(&sk->sk_wmem_alloc),
this means that sk_wmem_alloc is never decreased enough to free space in socket queue,
it is decremented in sock_wfree() which is called from kfree_skb(),
so it looks like raw skbs do not pass the same way TCP/UDP skbs are processed...
Ok, this problem has been fixed and I released new
patch.
It's md5sum is 506ad2ad7148199c29e25d8b0afe0c66.
:: Link / Comments ()
|