lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080304013649.GB28006@linux-os.sc.intel.com>
Date:	Mon, 3 Mar 2008 17:36:49 -0800
From:	Suresh Siddha <suresh.b.siddha@...el.com>
To:	Christoph Hellwig <hch@...radead.org>
Cc:	Suresh Siddha <suresh.b.siddha@...el.com>, mingo@...e.hu,
	hpa@...or.com, tglx@...utronix.de, andi@...stfloor.org,
	linux-kernel@...r.kernel.org,
	Arjan van de Ven <arjan@...ux.intel.com>
Subject: Re: [patch 1/2] x86, fpu: split FPU state from task struct - v3

On Mon, Mar 03, 2008 at 08:18:49PM -0500, Christoph Hellwig wrote:
> On Mon, Mar 03, 2008 at 03:02:45PM -0800, Suresh Siddha wrote:
> > +void __attribute__((weak)) arch_task_cache_init(void)
> > +{
> > +}
> > +
> >  void __init fork_init(unsigned long mempages)
> >  {
> >  #ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
> > @@ -144,6 +148,9 @@
> >  			ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK, NULL);
> >  #endif
> >  
> > +	/* do the arch specific task caches init */
> > +	arch_task_cache_init();
> 
> Why can't this just be a normal initcall (with the right level)?

This is sort of an extension to the per-task area. And this needs to be done
before any task starts using this state. Thought this is the nice place to
initialize the extension caches along with the main task_struct init.

> 
> > +int __attribute__((weak)) arch_dup_task_struct(struct task_struct *dst,
> > +					       struct task_struct *src)
> > +{
> > +	*dst = *src;
> > +	return 0;
> > +}
> > +
> >  static struct task_struct *dup_task_struct(struct task_struct *orig)
> >  {
> >  	struct task_struct *tsk;
> > @@ -181,15 +195,15 @@
> >  		return NULL;
> >  	}
> >  
> > -	*tsk = *orig;
> > + 	err = arch_dup_task_struct(tsk, orig);
> > +	if (err)
> > +		goto out;
> > +
> 
> You're still adding a second hook instead of re-using or re-naming
> setup_thread_stack.  Did I miss a good explanation for that
> or was this just an oversight?

Not an oversight. setup_thread_stack comes with its own baggage called
__HAVE_THREAD_FUNCTIONS. Thought of keeping this simple and separate
by using an inline or weak linkage.

> Also this weak linkage stuff creaping in is really ugly.

hmm.. any better suggestion?

thanks,
suresh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ