Thread (1 message) 1 message, 1 author, 2015-09-12

Re: [PATCH] ipvs:Fix locking requirements in the function ip_vs_unlink_service

From: Julian Anastasov <ja@ssi.bg>
Date: 2015-09-12 18:30:29
Also in: lkml, lvs-devel, netfilter-devel

	Hello,

On Sat, 12 Sep 2015, nick wrote:
quoted
	BH locking is not needed anymore. Also, sched_lock is
used by schedulers to protect only access to svc->sched_data
fields.

	It seems the comment is outdated after
commit ceec4c381681 ("ipvs: convert services to rcu").
Julian,
You are correct after reading the commit id for rcu locking conversion that this comment
is outdated. However the locking may still be required but in terms of rcu_read_lock/
unlock around this function call as it's still a critical region.
	This function is called under __ip_vs_mutex, so
there is single writer that modifies the configuration.
As "readers" the schedulers access the configuration under
rcu_read_lock (eg. called in tcp_conn_schedule) but they
are free to use other locking too. ip_vs_wlc.c scheduler
is example where sched_lock is not used because only
svc->destinations is accessed which is protected with RCU
by definition. You can check __ip_vs_unlink_dest() how
dest is unlinked with list_del_rcu() before sched->del_dest
method is called.

Regards

--
Julian Anastasov [off-list ref]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help