similar to: [PATCH 0/21] Descriptor table fixes / cleanup for i386

Displaying 20 results from an estimated 10000 matches similar to: "[PATCH 0/21] Descriptor table fixes / cleanup for i386"

2007 Apr 18
3
[PATCH 12/21] i386 Deprecate descriptor asm
Ancient inline assembler that manipulates descriptor tables is unreadable and has no type checking. Doing this in C actually generates better code, saves code space, and improves readability. The fact that you must cast descriptors to (char *) for the inline assembler to work properly caused me no end of grief working on these patches. Note that GCC does not generate rotations to utilize
2007 Apr 18
3
[PATCH 12/21] i386 Deprecate descriptor asm
Ancient inline assembler that manipulates descriptor tables is unreadable and has no type checking. Doing this in C actually generates better code, saves code space, and improves readability. The fact that you must cast descriptors to (char *) for the inline assembler to work properly caused me no end of grief working on these patches. Note that GCC does not generate rotations to utilize
2007 Apr 18
1
[PATCH 0/3] GDT virtualization performance
Three patches to clean up GDT access in Linux to make it friendly to virtualization environments. The basic problem is that the GDT must be write protected, which causes spurious overhead when the GDT lies on the same page as other data. This problem exists both for VMware and Xen; Xen actually requires page isolation, so we have implemented the most general and compatible solution. Patch 1
2007 Apr 18
1
[PATCH 0/3] GDT virtualization performance
Three patches to clean up GDT access in Linux to make it friendly to virtualization environments. The basic problem is that the GDT must be write protected, which causes spurious overhead when the GDT lies on the same page as other data. This problem exists both for VMware and Xen; Xen actually requires page isolation, so we have implemented the most general and compatible solution. Patch 1
2007 Apr 18
2
[PATCH 19/21] i386 Kprobes semaphore fix
IA-32 linear address translation is loads of fun. While cleaning up the LDT code, I noticed that kprobes code was very bogus with respect to segment handling. Many, many bugs are fixed here. I chose to combine the three separate functions that try to do linear address conversion into one, nice and working functions. All of the versions had bugs. 1) Taking an int3 from v8086 mode could cause
2007 Apr 18
2
[PATCH 19/21] i386 Kprobes semaphore fix
IA-32 linear address translation is loads of fun. While cleaning up the LDT code, I noticed that kprobes code was very bogus with respect to segment handling. Many, many bugs are fixed here. I chose to combine the three separate functions that try to do linear address conversion into one, nice and working functions. All of the versions had bugs. 1) Taking an int3 from v8086 mode could cause
2007 Apr 18
1
[PATCH 7/14] i386 / Add some descriptor convenience functions
Add some convenient descriptor access functions and move them all into desc.h Patch-base: 2.6.13-rc5-mm1 Patch-keys: i386 desc cleanup Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.13/include/asm-i386/desc.h =================================================================== --- linux-2.6.13.orig/include/asm-i386/desc.h 2005-08-09 19:43:38.000000000 -0700 +++
2007 Apr 18
1
[PATCH 7/14] i386 / Add some descriptor convenience functions
Add some convenient descriptor access functions and move them all into desc.h Patch-base: 2.6.13-rc5-mm1 Patch-keys: i386 desc cleanup Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.13/include/asm-i386/desc.h =================================================================== --- linux-2.6.13.orig/include/asm-i386/desc.h 2005-08-09 19:43:38.000000000 -0700 +++
2007 Apr 18
1
[PATCH 2/3] Pnp bios gdt fix
PnP BIOS for x86 is part of drivers, so I missed it in the initial GDT page alignment patch. Kudos to Andrew for fixing that. Unfortunately, fixing the build introduced a kernel panic when trying to setup the as of yet unallocated GDTs for the APs. This fixes the problem by setting only the BSP's GDT, then copying the PnP segments back to the cpu_gdt_table template. Signed-off-by: Zachary
2007 Apr 18
1
[PATCH 2/3] Pnp bios gdt fix
PnP BIOS for x86 is part of drivers, so I missed it in the initial GDT page alignment patch. Kudos to Andrew for fixing that. Unfortunately, fixing the build introduced a kernel panic when trying to setup the as of yet unallocated GDTs for the APs. This fixes the problem by setting only the BSP's GDT, then copying the PnP segments back to the cpu_gdt_table template. Signed-off-by: Zachary
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. This doesn't work well for Xen, because you set
2007 Apr 18
3
[RFC, PATCH 10/24] i386 Vmi descriptor changes
Descriptor and trap table cleanups. Add cleanly written accessors for IDT and GDT gates so the subarch may override them. Note that this allows the hypervisor to transparently tweak the DPL of the descriptors as well as the RPL of segments in those descriptors, with no unnecessary kernel code modification. It also allows the hypervisor implementation of the VMI to tweak the gates, allowing for
2007 Apr 18
3
[RFC, PATCH 10/24] i386 Vmi descriptor changes
Descriptor and trap table cleanups. Add cleanly written accessors for IDT and GDT gates so the subarch may override them. Note that this allows the hypervisor to transparently tweak the DPL of the descriptors as well as the RPL of segments in those descriptors, with no unnecessary kernel code modification. It also allows the hypervisor implementation of the VMI to tweak the gates, allowing for
2007 Apr 18
0
[PATCH 18/21] i386 Ldt cleanups 2
Add an acessor function to get a pointer to an LDT descriptor. Add one for the GDT too, while we are here, and a function to tell the difference. Turns out on some GCC versions, converting to char * and back gives better code output than gdt[seg >> 3]. Lets keep that trick in the header file so the C-code can be clean. Not used yet, but soon. Signed-off-by: Zachary Amsden
2007 Apr 18
0
[PATCH 18/21] i386 Ldt cleanups 2
Add an acessor function to get a pointer to an LDT descriptor. Add one for the GDT too, while we are here, and a function to tell the difference. Turns out on some GCC versions, converting to char * and back gives better code output than gdt[seg >> 3]. Lets keep that trick in the header file so the C-code can be clean. Not used yet, but soon. Signed-off-by: Zachary Amsden
2007 Apr 18
0
[PATCH 8/12] base-limit-cleanup
Found some stray descriptor table accessors that had non-optimal assembler constraints. Use "q" to get word, high and low byte access without forcing a specific register constraint. Add desc as a memory output operand. Also, get_base was completely unused. Deprecate it. The function get_limit is also unused, but I did not deprecate it; it could be used in arch/i386/mm/fault.c.
2007 Apr 18
0
[PATCH 8/12] base-limit-cleanup
Found some stray descriptor table accessors that had non-optimal assembler constraints. Use "q" to get word, high and low byte access without forcing a specific register constraint. Add desc as a memory output operand. Also, get_base was completely unused. Deprecate it. The function get_limit is also unused, but I did not deprecate it; it could be used in arch/i386/mm/fault.c.
2007 Apr 18
0
[PATCH 8/21] i386 Segment protect properly
It is impossible to have a zero length segment in descriptor tables using "normal" segments. One of many ways to properly protect segments to zero length is to map the base to an umapped page. Create a nicer way to do this, and stop subtracting 1 from the length passed to set_limit (note calling set limit with a zero limit does something very bad! - not anymore). Signed-off-by:
2007 Apr 18
0
[PATCH 8/21] i386 Segment protect properly
It is impossible to have a zero length segment in descriptor tables using "normal" segments. One of many ways to properly protect segments to zero length is to map the base to an umapped page. Create a nicer way to do this, and stop subtracting 1 from the length passed to set_limit (note calling set limit with a zero limit does something very bad! - not anymore). Signed-off-by:
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. */ #include <stdio.h> #include <signal.h>