Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1489622

Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info

From Andy Lutomirski <luto@amacapital.net>
Newsgroups linux.kernel
Subject Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info
Date 2016-09-23 00:30 +0200
Message-ID <skkFb-3MU-11@gated-at.bofh.it> (permalink)
References (1 earlier) <shFmP-7Jn-49@gated-at.bofh.it> <shJJL-28Z-21@gated-at.bofh.it> <shYIN-3tM-1@gated-at.bofh.it> <si35L-6q0-5@gated-at.bofh.it> <sjMWT-7Q9-65@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Sep 21, 2016 12:28 AM, "Mark Rutland" <mark.rutland@arm.com> wrote:
>
> Hi Andy,
>
> On Fri, Sep 16, 2016 at 08:11:14AM -0700, Andy Lutomirski wrote:
> > > On Thu, Sep 15, 2016 at 11:37:47AM -0700, Andy Lutomirski wrote:
> > > Just to check, what do you mean to happen with the flags field? Should
> > > that always be in the generic thread_info? e.g.
> > >
> > > struct thread_info {
> > >         u32 flags;
> > > #ifdef arch_thread_info
> > >         struct arch_thread_info arch_ti;
> > > #endif
> > > };
> >
> > Exactly.  Possibly with a comment that using thread_struct should be
> > preferred and that arch_thread_info should be used only if some header
> > file requires access via current_thread_info() or task_thread_info().
>
> While fixing up these patches, I realised that I'm somewhat concerned by
> flags becoming a u32 (where it was previously an unsigned long for
> arm64).
>
> The generic {test,set,*}_ti_thread_flag() helpers use the usual bitops,
> which perform accesses of sizeof(unsigned long) at a time, and for arm64
> these need to be naturally-aligned.
>
> We happen to get that alignment from subsequent fields in task_struct
> and/or thread_info, and for arm64 we don't seem to have a problem with
> tearing, but it feels somewhat fragile, and leaves me uneasy.
>
> Looking at the git log, it seems that x86 also use unsigned long until
> commit affa219b60a11b32 ("x86: change thread_info's flag field back to
> 32 bits"), where if I'm reading correctly, this was done to get rid of
> unnecessary padding. With THREAD_INFO_IN_STACK, thread_info::flags is
> immediately followed by a long on x86, so we save no padding.
>
> Given all that, can we make the generic thread_info::flags an unsigned
> long, matching what the thread flag helpers implicitly assume?
>

Yes.  Want to send the patch or should I?

--Andy

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[RFC PATCH 0/8] arm64: move thread_info off of the task stack Mark Rutland <mark.rutland@arm.com> - 2016-09-15 15:50 +0200
  [RFC PATCH 8/8] arm64: split thread_info from task stack Mark Rutland <mark.rutland@arm.com> - 2016-09-15 16:00 +0200
  [RFC PATCH 5/8] arm64: assembler: introduce ldr_this_cpu Mark Rutland <mark.rutland@arm.com> - 2016-09-15 16:00 +0200
  [RFC PATCH 4/8] arm64: asm-offsets: remove unused definitions Mark Rutland <mark.rutland@arm.com> - 2016-09-15 16:00 +0200
  [RFC PATCH 1/8] thread_info: include <current.h> for THREAD_INFO_IN_TASK Mark Rutland <mark.rutland@arm.com> - 2016-09-15 16:00 +0200
  [RFC PATCH 3/8] arm64: thread_info remove stale items Mark Rutland <mark.rutland@arm.com> - 2016-09-15 16:00 +0200
  [RFC PATCH 7/8] arm64: move sp_el0 and tpidr_el1 into cpu_suspend_ctx Mark Rutland <mark.rutland@arm.com> - 2016-09-15 16:00 +0200
  [RFC PATCH 2/8] thread_info: allow custom in-task thread_info Mark Rutland <mark.rutland@arm.com> - 2016-09-15 16:00 +0200
    Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info Andy Lutomirski <luto@amacapital.net> - 2016-09-15 20:40 +0200
      Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info Mark Rutland <mark.rutland@arm.com> - 2016-09-16 12:40 +0200
        Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info Andy Lutomirski <luto@amacapital.net> - 2016-09-16 17:20 +0200
          Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info Mark Rutland <mark.rutland@arm.com> - 2016-09-19 12:50 +0200
          Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info Mark Rutland <mark.rutland@arm.com> - 2016-09-21 12:30 +0200
            Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info Andy Lutomirski <luto@amacapital.net> - 2016-09-23 00:30 +0200
              Re: [RFC PATCH 2/8] thread_info: allow custom in-task thread_info Mark Rutland <mark.rutland@arm.com> - 2016-09-23 19:40 +0200
  [RFC PATCH 6/8] arm64: traps: use task_struct instead of thread_info Mark Rutland <mark.rutland@arm.com> - 2016-09-15 16:00 +0200
  Re: [RFC PATCH 0/8] arm64: move thread_info off of the task stack Laura Abbott <labbott@redhat.com> - 2016-09-21 03:30 +0200
    Re: [RFC PATCH 0/8] arm64: move thread_info off of the task stack Mark Rutland <mark.rutland@arm.com> - 2016-09-21 12:40 +0200

csiph-web