From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757273AbbGQIpf (ORCPT ); Fri, 17 Jul 2015 04:45:35 -0400 Received: from mail-wg0-f54.google.com ([74.125.82.54]:34435 "EHLO mail-wg0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752309AbbGQIpc (ORCPT ); Fri, 17 Jul 2015 04:45:32 -0400 Date: Fri, 17 Jul 2015 10:45:27 +0200 From: Ingo Molnar To: Dave Hansen Cc: Andy Lutomirski , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , X86 ML , Peter Zijlstra , Borislav Petkov , Linus Torvalds , "linux-kernel@vger.kernel.org" Subject: Re: [RFC][PATCH] x86, fpu: dynamically allocate 'struct fpu' Message-ID: <20150717084527.GC16130@gmail.com> References: <20150716191437.A334FF2E@viggo.jf.intel.com> <55A8221E.8030108@sr71.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55A8221E.8030108@sr71.net> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Dave Hansen wrote: > >> #endif /* _ASM_X86_FPU_H */ > >> diff -puN arch/x86/kernel/process.c~dynamically-allocate-struct-fpu arch/x86/kernel/process.c > >> --- a/arch/x86/kernel/process.c~dynamically-allocate-struct-fpu 2015-07-16 10:50:42.360571875 -0700 > >> +++ b/arch/x86/kernel/process.c 2015-07-16 12:00:59.204808551 -0700 > >> @@ -81,7 +81,7 @@ EXPORT_SYMBOL_GPL(idle_notifier_unregist > >> */ > >> int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) > >> { > >> - *dst = *src; > >> + memcpy(dst, src, arch_task_struct_size()); > > > > This is actually vaguely performance-critical, which makes me thing > > that using some kind of inline or other real way (config macro, ifdef, > > etc) to detect whether there's an arch override would be better than a > > weak function. > > Fair enough. I'll send out another version in a bit if there are no more > comments. Beyond making it a build time switch for other architectures, I'd also suggest introducing a __read_mostly task_struct_size variable on x86, so that we can write: memcpy(dst, src, task_struct_size); Thanks, Ingo