[PATCH] netlink workaround silly yield()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thomas,

Below is a patch we added to avoid deadlocks in certain RT JVM cases.
The original was authored by rostedt and was modified further by acme.
This version applies to 2.6.29.1-rt7.

Clark


Added test for rt_task(current) to avoid deadlock with
RT task calling sched_yield()

Author: Steven Rostedt <srostedt@xxxxxxxxxx>
Acked-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Acked-by: Luis Claudio R. Goncalves <lgoncalv@xxxxxxxxxx>
Signed-off-by: Clark Williams <williams@xxxxxxxxxx>
- ---

 net/netlink/af_netlink.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 3ae3cb8..e8f2775 100644
- --- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1046,7 +1046,7 @@ int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, u32 pid,
 		kfree_skb(info.skb2);
 
 	if (info.delivered) {
- -		if (info.congested && (allocation & __GFP_WAIT))
+		if (info.congested && (allocation & __GFP_WAIT) && !rt_task(current))
 			yield();
 		return 0;
 	}
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (GNU/Linux)

iEYEARECAAYFAknoyF4ACgkQHyuj/+TTEp2goQCg02BMYUrzs1R+P6WCrAQ32epX
WFAAn2K5VXIQ9lwpcWFv8Ge6R0Lv2CC3
=bnHl
-----END PGP SIGNATURE-----
ÿôèº{.nÇ+?·?®?­?+%?Ëÿ±éݶ¥?wÿº{.nÇ+?·¥?{±þ»ÿºÇ«³ø§¶?¡Ü¨}©?²Æ zÚ&j:+v?¨þø¯ù®w¥þ?à2?Þ?¨è­Ú&¢)ß¡«a¶Úÿÿûàz¿äz¹Þ?ú+?ù???Ý¢jÿ?wèþf


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux