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
| ||
|
Date: Mon, 17 Sep 2007 09:19:36 +0530 From: Krishna Kumar2 <krkumar2@...ibm.com> To: Evgeniy Polyakov <johnpol@....mipt.ru> Cc: davem@...emloft.net, gaagaan@...il.com, general@...ts.openfabrics.org, hadi@...erus.ca, herbert@...dor.apana.org.au, jagana@...ibm.com, jeff@...zik.org, kaber@...sh.net, kumarkr@...ux.ibm.com, mcarlson@...adcom.com, mchan@...adcom.com, netdev@...r.kernel.org, peter.p.waskiewicz.jr@...el.com, randy.dunlap@...cle.com, rdreier@...co.com, rick.jones2@...com, Robert.Olsson@...a.slu.se, shemminger@...ux-foundation.org, sri@...ibm.com, tgraf@...g.ch, xma@...ibm.com Subject: Re: [PATCH 3/10 REV5] [sched] Modify qdisc_run to support batching Hi Evgeniy, Evgeniy Polyakov <johnpol@....mipt.ru> wrote on 09/14/2007 05:45:19 PM: > > + if (skb->next) { > > + int count = 0; > > + > > + do { > > + struct sk_buff *nskb = skb->next; > > + > > + skb->next = nskb->next; > > + __skb_queue_tail(dev->skb_blist, nskb); > > + count++; > > + } while (skb->next); > > Could it be list_move()-like function for skb lists? > I'm pretty sure if you change first and the last skbs and ke of the > queue in one shot, result will be the same. I have to do a bit more like update count, etc, but I agree it is do-able. I had mentioned in my PATCH 0/10 that I will later try this suggestion that you provided last time. > Actually how many skbs are usually batched in your load? It depends, eg when the tx lock is not got, I get batching of upto 8-10 skbs (assuming that tx lock was not got quite a few times). But when the queue gets blocked, I have seen batching upto 4K skbs (if tx_queue_len is 4K). > > + /* Reset destructor for kfree_skb to work */ > > + skb->destructor = DEV_GSO_CB(skb)->destructor; > > + kfree_skb(skb); > > Why do you free first skb in the chain? This is the gso code which has segmented 'skb' to skb'1-n', and those skb'1-n' are sent out and freed by driver, which means the dummy 'skb' (without any data) remains to be freed. Thanks, - KK - 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