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". > > Cheers, > Ben. >
I guess there's the possibility of: [x] randomly crash This is required to run a powernv kernel as a guest because we need to know when it's updated its process table location.