[PATCH] powerpc/mm: Invalidate partition table cache on host proc tbl base update
Michael Ellerman
mpe at ellerman.id.au
Fri Aug 4 13:33:09 AEST 2017
Suraj Jitindar Singh <sjitindarsingh at 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 <sjitindarsingh at 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
More information about the Linuxppc-dev
mailing list