Thread (36 messages) 36 messages, 7 authors, 2021-09-09

Re: [PATCH 2/3] ARM: Move thread_info into task_struct (v7 only)

flat view

From: Ard Biesheuvel <ardb@kernel.org>
Date: 2021-09-07 16:06:15
Also in: lkml

On Tue, 7 Sept 2021 at 17:24, Keith Packard [off-list ref] wrote:
Ard Biesheuvel [off-list ref] writes:
quoted
Sure, so it is precisely for that reason that it is better to isolate
changes that can be isolated.
I'll go ahead and split this apart then; that is how I did development,
after all.
quoted
All the time. 'current' essentially never changes value from the POV
of code running in task context, so there is usually no reason to care
about preemption/migration when referring to it. Using per-CPU
variables is what creates the problem here.
Thanks for helping me -- I just got the wrong model stuck in my head
over the weekend somehow.

If I do have this figured out, we should be able to stick the
per_cpu_offset value in thread_info and use TPIDRPRW to hold 'current'
as code using per_cpu_offset should already be disabling
preemption. That should be an easier change than putting a kernel
pointer in a user-visible register.
That is still a bit tricky, given that you now have to swap out the
per-CPU offset when you migrate a task, and the generic code is not
really set up for that.
quoted
Given that we are already relying on the MP extensions for this
anyway, I personally think that using another thread ID register to
carry 'current' is a reasonable approach as well, since it would also
allow us to get per-task stack protector support into the compiler.
But I would like to hear from some other folks on cc as well.
That would be awesome; I assume that doesn't require leaving
per_cpu_offset in a thread ID register?

In any case, I'll give my plan a try, and then see about trying your
plan as well so I can compare the complexity of the two solutions.
I had a stab at this myself today (long boring day with no Internet connection).

https://android-kvm.googlesource.com/linux/+log/refs/heads/ardb/arm32-ti-in-task

It resembles your code in some places - I suppose we went on the same
journey in a sense :-) We'll fix up the credits before this gets
resubmitted.

Fixing the per-task stack protector plugin on top of these changes
should be trivial but I need a coffee first.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help