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
| ||
|
Message-ID: <1271921303.7895.4778.camel@edumazet-laptop> Date: Thu, 22 Apr 2010 09:28:23 +0200 From: Eric Dumazet <eric.dumazet@...il.com> To: David Miller <davem@...emloft.net> Cc: therbert@...gle.com, xiaosuo@...il.com, netdev@...r.kernel.org Subject: Re: [PATCH net-next-2.6] rps: immediate send IPI in process_backlog() Le jeudi 22 avril 2010 à 00:21 -0700, David Miller a écrit : > From: Eric Dumazet <eric.dumazet@...il.com> > Date: Wed, 21 Apr 2010 23:04:58 +0200 > > > If some skb are queued to our backlog, we are delaying IPI sending at > > the end of net_rx_action(), increasing latencies. This defeats the > > queueing, since we want to quickly dispatch packets to the pool of > > worker cpus, then eventually deeply process our packets. > > > > It's better to send IPI before processing our packets in upper layers, > > from process_backlog(). > > > > Change the _and_disable_irq suffix to _and_enable_irq(), since we enable > > local irq in net_rps_action(), sorry for the confusion. > > > > Signed-off-by: Eric Dumazet <eric.dumazet@...il.com> > > Eric, irqs are enabled in process_backlog(), so I don't know how legal > it is to invoke net_rps_action_and_irq_enable() from there. > > At least, if you are depending upon a later action to pick up the > pieces if the rps_ipi_list test races, you need to update the comment > above net_rps_action_and_irq_enable() since it states that it is > always invoked with IRQs disabled :-) > -- But I do disable irqs berfore calling this function from process_backlog, only if current pointer is non null. Pointer is then re-fetched inside net_rps_action_and_irq_enable() I thought using xchg(), but this adds an atomic op, so I think its better to use local_irq_disable()/enable() pairs. About the comment, it says : /* * net_rps_action sends any pending IPI's for rps. * Note: called with local irq disabled, but exits with local irq enabled. */ So it documents this function is called with irq disabled, and re-enable them before return ? -- 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