On Tue, Jan 09, 2018 at 06:22:09PM -0800, Dan Williams wrote: > > When you came up with that tweak you noted: > > "The following: > [..] > is generic and no speculative flows." I meant 'no speculative control flow' load speculation still happens. > > > This macro doesn't prevent speculation. > > It masks dangerous speculation. At least, I read nospec as "No > Spectre" and it is a prefix used in the Spectre-v2 patches. ahh. I thought 'nospec' means 'no speculation'. I think it's too much of an honor to use bug name for the macro that will be used in many places in the kernel. > > I think array_access() was the best name so far. > > For other usages I need the pointer to the array element, also > array_access() by itself is unsuitable for __fcheck_files because we > still need rcu_dereference_raw() on the element de-reference. So, I > think it's better to get a sanitized array element pointer which can > be used with rcu, READ_ONCE(), etc... directly rather than try to do > the access in the same macro. makes sense, then array_ptr() should fit ? I'm hearing rumors that the first cpu with variant 2 and 3 fixed will be appearing in early 2019. Which is amazing considering cpu release cycles, but it also means that variant 1 will stay with us for long time and we better pick clean interface and name for it.