Messages in this thread | | | Subject | Re: [RFC] page-table walkers vs memory order | From | Peter Zijlstra <> | Date | Thu, 26 Jul 2012 22:39:29 +0200 |
| |
On Tue, 2012-07-24 at 14:51 -0700, Hugh Dickins wrote: > I do love the status quo, but an audit would be welcome. When > it comes to patches, personally I tend to prefer ACCESS_ONCE() and > smp_read_barrier_depends() and accompanying comments to be hidden away > in the underlying macros or inlines where reasonable, rather than > repeated all over; but I may have my priorities wrong on that. > > Yeah, I was being lazy, and I totally forgot to actually look at the alpha code.
How about we do a generic (cribbed from rcu_dereference):
#define page_table_deref(p) \ ({ \ typeof(*p) *______p = (typeof(*p) __force *)ACCESS_ONCE(p);\ smp_read_barrier_depends(); \ ((typeof(*p) __force __kernel *)(______p)); \ })
and use that all over to dereference page-tables. That way all this lives in one place. Granted, I'll have to go edit all arch code, but I seem to be doing that on a frequent basis anyway :/
| |