search for: ldt

Displaying 20 results from an estimated 306 matches for "ldt".

Did you mean: gdt
2007 Apr 18
2
[PATCH 3/6] i386 virtualization - Make ldt a desc struct
* zach@vmware.com (zach@vmware.com) wrote: > Make the LDT a desc_struct pointer, since this is what it actually is. I like that plan. > There is code which relies on the fact that LDTs are allocated in page > chunks, and it is both cleaner and more convenient to keep the rather > poorly named "size" variable from the LDT in terms of L...
2007 Apr 18
2
[PATCH 3/6] i386 virtualization - Make ldt a desc struct
* zach@vmware.com (zach@vmware.com) wrote: > Make the LDT a desc_struct pointer, since this is what it actually is. I like that plan. > There is code which relies on the fact that LDTs are allocated in page > chunks, and it is both cleaner and more convenient to keep the rather > poorly named "size" variable from the LDT in terms of L...
2007 Apr 18
0
[PATCH 20/21] i386 Ldt cleanups 3
Big cleanup of LDT code. This code has very little type checking and is not frequently used, so I audited the code, added type checking and size optimizations to generate smaller assembly code. I changed the ldt count to be in pages, and converted the char * ldt into a desc_struct. Signed-off-by: Zachary Amsden &...
2007 Apr 18
0
[PATCH 20/21] i386 Ldt cleanups 3
Big cleanup of LDT code. This code has very little type checking and is not frequently used, so I audited the code, added type checking and size optimizations to generate smaller assembly code. I changed the ldt count to be in pages, and converted the char * ldt into a desc_struct. Signed-off-by: Zachary Amsden &...
2007 Apr 18
1
[PATCH 2/12] ldt-accessors
Introduce a write acessor for updating the current LDT. This is required for hypervisors like Xen that do not allow LDT pages to be directly written. Testing - here's a fun little LDT test that can be trivially modified to test limits as well. /* * Copyright (c) 2005, Zachary Amsden (zach@vmware.com) * This is licensed under the GPL. */ #inc...
2007 Apr 18
1
[PATCH 2/12] ldt-accessors
Introduce a write acessor for updating the current LDT. This is required for hypervisors like Xen that do not allow LDT pages to be directly written. Testing - here's a fun little LDT test that can be trivially modified to test limits as well. /* * Copyright (c) 2005, Zachary Amsden (zach@vmware.com) * This is licensed under the GPL. */ #inc...
2007 Apr 18
2
[PATCH 12/12; UPDATED] xen-ldt
Add Xen accessors for LDT updates. Todo: Bring back return values from write_ldt_entry. Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.13/arch/i386/kernel/ldt.c =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/ldt.c 2005-08-08 21:13:56.00000...
2007 Apr 18
2
[PATCH 12/12; UPDATED] xen-ldt
Add Xen accessors for LDT updates. Todo: Bring back return values from write_ldt_entry. Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.13/arch/i386/kernel/ldt.c =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/ldt.c 2005-08-08 21:13:56.00000...
2007 Apr 18
2
proposed interface change for setting the ldt
At the moment, all the places where the LDT are set in the kernel are of the form: set_ldt_desc(cpu, segments, count); load_LDT_desc(); (two instances in asm-i386/desc.h). set_ldt_desc() sets an LDT descriptor in the GDT, and load_LDT_desc() is basically just lldt. These map to the write_gdt_entry and load_ldt_desc paravirt ops...
2007 Apr 18
0
[PATCH 13/14] i386 / Introduce hypervisor ldt hooks
Add hooks that the hypervisor can use to establish writable and non-writable pages for LDT pages. I made these parallel the page flags as defined in include/linux/page-flags.h, since the flag mechanism is very similar to the hypercall page flagging, and extended easily later to include PT, PD, PDP, GDT, etc. Patch-against: 2.6.13-rc5-mm1 Patch-keys: i386 ldt paravirt xen Signed-off-by:...
2007 Apr 18
0
[PATCH 13/14] i386 / Introduce hypervisor ldt hooks
Add hooks that the hypervisor can use to establish writable and non-writable pages for LDT pages. I made these parallel the page flags as defined in include/linux/page-flags.h, since the flag mechanism is very similar to the hypercall page flagging, and extended easily later to include PT, PD, PDP, GDT, etc. Patch-against: 2.6.13-rc5-mm1 Patch-keys: i386 ldt paravirt xen Signed-off-by:...
2007 Apr 18
2
[PATCH 1/14] i386 / Make write ldt return error code
Xen requires error returns from the hypercall to update LDT entries, and this generates completely equivalent code on native. Patch-base: 2.6.13-rc5-mm1 Patch-keys: i386 desc ldt paravirt xen Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.13/include/asm-i386/mach-default/mach_desc.h =================================================...
2007 Apr 18
2
[PATCH 1/14] i386 / Make write ldt return error code
Xen requires error returns from the hypercall to update LDT entries, and this generates completely equivalent code on native. Patch-base: 2.6.13-rc5-mm1 Patch-keys: i386 desc ldt paravirt xen Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.13/include/asm-i386/mach-default/mach_desc.h =================================================...
2007 Apr 18
0
[PATCH 12/14] i386 / Move context switch inline
By moving init_new_context and destroy_context inline into mmu_context.h, we can avoid extra functions calls, which are only needed for the unlikely case that the process context has an LDT to deal with. Now the code in ldt.c is called only when actually dealing with LDT creation or destruction. Careful analysis of alloc_ldt function showed that by using two const parameters, huge amounts of dead code would be eliminated, allowing it to inline into copy_ldt. This results in just be...
2007 Apr 18
0
[PATCH 12/14] i386 / Move context switch inline
By moving init_new_context and destroy_context inline into mmu_context.h, we can avoid extra functions calls, which are only needed for the unlikely case that the process context has an LDT to deal with. Now the code in ldt.c is called only when actually dealing with LDT creation or destruction. Careful analysis of alloc_ldt function showed that by using two const parameters, huge amounts of dead code would be eliminated, allowing it to inline into copy_ldt. This results in just be...
2007 Apr 18
0
[PATCH 12/12] xen-ldt
Index: linux-2.6.13/arch/i386/kernel/ldt.c =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/ldt.c 2005-08-08 15:27:26.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/ldt.c 2005-08-08 21:13:19.000000000 -0700 @@ -18,6 +18,7 @@ #include <asm/system.h> #include <asm/ldt.h...
2007 Apr 18
0
[PATCH 12/12] xen-ldt
Index: linux-2.6.13/arch/i386/kernel/ldt.c =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/ldt.c 2005-08-08 15:27:26.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/ldt.c 2005-08-08 21:13:19.000000000 -0700 @@ -18,6 +18,7 @@ #include <asm/system.h> #include <asm/ldt.h...
2007 Apr 18
2
[PATCH 21/21] i386 Ldt context inline
I was also able to get the LDT switching functionality out of the critical path in switch_mm, which reduces the number of function calls, potential TLB misses and code size. Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.14-zach-work/include/asm-i386/desc.h ===============================================...
2007 Apr 18
2
[PATCH 21/21] i386 Ldt context inline
I was also able to get the LDT switching functionality out of the critical path in switch_mm, which reduces the number of function calls, potential TLB misses and code size. Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.14-zach-work/include/asm-i386/desc.h ===============================================...
2007 Apr 18
0
[PATCH 11/12] subarch-desc
...-08 17:31:59.000000000 -0700 +++ linux-2.6.13/include/asm-i386/desc.h 2005-08-08 17:36:35.000000000 -0700 @@ -33,19 +33,6 @@ extern struct Xgt_desc_struct idt_descr, cpu_gdt_descr[NR_CPUS]; -#define load_TR_desc() asm volatile("ltr %w0"::"q" (GDT_ENTRY_TSS*8)) -#define load_LDT_desc() asm volatile("lldt %w0"::"q" (GDT_ENTRY_LDT*8)) - -#define load_gdt(dtr) asm volatile("lgdtl %0"::"m" (*dtr)) -#define load_idt(dtr) asm volatile("lidtl %0"::"m" (*dtr)) -#define load_tr(tr) asm volatile("ltr %0"::"mr...