On Thu, Mar 28, 2013 at 10:57:12AM +0200, Julian Anastasov wrote: > > Hello, > > On Thu, 28 Mar 2013, Simon Horman wrote: > > > On Fri, Mar 22, 2013 at 11:46:35AM +0200, Julian Anastasov wrote: > > > This is the second patchset with IPVS optimizations. > > > Now we convert the schedulers, dests and services to RCU. > > > > > > All patches are for net-next based on the first > > > patchset v3. The idea is after discussion and review Simon to > > > apply the patchset after a week or so to ipvs-next tree. > > > > > > The changes in this patchset eliminate global locks > > > from packet processing by using RCU. There are more details > > > in the patches. > > > > > > After this patchset the situation is as follows: > > > > > > - dests: > > > - lookups under RCU lock allow ip_vs_dest_hold, used > > > for binding dest to conn or to select dest by scheduler > > > - dests are freed by dest_trash code long after grace period > > > > > > - services: > > > - no global read_lock > > > - lookups under RCU lock allow scheduler to select > > > dests under RCU lock > > > - grace period implemented with IP_VS_WAIT_WHILE is > > > gone allowing scheduler's dest selection and scheduler > > > reconfiguration to run in parallel > > > > > > - schedulers: > > > - schedule method runs under RCU lock, needs _rcu > > > if using svc->destinations, needs _bh suffix to locks > > > because it can be called in LOCAL_OUT hook > > > - when dest is added, the add_dest method is called > > > instead of update_service > > > - when dest is deleted, the del_dest method is called > > > instead of update_service > > > - when dest is updated, the upd_dest method is called > > > instead of update_service > > > - scheduler can hold dests in its state long after they are > > > unlinked from svc, even without providing del_dest handler. > > > But such dests must not be returned by the > > > schedule method (needs IP_VS_DEST_F_AVAILABLE check) > > > - sched_data must be freed after grace period and > > > module exit should be delayed with synchronize_rcu > > > to wait all RCU read-side critical sections to > > > complete > > > > > > - BH: > > > - we do not disable BHs in LOCAL_OUT and sync code anymore > > > - _bh suffixes are added to all places that need them, > > > except timer handlers > > > > Hi Julian, > > > > what is the status of this series? > > > > N.B: THis series is different to "[PATCH 00/15 v3] IPVS optimizations (repost)" > > Yes, I posted 2 parts with optimizations. Part 1 is > at v3 while part 2 is at its first version. Both series > are ready for applying. BTW, Hans plans more tests in > the next days, may be we will have some numbers for > comparison. Thanks, I'll apply these changes. -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html