lkml.org 
[lkml]   [2016]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH 4/7] openrisc: Add thread-local storage (TLS) support


On Mon, 19 Sep 2016, Jonas Bonn wrote:

> On 09/16/2016 04:43 PM, Stafford Horne wrote:
>> From: Christian Svensson <blue@cmd.nu>
>>
>> Historically OpenRISC GCC has reserved r10 which we now use to hold
>> the thread pointer for thread-local storage (TLS).
> I know this was proposed by way of this patch, but we deferred accepting this
> until the OpenRISC spec could be updated accordingly. Has this been done
> now? If not, still NAK.

Hi Jonas,

Thanks for your review, I do not believe the spec has been updated. I will
look into seeing what I can do and update the patch if needed.

-Stafford

>>
>> Signed-off-by: Christian Svensson <blue@cmd.nu>
>> Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
>> Signed-off-by: Stafford Horne <shorne@gmail.com>
>> ---
>> arch/openrisc/kernel/process.c | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> diff --git a/arch/openrisc/kernel/process.c
>> b/arch/openrisc/kernel/process.c
>> index 7095dfe..277123b 100644
>> --- a/arch/openrisc/kernel/process.c
>> +++ b/arch/openrisc/kernel/process.c
>> @@ -173,6 +173,19 @@ copy_thread(unsigned long clone_flags, unsigned long
>> usp,
>>
>> if (usp)
>> userregs->sp = usp;
>> +
>> + /*
>> + * For CLONE_SETTLS set "tp" (r10) to the TLS pointer passed
>> to sys_clone.
>> + *
>> + * The kernel entry is:
>> + * int clone (long flags, void *child_stack, int
>> *parent_tid,
>> + * int *child_tid, struct void *tls)
>> + *
>> + * This makes the source r7 in the kernel registers.
>> + */
>> + if (clone_flags & CLONE_SETTLS)
>> + userregs->gpr[10] = userregs->gpr[7];
>> +
>> userregs->gpr[11] = 0; /* Result from fork() */
>>
>> kregs->gpr[20] = 0; /* Userspace thread */
>
>
>

\
 
 \ /
  Last update: 2016-09-19 16:43    [W:0.249 / U:1.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site