Displaying 20 results from an estimated 22 matches for "__switch_t".
2007 Apr 18
2
[PATCH 2/5] Paravirt cpu batching.patch
..._user = native_flush_tlb,
 	.flush_tlb_kernel = native_flush_tlb_global,
diff -r 320f0d4d2280 arch/i386/kernel/process.c
--- a/arch/i386/kernel/process.c	Tue Dec 12 13:50:50 2006 -0800
+++ b/arch/i386/kernel/process.c	Tue Dec 12 13:50:53 2006 -0800
@@ -665,6 +665,37 @@ struct task_struct fastcall * __switch_t
 	load_TLS(next, cpu);
 
 	/*
+	 * Restore IOPL if needed.
+	 */
+	if (unlikely(prev->iopl != next->iopl))
+		set_iopl_mask(next->iopl);
+
+	/*
+	 * Now maybe handle debug registers and/or IO bitmaps
+	 */
+	if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW)
+	    || t...
2007 Apr 18
2
[PATCH 2/5] Paravirt cpu batching.patch
..._user = native_flush_tlb,
 	.flush_tlb_kernel = native_flush_tlb_global,
diff -r 320f0d4d2280 arch/i386/kernel/process.c
--- a/arch/i386/kernel/process.c	Tue Dec 12 13:50:50 2006 -0800
+++ b/arch/i386/kernel/process.c	Tue Dec 12 13:50:53 2006 -0800
@@ -665,6 +665,37 @@ struct task_struct fastcall * __switch_t
 	load_TLS(next, cpu);
 
 	/*
+	 * Restore IOPL if needed.
+	 */
+	if (unlikely(prev->iopl != next->iopl))
+		set_iopl_mask(next->iopl);
+
+	/*
+	 * Now maybe handle debug registers and/or IO bitmaps
+	 */
+	if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW)
+	    || t...
2007 Apr 18
0
[PATCH 2/6] Paravirt CPU hypercall batching mode
..._user = native_flush_tlb,
 	.flush_tlb_kernel = native_flush_tlb_global,
diff -r 01f2e46c1416 arch/i386/kernel/process.c
--- a/arch/i386/kernel/process.c	Thu Dec 14 14:26:24 2006 -0800
+++ b/arch/i386/kernel/process.c	Thu Dec 14 14:50:22 2006 -0800
@@ -665,6 +665,31 @@ struct task_struct fastcall * __switch_t
 	load_TLS(next, cpu);
 
 	/*
+	 * Now maybe handle debug registers and/or IO bitmaps
+	 */
+	if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW)
+	    || test_tsk_thread_flag(prev_p, TIF_IO_BITMAP)))
+		__switch_to_xtra(next_p, tss);
+
+	disable_tsc(prev_p, next_p);
+
+	/*
+	 *...
2007 Apr 18
0
[PATCH 2/6] Paravirt CPU hypercall batching mode
..._user = native_flush_tlb,
 	.flush_tlb_kernel = native_flush_tlb_global,
diff -r 01f2e46c1416 arch/i386/kernel/process.c
--- a/arch/i386/kernel/process.c	Thu Dec 14 14:26:24 2006 -0800
+++ b/arch/i386/kernel/process.c	Thu Dec 14 14:50:22 2006 -0800
@@ -665,6 +665,31 @@ struct task_struct fastcall * __switch_t
 	load_TLS(next, cpu);
 
 	/*
+	 * Now maybe handle debug registers and/or IO bitmaps
+	 */
+	if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW)
+	    || test_tsk_thread_flag(prev_p, TIF_IO_BITMAP)))
+		__switch_to_xtra(next_p, tss);
+
+	disable_tsc(prev_p, next_p);
+
+	/*
+	 *...
2007 Apr 18
0
[PATCH 3/6] IOPL handling for paravirt guests
...r paravirt guests
Signed-off-by: Zachary Amsden <zach@vmware.com>
diff -r 8110943fd7ad arch/i386/kernel/process.c
--- a/arch/i386/kernel/process.c	Thu Dec 14 16:15:20 2006 -0800
+++ b/arch/i386/kernel/process.c	Thu Dec 14 16:21:57 2006 -0800
@@ -665,6 +665,15 @@ struct task_struct fastcall * __switch_t
 	load_TLS(next, cpu);
 
 	/*
+	 * Restore IOPL if needed.  In normal use, the flags restore
+	 * in the switch assembly will handle this.  But if the kernel
+	 * is running virtualized at a non-zero CPL, the popf will
+	 * not restore flags, so it must be done in a separate step.
+	 */
+	if (get_k...
2007 Apr 18
0
[PATCH 3/6] IOPL handling for paravirt guests
...r paravirt guests
Signed-off-by: Zachary Amsden <zach@vmware.com>
diff -r 8110943fd7ad arch/i386/kernel/process.c
--- a/arch/i386/kernel/process.c	Thu Dec 14 16:15:20 2006 -0800
+++ b/arch/i386/kernel/process.c	Thu Dec 14 16:21:57 2006 -0800
@@ -665,6 +665,15 @@ struct task_struct fastcall * __switch_t
 	load_TLS(next, cpu);
 
 	/*
+	 * Restore IOPL if needed.  In normal use, the flags restore
+	 * in the switch assembly will handle this.  But if the kernel
+	 * is running virtualized at a non-zero CPL, the popf will
+	 * not restore flags, so it must be done in a separate step.
+	 */
+	if (get_k...
2012 Jun 29
0
[PATCH] linux-2.6.18/x86: improve CR0 read/write handling
...pu == 0 && cpu_gdt_descr->address == 0) {
 		gdt = (struct desc_struct *)alloc_bootmem_pages(PAGE_SIZE);
 		/* alloc_bootmem_pages panics on failure, so no check */
--- a/arch/i386/kernel/process-xen.c
+++ b/arch/i386/kernel/process-xen.c
@@ -641,6 +641,8 @@ struct task_struct fastcall * __switch_t
 	BUG_ON(mcl > _mcl + ARRAY_SIZE(_mcl));
 	if (unlikely(HYPERVISOR_multicall_check(_mcl, mcl - _mcl, NULL)))
 		BUG();
+	if (_mcl->op == __HYPERVISOR_fpu_taskswitch)
+		__get_cpu_var(xen_x86_cr0) |= X86_CR0_TS;
 
 	/*
 	 * Restore %fs and %gs if needed.
--- a/arch/i386/kernel/traps-xen.c
+++...
2007 Apr 18
1
[RFC, PATCH 19/24] i386 Vmi mmu changes
...ocess.c
===================================================================
--- linux-2.6.16-rc5.orig/arch/i386/kernel/process.c	2006-03-10 13:03:36.000000000 -0800
+++ linux-2.6.16-rc5/arch/i386/kernel/process.c	2006-03-10 15:57:34.000000000 -0800
@@ -662,18 +662,6 @@ struct task_struct fastcall * __switch_t
 	load_TLS(next, cpu);
 
 	/*
-	 * Restore %fs and %gs if needed.
-	 *
-	 * Glibc normally makes %fs be zero, and %gs is one of
-	 * the TLS segments.
-	 */
-	if (unlikely(prev->fs | next->fs))
-		loadsegment(fs, next->fs);
-
-	if (prev->gs | next->gs)
-		loadsegment(gs, next->gs)...
2007 Apr 18
1
[RFC, PATCH 19/24] i386 Vmi mmu changes
...ocess.c
===================================================================
--- linux-2.6.16-rc5.orig/arch/i386/kernel/process.c	2006-03-10 13:03:36.000000000 -0800
+++ linux-2.6.16-rc5/arch/i386/kernel/process.c	2006-03-10 15:57:34.000000000 -0800
@@ -662,18 +662,6 @@ struct task_struct fastcall * __switch_t
 	load_TLS(next, cpu);
 
 	/*
-	 * Restore %fs and %gs if needed.
-	 *
-	 * Glibc normally makes %fs be zero, and %gs is one of
-	 * the TLS segments.
-	 */
-	if (unlikely(prev->fs | next->fs))
-		loadsegment(fs, next->fs);
-
-	if (prev->gs | next->gs)
-		loadsegment(gs, next->gs)...
2007 Apr 18
5
[patch 0/5] i386-gdt-pda i386 gdt and pda updates
Hi Andrew,
This patch series adds to the end of the existing i386-gdt-cleanups patches:
	 allow-per-cpu-variables-to-be-page-aligned.patch
	 i386-gdt-cleanups-use-per-cpu-variables-for-gdt-pda.patch
	 i386-gdt-cleanups-use-per-cpu-gdt-immediately-upon-boot.patch
	 i386-gdt-cleanups-use-per-cpu-gdt-immediately-upon-boot-fix.patch
	 i386-gdt-cleanups-clean-up-cpu_init.patch
	
2007 Apr 18
5
[patch 0/5] i386-gdt-pda i386 gdt and pda updates
Hi Andrew,
This patch series adds to the end of the existing i386-gdt-cleanups patches:
	 allow-per-cpu-variables-to-be-page-aligned.patch
	 i386-gdt-cleanups-use-per-cpu-variables-for-gdt-pda.patch
	 i386-gdt-cleanups-use-per-cpu-gdt-immediately-upon-boot.patch
	 i386-gdt-cleanups-use-per-cpu-gdt-immediately-upon-boot-fix.patch
	 i386-gdt-cleanups-clean-up-cpu_init.patch
	
2007 Apr 18
3
Per-cpu patches on top of PDA stuff...
Hi Jeremy, all,
	Sorry this took so long, spent last week in Japan at OSDL conf then
netconf.  After several false starts, I ended up with a very simple
implementation, which clashes significantly with your work since then
8(.  I've pushed the patches anyway, but it's going to be significant
work for me to re-merge them, so I wanted your feedback first.
	The first patch simply changes
2007 Apr 18
3
Per-cpu patches on top of PDA stuff...
Hi Jeremy, all,
	Sorry this took so long, spent last week in Japan at OSDL conf then
netconf.  After several false starts, I ended up with a very simple
implementation, which clashes significantly with your work since then
8(.  I've pushed the patches anyway, but it's going to be significant
work for me to re-merge them, so I wanted your feedback first.
	The first patch simply changes
2007 Apr 18
8
[patch 0/6] i386 gdt and percpu cleanups
Hi Andi,
This is a series of patches based on your latest queue (as of the
other day, at least).
It includes:
 - the most recent patch to compute the appropriate amount of percpu
   space to allocate, using a separate reservation for modules where
   needed.
 - make the percpu sections page-aligned, so that percpu variables can
   be page aligned if needed (which is used by gdt_page)
 -
2007 Apr 18
8
[patch 0/6] i386 gdt and percpu cleanups
Hi Andi,
This is a series of patches based on your latest queue (as of the
other day, at least).
It includes:
 - the most recent patch to compute the appropriate amount of percpu
   space to allocate, using a separate reservation for modules where
   needed.
 - make the percpu sections page-aligned, so that percpu variables can
   be page aligned if needed (which is used by gdt_page)
 -
2007 Apr 18
31
[PATCH 00/28] Updates for firstfloor paravirt-ops patches
Hi Andi,
This is a set of updates for the firstfloor patch queue.
Quick rundown:
revert-mm-x86_64-mm-account-for-module-percpu-space-separately-from-kernel-percpu.patch
separate-module-percpu-space.patch
	Update the module percpu accounting patch
fix-ff-allow-percpu-variables-to-be-page-aligned.patch
	Make sure the percpu memory allocation is page-aligned
2007 Apr 18
31
[PATCH 00/28] Updates for firstfloor paravirt-ops patches
Hi Andi,
This is a set of updates for the firstfloor patch queue.
Quick rundown:
revert-mm-x86_64-mm-account-for-module-percpu-space-separately-from-kernel-percpu.patch
separate-module-percpu-space.patch
	Update the module percpu accounting patch
fix-ff-allow-percpu-variables-to-be-page-aligned.patch
	Make sure the percpu memory allocation is page-aligned
2007 Apr 18
24
[patch 00/24] Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface
Hi Andi,
This patch series implements the Linux Xen guest as a paravirt_ops
backend.  The features in implemented this patch series are:
 * domU only
 * UP only (most code is SMP-safe, but there's no way to create a new vcpu)
 * writable pagetables, with late pinning/early unpinning
   (no shadow pagetable support)
 * supports both PAE and non-PAE modes
 * xen hvc console (console=hvc0)
 *
2007 Apr 18
24
[patch 00/24] Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface
Hi Andi,
This patch series implements the Linux Xen guest as a paravirt_ops
backend.  The features in implemented this patch series are:
 * domU only
 * UP only (most code is SMP-safe, but there's no way to create a new vcpu)
 * writable pagetables, with late pinning/early unpinning
   (no shadow pagetable support)
 * supports both PAE and non-PAE modes
 * xen hvc console (console=hvc0)
 *
2007 Apr 18
24
[patch 00/24] Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface
Hi Andi,
This patch series implements the Linux Xen guest as a paravirt_ops
backend.  The features in implemented this patch series are:
 * domU only
 * UP only (most code is SMP-safe, but there's no way to create a new vcpu)
 * writable pagetables, with late pinning/early unpinning
   (no shadow pagetable support)
 * supports both PAE and non-PAE modes
 * xen hvc console (console=hvc0)
 *