Re: [patch 1/2] x86, fpu: split FPU state from task struct - v3

Christoph Hellwig
2008-03-04T01:19:11Z

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)?

> +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?

Also this weak linkage stuff creaping in is really ugly.