From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4CD67BF4.4050307@domain.hid> Date: Sun, 07 Nov 2010 11:14:12 +0100 From: Jan Kiszka MIME-Version: 1.0 References: <4CC82C8D.3080808@domain.hid> <4CD1ED16.8030103@domain.hid> <4CD1EDA8.10007@domain.hid> <4CD1F33C.5070208@domain.hid> <4CD1F3F5.5080505@domain.hid> <4CD1F4FE.9020908@domain.hid> <4CD1F69B.9070100@domain.hid> <4CD1F906.1070703@domain.hid> <4CD1FABD.1080301@domain.hid> <4CD2612C.2070507@domain.hid> <4CD279F7.7070502@domain.hid> <4CD27C46.8010302@domain.hid> <4CD27DC2.7060607@domain.hid> <4CD2A96B.3080001@domain.hid> <4CD2B2A7.9010900@domain.hid> <4CD2C50F.1090604@domain.hid> <4CD32E76.3080004@domain.hid> <4CD33F0C.1050403@domain.hid> <4CD340AA.60002@domain.hid> <4CD34355.5020304@domain.hid> <4CD35DC7.1000507@domain.hid> <4CD3DAC5.6000400@domain.hid> <4CD4A0EF.1@domain.hid> <4CD5B9FC.6050602@domain.hid> <4CD5BC82.6060106@domain.hid> <1289083796.1842.239.camel@domain.hid> <4CD5FA26.4090504@domain.hid> <4CD663F2.2080704@domain.hid> <1289124227.1842.283.camel@domain.hid shift> <4CD67A92.5090009@domain.hid> <4CD67B77.2000502@domain.hid> In-Reply-To: <4CD67B77.2000502@domain.hid> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigBAD7E71772432F1D150FA09B" Sender: jan.kiszka@domain.hid Subject: Re: [Xenomai-core] Potential problem with rt_eepro100 List-Id: Xenomai life and development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gilles Chanteperdrix Cc: "xenomai@xenomai.org" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigBAD7E71772432F1D150FA09B Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Am 07.11.2010 11:12, Gilles Chanteperdrix wrote: > Jan Kiszka wrote: >> Am 07.11.2010 11:03, Philippe Gerum wrote: >>> On Sun, 2010-11-07 at 09:31 +0100, Gilles Chanteperdrix wrote: >>>> Jan Kiszka wrote: >>>>>>> Anyway, after some thoughts, I think we are going to try and make= the >>>>>>> current situation work instead of going back to the old way. >>>>>>> >>>>>>> You can find the patch which attempts to do so here: >>>>>>> http://sisyphus.hd.free.fr/~gilles/sched_status.txt >>>>>> Ack. At last, this addresses the real issues without asking for >>>>>> regression funkiness: fix the lack of barrier before testing XNSCH= ED in >>>>> Check the kernel, we actually need it on both sides. Wherever the f= inal >>>>> barriers will be, we should leave a comment behind why they are the= re. >>>>> Could be picked up from kernel/smp.c. >>>> We have it on both sides: the non-local flags are modified while hol= ding >>>> the nklock. Unlocking the nklock implies a barrier. >>> I think we may have an issue with this kind of construct: >>> >>> xnlock_get_irq*(&nklock) >>> xnpod_resume/suspend/whatever_thread() >>> xnlock_get_irq*(&nklock) >>> ... >>> xnlock_put_irq*(&nklock) >>> xnpod_schedule() >>> xnlock_get_irq*(&nklock) >>> send_ipi >>> =3D=3D=3D=3D=3D> xnpod_schedule_handler on dest CPU >>> xnlock_put_irq*(&nklock) >>> xnlock_put_irq*(&nklock) >>> >>> The issue would be triggered by the use of recursive locking. In that= >>> case, the source CPU would only sync its cache when the lock is actua= lly >>> dropped by the outer xnlock_put_irq* call and the inner >>> xnlock_get/put_irq* would not act as barriers, so the remote >>> rescheduling handler won't always see the XNSCHED update done remotel= y, >>> and may lead to a no-op. So we need a barrier before sending the IPI = in >>> __xnpod_test_resched(). >> >> That's what I said. >> >> And we need it on the reader side as an rmb(). >=20 > This one we have, in xnpod_schedule_handler. >=20 Right, with your patch (the above sounded like we only need it on writer side). Jan --------------enigBAD7E71772432F1D150FA09B Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iEYEARECAAYFAkzWe/UACgkQitSsb3rl5xSiQwCdHA7ArwAzTha9l5Hprd7/zC2L xT4AoI3CPmRefT5OUdfU1FZ3auB1MrOB =PLLh -----END PGP SIGNATURE----- --------------enigBAD7E71772432F1D150FA09B--