All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Thomas Gleixner <tglx@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org,
	tglx@linutronix.de
Subject: [tip:smp/hotplug] x86: Use common threadinfo allocator
Date: Tue, 8 May 2012 05:37:00 -0700	[thread overview]
Message-ID: <tip-38e7c572ce7310def003d8bb7c34260f5d8118cb@git.kernel.org> (raw)
In-Reply-To: <20120505150141.559556763@linutronix.de>

Commit-ID:  38e7c572ce7310def003d8bb7c34260f5d8118cb
Gitweb:     http://git.kernel.org/tip/38e7c572ce7310def003d8bb7c34260f5d8118cb
Author:     Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Sat, 5 May 2012 15:05:42 +0000
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 8 May 2012 14:08:44 +0200

x86: Use common threadinfo allocator

The only difference is the free_thread_info function, which frees
xstate.

Use the new arch_release_task_struct() function instead and switch
over to the core allocator.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20120505150141.559556763@linutronix.de
Cc: x86@kernel.org
---
 arch/x86/include/asm/boot.h          |    2 +-
 arch/x86/include/asm/page_32_types.h |    4 ++--
 arch/x86/include/asm/page_64_types.h |    4 ++--
 arch/x86/include/asm/thread_info.h   |   20 +-------------------
 arch/x86/kernel/irq_32.c             |    8 ++++----
 arch/x86/kernel/process.c            |    5 ++---
 6 files changed, 12 insertions(+), 31 deletions(-)

diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
index 5e1a2ee..b13fe63 100644
--- a/arch/x86/include/asm/boot.h
+++ b/arch/x86/include/asm/boot.h
@@ -19,7 +19,7 @@
 #ifdef CONFIG_X86_64
 #define MIN_KERNEL_ALIGN_LG2	PMD_SHIFT
 #else
-#define MIN_KERNEL_ALIGN_LG2	(PAGE_SHIFT + THREAD_ORDER)
+#define MIN_KERNEL_ALIGN_LG2	(PAGE_SHIFT + THREAD_SIZE_ORDER)
 #endif
 #define MIN_KERNEL_ALIGN	(_AC(1, UL) << MIN_KERNEL_ALIGN_LG2)
 
diff --git a/arch/x86/include/asm/page_32_types.h b/arch/x86/include/asm/page_32_types.h
index ade619f..ef17af0 100644
--- a/arch/x86/include/asm/page_32_types.h
+++ b/arch/x86/include/asm/page_32_types.h
@@ -15,8 +15,8 @@
  */
 #define __PAGE_OFFSET		_AC(CONFIG_PAGE_OFFSET, UL)
 
-#define THREAD_ORDER	1
-#define THREAD_SIZE 	(PAGE_SIZE << THREAD_ORDER)
+#define THREAD_SIZE_ORDER	1
+#define THREAD_SIZE		(PAGE_SIZE << THREAD_SIZE_ORDER)
 
 #define STACKFAULT_STACK 0
 #define DOUBLEFAULT_STACK 1
diff --git a/arch/x86/include/asm/page_64_types.h b/arch/x86/include/asm/page_64_types.h
index 7639dbf..320f7bb 100644
--- a/arch/x86/include/asm/page_64_types.h
+++ b/arch/x86/include/asm/page_64_types.h
@@ -1,8 +1,8 @@
 #ifndef _ASM_X86_PAGE_64_DEFS_H
 #define _ASM_X86_PAGE_64_DEFS_H
 
-#define THREAD_ORDER	1
-#define THREAD_SIZE  (PAGE_SIZE << THREAD_ORDER)
+#define THREAD_SIZE_ORDER	1
+#define THREAD_SIZE  (PAGE_SIZE << THREAD_SIZE_ORDER)
 #define CURRENT_MASK (~(THREAD_SIZE - 1))
 
 #define EXCEPTION_STACK_ORDER 0
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
index 8692a16..73cfe0d 100644
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@ -155,24 +155,6 @@ struct thread_info {
 
 #define PREEMPT_ACTIVE		0x10000000
 
-/* thread information allocation */
-#ifdef CONFIG_DEBUG_STACK_USAGE
-#define THREAD_FLAGS (GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO)
-#else
-#define THREAD_FLAGS (GFP_KERNEL | __GFP_NOTRACK)
-#endif
-
-#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
-
-#define alloc_thread_info_node(tsk, node)				\
-({									\
-	struct page *page = alloc_pages_node(node, THREAD_FLAGS,	\
-					     THREAD_ORDER);		\
-	struct thread_info *ret = page ? page_address(page) : NULL;	\
-									\
-	ret;								\
-})
-
 #ifdef CONFIG_X86_32
 
 #define STACK_WARN	(THREAD_SIZE/8)
@@ -282,7 +264,7 @@ static inline bool is_ia32_task(void)
 
 #ifndef __ASSEMBLY__
 extern void arch_task_cache_init(void);
-extern void free_thread_info(struct thread_info *ti);
 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
+extern void arch_release_task_struct(struct task_struct *tsk);
 #endif
 #endif /* _ASM_X86_THREAD_INFO_H */
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
index 58b7f27..344faf8 100644
--- a/arch/x86/kernel/irq_32.c
+++ b/arch/x86/kernel/irq_32.c
@@ -127,8 +127,8 @@ void __cpuinit irq_ctx_init(int cpu)
 		return;
 
 	irqctx = page_address(alloc_pages_node(cpu_to_node(cpu),
-					       THREAD_FLAGS,
-					       THREAD_ORDER));
+					       THREADINFO_GFP,
+					       THREAD_SIZE_ORDER));
 	memset(&irqctx->tinfo, 0, sizeof(struct thread_info));
 	irqctx->tinfo.cpu		= cpu;
 	irqctx->tinfo.preempt_count	= HARDIRQ_OFFSET;
@@ -137,8 +137,8 @@ void __cpuinit irq_ctx_init(int cpu)
 	per_cpu(hardirq_ctx, cpu) = irqctx;
 
 	irqctx = page_address(alloc_pages_node(cpu_to_node(cpu),
-					       THREAD_FLAGS,
-					       THREAD_ORDER));
+					       THREADINFO_GFP,
+					       THREAD_SIZE_ORDER));
 	memset(&irqctx->tinfo, 0, sizeof(struct thread_info));
 	irqctx->tinfo.cpu		= cpu;
 	irqctx->tinfo.addr_limit	= MAKE_MM_SEG(0);
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 8215458..e817315 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -76,10 +76,9 @@ void free_thread_xstate(struct task_struct *tsk)
 	fpu_free(&tsk->thread.fpu);
 }
 
-void free_thread_info(struct thread_info *ti)
+void arch_release_task_struct(struct task_struct *tsk)
 {
-	free_thread_xstate(ti->task);
-	free_pages((unsigned long)ti, THREAD_ORDER);
+	free_thread_xstate(tsk);
 }
 
 void arch_task_cache_init(void)

  reply	other threads:[~2012-05-08 12:37 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-05 15:05 [patch 00/18] fork: Move most archs to generic threadinfo/taskstruct allocators Thomas Gleixner
2012-05-05 15:05 ` [patch 01/18] fork: Remove the weak insanity Thomas Gleixner
2012-05-05 15:58   ` Sam Ravnborg
2012-05-07 20:55     ` Thomas Gleixner
2012-05-07 21:03       ` Sam Ravnborg
2012-05-08 12:31   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 03/18] fork: Move thread info gfp flags to header Thomas Gleixner
2012-05-07  4:34   ` Paul E. McKenney
2012-05-07 13:38     ` Paul E. McKenney
2012-05-07 19:14     ` Thomas Gleixner
2012-05-07 20:53       ` Paul E. McKenney
2012-05-08 17:51         ` Paul E. McKenney
2012-05-08 12:32   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 04/18] fork: Provide kmemcache based thread_info allocator Thomas Gleixner
2012-05-08 12:35   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 02/18] fork: Provide weak arch_release_[task_struct|thread_info] functions Thomas Gleixner
2012-05-08 12:33   ` [tip:smp/hotplug] fork: Provide weak arch_release_[ task_struct|thread_info] functions tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 05/18] x86: Use common threadinfo allocator Thomas Gleixner
2012-05-08 12:37   ` tip-bot for Thomas Gleixner [this message]
2012-05-05 15:05 ` [patch 06/18] c6x: " Thomas Gleixner
2012-05-07 19:49   ` Mark Salter
2012-05-08 12:36   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 08/18] frv: " Thomas Gleixner
2012-05-08 12:38   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 07/18] cris: " Thomas Gleixner
2012-05-08 12:37   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-15 12:49   ` [patch 07/18] " Jesper Nilsson
2012-05-05 15:05 ` [patch 09/18] hexagon: " Thomas Gleixner
2012-05-08 12:40   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 10/18] m32r: " Thomas Gleixner
2012-05-08 12:39   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 11/18] mips: " Thomas Gleixner
2012-05-08 12:41   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 12/18] mn10300: " Thomas Gleixner
2012-05-08 12:42   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 13/18] powerpc: " Thomas Gleixner
2012-05-08 12:42   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 14/18] score: " Thomas Gleixner
2012-05-08 12:44   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 15/18] sh: " Thomas Gleixner
2012-05-08 12:43   ` [tip:smp/hotplug] sh-use-common-threadinfo-allocator tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 16/18] sparc: Use common threadinfo allocator Thomas Gleixner
2012-05-06 17:03   ` David Miller
2012-05-08 12:45   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-05 15:05 ` [patch 17/18] tile: " Thomas Gleixner
2012-05-05 15:21   ` Chris Metcalf
2012-05-07 19:45     ` Thomas Gleixner
2012-05-07 20:03       ` Chris Metcalf
2012-05-07 20:33         ` Thomas Gleixner
2012-05-07 20:52           ` Chris Metcalf
2012-05-08 12:04             ` Thomas Gleixner
2012-05-08 12:34   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner
2012-05-08 19:02     ` Chris Metcalf
2012-05-05 15:05 ` [patch 18/18] task_allocator: Use config switches instead of magic defines Thomas Gleixner
2012-05-07 20:32   ` Sam Ravnborg
2012-05-07 20:43     ` Thomas Gleixner
2012-05-08 12:46   ` [tip:smp/hotplug] " tip-bot for Thomas Gleixner

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=tip-38e7c572ce7310def003d8bb7c34260f5d8118cb@git.kernel.org \
    --to=tglx@linutronix.de \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.