[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <57C9024A16AD2D4C97DC78E552063EA3E38E71DD@orsmsx505.amr.corp.intel.com>
Date: Wed, 18 Nov 2009 10:56:19 -0800
From: "Luck, Tony" <tony.luck@...el.com>
To: Jiri Slaby <jslaby@...ell.com>,
"jirislaby@...il.com" <jirislaby@...il.com>
CC: "mingo@...e.hu" <mingo@...e.hu>,
"nhorman@...driver.com" <nhorman@...driver.com>,
"sfr@...b.auug.org.au" <sfr@...b.auug.org.au>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"marcin.slusarz@...il.com" <marcin.slusarz@...il.com>,
"tglx@...utronix.de" <tglx@...utronix.de>,
"mingo@...hat.com" <mingo@...hat.com>,
"hpa@...or.com" <hpa@...or.com>,
"torvalds@...ux-foundation.org" <torvalds@...ux-foundation.org>,
James Morris <jmorris@...ei.org>,
Heiko Carstens <heiko.carstens@...ibm.com>,
"linux-ia64@...r.kernel.org" <linux-ia64@...r.kernel.org>
Subject: RE: [PATCH 03/16] IA64: use ACCESS_ONCE for rlimits
> Make sure compiler won't do weird things with limits. E.g. fetching
> them twice may return 2 different values after writable limits are
> implemented.
- if (size > task->signal->rlim[RLIMIT_MEMLOCK].rlim_cur)
+ if (size > ACCESS_ONCE(task->signal->rlim[RLIMIT_MEMLOCK].rlim_cur))
I don't see how this helps. If someone else is changing limits while
we are looking at them, then there is a race. We either get the old
or the new value. Using ACCESS_ONCE (which on ia64 forces a "volatile"
access, which will make the compiler generate "ld.acq" rather than a
plain "ld") won't make any difference to this race.
Please explain what issue you see with the current code.
-Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists