Re: [PATCH 1/3] MIPS: R6: Use lightweight SYNC instruction in smp_* memory barriers

From: Ralf Baechle
Date: Fri Jun 05 2015 - 09:11:06 EST


On Mon, Jun 01, 2015 at 05:09:34PM -0700, Leonid Yegoshin wrote:

Leonid,

to me the biggest technical problem with this patch is that the new Kconfig
option is user visible. This is the kind of deeply technical options
which exceeds the technical knowledge of most users, so it should probably
be driven by a select.

We probably also want to enquire how old CPUs from before the invention
of the stype field are behaving. If those as I hope for all treat an
stype != 0 as stype 0 we could simply drop the option. But we might
simply be out of luck - dunno.

Maciej,

do you have an R4000 / R4600 / R5000 / R7000 / SiByte system at hand to
test this? I think we don't need to test that SYNC actually works as
intended but the simpler test that SYNC <stype != 0> is not causing a
illegal instruction exception is sufficient, that is if something like

int main(int argc, charg *argv[])
{
asm(" .set mips2 \n"
" sync 0x10 \n"
" sync 0x13 \n"
" sync 0x04 \n"
" .set mips 0 \n");

return 0;
}

doesn't crash we should be ok.

The kernel's SYNC emulation should already be ok. We ignore the stype
field entirely and for a uniprocessor R2000/R3000 that should be just
the right thing.

Ralf
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/