linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: dave.martin@linaro.org (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] Shrink thread_info a bit
Date: Tue, 25 Oct 2011 15:41:11 +0100	[thread overview]
Message-ID: <20111025144110.GA2043@localhost.localdomain> (raw)
In-Reply-To: <20111024131853.GA4250@mudshark.cambridge.arm.com>

On Mon, Oct 24, 2011 at 02:18:53PM +0100, Will Deacon wrote:
> Hi Russell,
> 
> On Mon, Oct 24, 2011 at 01:48:18PM +0100, Russell King - ARM Linux wrote:
> > diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
> > index 7b5cc8d..a030be7 100644
> > --- a/arch/arm/include/asm/thread_info.h
> > +++ b/arch/arm/include/asm/thread_info.h
> > @@ -59,7 +59,9 @@ struct thread_info {
> >  	__u32			syscall;	/* syscall number */
> >  	__u8			used_cp[16];	/* thread used copro */
> >  	unsigned long		tp_value;
> > +#ifdef CONFIG_CRUNCH
> >  	struct crunch_state	crunchstate;
> > +#endif
> >  	union fp_state		fpstate __attribute__((aligned(8)));
> 
> Can we also shrink the contents of fp_state when AEABI && !OABI_COMPAT?

Is this the right config combination to indicate that the FPA ABI will
not be supported?  I'm assuming so, since that's the condition which
currently disallows CONFIG_NWFPE.

I'm not saying it's not ... I'm just unsure.

Note that the FPA state (35 words) is not that much smaller than the
iwmmxt state (38 words), so not much space would be saved by shrinking
that union.

I wonder whether fpstate can go away completely on platforms which have
neither fpa nor iwmmxt however.  That would be a more significant saving.
Is it used for anything else?

> It's slightly more involved as ptrace and core-dumping would need some
> similar treatment. We probably need to keep the union kicking around
> though, since the iwmmxt state is held in there.

We would need some sensible error return from the ptrace calls to access
the FPA registers.  PTRACE_GETREGSET (not currently working on ARM since
the relevant generic code is #ifdef'd on CONFIG_HAVE_ARCH_TRACEHOOK for
some reason) returns -EINVAL when requesting a regset that isn't there.

Fixing coredumps should be relatively easy -- I think we just need to
change arm_regsets[] in arch/arm/kernel/ptrace.c appropriately.

Cheers
---Dave

  parent reply	other threads:[~2011-10-25 14:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-24 12:48 [PATCH] Shrink thread_info a bit Russell King - ARM Linux
2011-10-24 13:06 ` Baruch Siach
2011-10-24 13:08   ` Russell King - ARM Linux
2011-10-24 13:18 ` Will Deacon
2011-10-24 13:20   ` Russell King - ARM Linux
2011-10-25 14:41   ` Dave Martin [this message]
2011-10-26  7:11     ` Will Deacon
2011-10-24 14:33 ` Tim Bird

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111025144110.GA2043@localhost.localdomain \
    --to=dave.martin@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).