Suraj Jitindar Singh <sjitindarsi...@gmail.com> writes: > On Thu, 2017-08-03 at 17:35 +1000, Benjamin Herrenschmidt wrote: >> On Thu, 2017-08-03 at 16:30 +1000, Michael Ellerman wrote: >> > Suraj Jitindar Singh <sjitindarsi...@gmail.com> writes: >> > >> > > The host process table base is stored in the partition table by >> > > calling >> > > the function native_register_process_table(). Currently this just >> > > sets >> > > the entry in memory and is missing a proceeding cache >> > > invalidation >> > > instruction. Any update to the partition table should be followed >> > > by a >> > > cache invalidation instruction specifying invalidation of the >> > > caching of >> > > any partition table entries (RIC = 2, PRS = 0). >> > > >> > > We already have a function to update the partition table with the >> > > required cache invalidation instructions - >> > > mmu_partition_table_set_entry(). >> > > Update the native_register_process_table() function to call >> > > mmu_partition_table_set_entry(), this ensures all appropriate >> > > invalidation will be performed. >> > >> > Without this patch the kernel will: >> > [ ] work normally >> > [ ] randomly crash >> > [ ] catch fire >> >> I think we get lucky because OPAL added a "flush the whole world" to >> opal_reinit_cpus() but this patch seems to improve general code >> "correctness". > > I guess there's the possibility of: > [x] randomly crash
But you haven't actually see any right? > This is required to run a powernv kernel as a guest because we need to > know when it's updated its process table location. Which doesn't currently work for other reasons :) cheers