search for: sti_string

Displaying 20 results from an estimated 48 matches for "sti_string".

2007 Apr 18
2
[PATCH] Fix CONFIG_PARAVIRT for 2.6.19-rc5-mm1
...sable];" \ - "popl %%edx; popl %%ecx", \ +#define CLI_STRING paravirt_alt("pushl %ecx; pushl %edx;" \ + "call *paravirt_ops+PARAVIRT_irq_disable;" \ + "popl %edx; popl %ecx", \ PARAVIRT_IRQ_DISABLE, CLBR_EAX) -#define STI_STRING paravirt_alt("pushl %%ecx; pushl %%edx;" \ - "call *paravirt_ops+%c[irq_enable];" \ - "popl %%edx; popl %%ecx", \ +#define STI_STRING paravirt_alt("pushl %ecx; pushl %edx;" \ + "call *paravirt_ops+PARAVIRT_irq_enable;" \ +...
2007 Apr 18
2
[PATCH] Fix CONFIG_PARAVIRT for 2.6.19-rc5-mm1
...sable];" \ - "popl %%edx; popl %%ecx", \ +#define CLI_STRING paravirt_alt("pushl %ecx; pushl %edx;" \ + "call *paravirt_ops+PARAVIRT_irq_disable;" \ + "popl %edx; popl %ecx", \ PARAVIRT_IRQ_DISABLE, CLBR_EAX) -#define STI_STRING paravirt_alt("pushl %%ecx; pushl %%edx;" \ - "call *paravirt_ops+%c[irq_enable];" \ - "popl %%edx; popl %%ecx", \ +#define STI_STRING paravirt_alt("pushl %ecx; pushl %edx;" \ + "call *paravirt_ops+PARAVIRT_irq_enable;" \ +...
2007 Apr 18
1
[RFC, PATCH 8/24] i386 Vmi syscall assembly
...#include <linux/config.h> #include <linux/compiler.h> +#include <mach_asm.h> /* * Your basic SMP spinlocks, allowing only a single CPU anywhere @@ -39,12 +40,12 @@ "2:\t" \ "testl $0x200, %1\n\t" \ "jz 3f\n\t" \ - "sti\n\t" \ + STI_STRING "\n\t"\ "3:\t" \ "rep;nop\n\t" \ "cmpb $0, %0\n\t" \ "jle 3b\n\t" \ - "cli\n\t" \ + CLI_STRING "\n\t"\ "jmp 1b\n" \ "4:\n\t" Index: linux-2.6.16-rc5/include/asm-i386/mach-default/mach_asm.h =====...
2007 Apr 18
1
[RFC, PATCH 8/24] i386 Vmi syscall assembly
...#include <linux/config.h> #include <linux/compiler.h> +#include <mach_asm.h> /* * Your basic SMP spinlocks, allowing only a single CPU anywhere @@ -39,12 +40,12 @@ "2:\t" \ "testl $0x200, %1\n\t" \ "jz 3f\n\t" \ - "sti\n\t" \ + STI_STRING "\n\t"\ "3:\t" \ "rep;nop\n\t" \ "cmpb $0, %0\n\t" \ "jle 3b\n\t" \ - "cli\n\t" \ + CLI_STRING "\n\t"\ "jmp 1b\n" \ "4:\n\t" Index: linux-2.6.16-rc5/include/asm-i386/mach-default/mach_asm.h =====...
2007 Oct 31
3
[PATCH 0/7] (Re-)introducing pvops for x86_64 - Consolidation part
Hi folks, Here is the result of the latest work on the pvops front, after the x86 arch merge. From the functionality point of view, almost nothing was changed, except for proper vsmp support - which was discussed, but not implemented before - and the introduction of smp_ops in x86_64, which eased the merging of the smp header. Speaking of the merge, a significant part (although not majority) of
2007 Oct 31
3
[PATCH 0/7] (Re-)introducing pvops for x86_64 - Consolidation part
Hi folks, Here is the result of the latest work on the pvops front, after the x86 arch merge. From the functionality point of view, almost nothing was changed, except for proper vsmp support - which was discussed, but not implemented before - and the introduction of smp_ops in x86_64, which eased the merging of the smp header. Speaking of the merge, a significant part (although not majority) of
2007 Apr 18
1
[PATCH] (with benchmarks) binary patching of paravirt_ops call sites
...t;, + PARAVIRT_IRQ_ENABLE) + : : "m" (paravirt_ops.irq_enable) : "memory"); +} + +#define CLI_STRING paravirt_alt("pushl %eax; pushl %ecx; pushl %edx; call *paravirt_ops+PARAVIRT_irq_disable; popl %edx; popl %ecx; popl %eax", PARAVIRT_IRQ_DISABLE) +#define STI_STRING paravirt_alt("pushl %eax; pushl %ecx; pushl %edx; call *paravirt_ops+PARAVIRT_irq_enable; popl %edx; popl %ecx; popl %eax", PARAVIRT_IRQ_ENABLE) + #else /* ... __ASSEMBLY__ */ +#define PARA_PATCH(ptype, ops) \ +771:; \ + ops; \ +772:; \ + .section .parainstructions,&qu...
2007 Apr 18
1
[PATCH] (with benchmarks) binary patching of paravirt_ops call sites
...t;, + PARAVIRT_IRQ_ENABLE) + : : "m" (paravirt_ops.irq_enable) : "memory"); +} + +#define CLI_STRING paravirt_alt("pushl %eax; pushl %ecx; pushl %edx; call *paravirt_ops+PARAVIRT_irq_disable; popl %edx; popl %ecx; popl %eax", PARAVIRT_IRQ_DISABLE) +#define STI_STRING paravirt_alt("pushl %eax; pushl %ecx; pushl %edx; call *paravirt_ops+PARAVIRT_irq_enable; popl %edx; popl %ecx; popl %eax", PARAVIRT_IRQ_ENABLE) + #else /* ... __ASSEMBLY__ */ +#define PARA_PATCH(ptype, ops) \ +771:; \ + ops; \ +772:; \ + .section .parainstructions,&qu...
2007 Apr 18
3
[PATCH 1/2] paravirt.h header
...ntry, a, b) (paravirt_ops.write_idt_entry((dt), (entry), ((u64)a) << 32 | b)) +#define set_iopl_mask(mask) (paravirt_ops.set_iopl_mask(mask)) + +#define CLI_STRING "pushl %eax; pushl %ecx; pushl %edx; call *paravirt_ops+PARAVIRT_irq_disable; popl %edx; popl %ecx; popl %eax" +#define STI_STRING "pushl %eax; pushl %ecx; pushl %edx; call *paravirt_ops+PARAVIRT_irq_enable; popl %edx; popl %ecx; popl %eax" +#else /* __ASSEMBLY__ */ + +#define INTERRUPT_RETURN jmp *paravirt_ops+PARAVIRT_iret +#define DISABLE_INTERRUPTS call *paravirt_ops+PARAVIRT_irq_disable +#define ENABLE_INTERRUP...
2007 Apr 18
3
[PATCH 1/4] x86 paravirt_ops: create no_paravirt.h for native ops
...; #include <asm/page.h> #include <linux/compiler.h> +#include <asm/paravirt.h> /* * Your basic SMP spinlocks, allowing only a single CPU anywhere @@ -16,9 +17,6 @@ * * (the type definitions are in asm/spinlock_types.h) */ - -#define CLI_STRING "cli" -#define STI_STRING "sti" #define __raw_spin_is_locked(x) \ (*(volatile signed char *)(&(x)->slock) <= 0) =================================================================== --- a/include/asm-i386/system.h +++ b/include/asm-i386/system.h @@ -5,6 +5,7 @@ #include <asm/segment.h> #inclu...
2007 Apr 18
3
[PATCH 1/4] x86 paravirt_ops: create no_paravirt.h for native ops
...; #include <asm/page.h> #include <linux/compiler.h> +#include <asm/paravirt.h> /* * Your basic SMP spinlocks, allowing only a single CPU anywhere @@ -16,9 +17,6 @@ * * (the type definitions are in asm/spinlock_types.h) */ - -#define CLI_STRING "cli" -#define STI_STRING "sti" #define __raw_spin_is_locked(x) \ (*(volatile signed char *)(&(x)->slock) <= 0) =================================================================== --- a/include/asm-i386/system.h +++ b/include/asm-i386/system.h @@ -5,6 +5,7 @@ #include <asm/segment.h> #inclu...
2007 Apr 18
5
[PATCH] paravirt.h
...========================================= --- a/include/asm-i386/spinlock.h +++ b/include/asm-i386/spinlock.h @@ -17,8 +17,12 @@ * (the type definitions are in asm/spinlock_types.h) */ +#ifdef CONFIG_PARAVIRT +#include <asm/paravirt.h> +#else #define CLI_STRING "cli" #define STI_STRING "sti" +#endif /* CONFIG_PARAVIRT */ #define __raw_spin_is_locked(x) \ (*(volatile signed char *)(&(x)->slock) <= 0) =================================================================== --- a/include/asm-i386/system.h +++ b/include/asm-i386/system.h @@ -82,6 +82,9 @@ __asm__...
2007 Apr 18
5
[PATCH] paravirt.h
...========================================= --- a/include/asm-i386/spinlock.h +++ b/include/asm-i386/spinlock.h @@ -17,8 +17,12 @@ * (the type definitions are in asm/spinlock_types.h) */ +#ifdef CONFIG_PARAVIRT +#include <asm/paravirt.h> +#else #define CLI_STRING "cli" #define STI_STRING "sti" +#endif /* CONFIG_PARAVIRT */ #define __raw_spin_is_locked(x) \ (*(volatile signed char *)(&(x)->slock) <= 0) =================================================================== --- a/include/asm-i386/system.h +++ b/include/asm-i386/system.h @@ -82,6 +82,9 @@ __asm__...
2007 Apr 18
8
[PATCH 0/7] x86 paravirtualization infrastructure
The following patches introduce the core infrastructure needed to paravirtualize the 32-bit x86 Linux kernel. This is done by moving virtualization sensitive insn's or code paths to a function table, paravirt_ops. This structure can be populated with hypervisor specific calls or native stubs and currently support running on bare metal, VMI, Xen, or Lhype. These patches apply to
2007 Apr 18
8
[PATCH 0/7] x86 paravirtualization infrastructure
The following patches introduce the core infrastructure needed to paravirtualize the 32-bit x86 Linux kernel. This is done by moving virtualization sensitive insn's or code paths to a function table, paravirt_ops. This structure can be populated with hypervisor specific calls or native stubs and currently support running on bare metal, VMI, Xen, or Lhype. These patches apply to
2007 Apr 18
0
[PATCH] paravirt_ops x86_64 , take 2
...*/ static inline unsigned long __raw_local_save_flags(void) { unsigned long f; @@ -533,18 +555,12 @@ static inline unsigned long __raw_local_ return f; } +#define CLI_STRING paravirt_alt("call *paravirt_ops+%c[irq_disable];", \ + PARAVIRT_IRQ_DISABLE, CLBR_NONE) +#define STI_STRING paravirt_alt("call *paravirt_ops+%c[irq_enable];", \ + PARAVIRT_IRQ_ENABLE, CLBR_NONE) -/* Still x86-ish */ -#define CLI_STRING paravirt_alt("pushq %%rcx; pushq %%rdx;" \ - "call *paravirt_ops+%c[irq_disable];" \ - "popq %%rdx; popq %%rcx&quo...
2007 Apr 18
0
[PATCH] paravirt_ops x86_64 , take 2
...*/ static inline unsigned long __raw_local_save_flags(void) { unsigned long f; @@ -533,18 +555,12 @@ static inline unsigned long __raw_local_ return f; } +#define CLI_STRING paravirt_alt("call *paravirt_ops+%c[irq_disable];", \ + PARAVIRT_IRQ_DISABLE, CLBR_NONE) +#define STI_STRING paravirt_alt("call *paravirt_ops+%c[irq_enable];", \ + PARAVIRT_IRQ_ENABLE, CLBR_NONE) -/* Still x86-ish */ -#define CLI_STRING paravirt_alt("pushq %%rcx; pushq %%rdx;" \ - "call *paravirt_ops+%c[irq_disable];" \ - "popq %%rdx; popq %%rcx&quo...
2007 Apr 18
8
[patch 0/8] Basic infrastructure patches for a paravirtualized kernel
Hi Andrew, This series of patches lays the basic ground work for the paravirtualized kernel patches coming later on. I think this lot is ready for the rough-and-tumble world of the -mm tree. The main change from the last posting is that all the page-table related patches have been moved out, and will be posted separately. Also, the off-by-one in reserving the top of address space has been
2007 Apr 18
8
[patch 0/8] Basic infrastructure patches for a paravirtualized kernel
Hi Andrew, This series of patches lays the basic ground work for the paravirtualized kernel patches coming later on. I think this lot is ready for the rough-and-tumble world of the -mm tree. The main change from the last posting is that all the page-table related patches have been moved out, and will be posted separately. Also, the off-by-one in reserving the top of address space has been
2007 Apr 18
2
[PATCH 1/3] Paravirtualization: Kernel Ring Cleanups
Hi all, I've been looking at finding common ground between the VMI, Xen and other paravirtualization approaches, and after some discussion, we're getting somewhere. These first two patches are the fundamentals, stolen mainly from the VMI patches: removing assumptions about the kernel running in ring 0, and macro-izing all the obvious para-virtualize-needing insns. The third patch is