search for: get_thread_info

Displaying 20 results from an estimated 24 matches for "get_thread_info".

2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 12/17] paravirt_ops - interrupt/exception changes
...* disabled irqs, here we enable it straight after entry: */ - sti + ENABLE_INTERRUPTS(CLBR_NONE) movl %ebp,%ebp /* zero extension */ pushq $__USER32_DS CFI_ADJUST_CFA_OFFSET 8 @@ -123,7 +130,7 @@ sysenter_do_call: call *ia32_sys_call_table(,%rax,8) movq %rax,RAX-ARGOFFSET(%rsp) GET_THREAD_INFO(%r10) - cli + DISABLE_INTERRUPTS(CLBR_NONE) TRACE_IRQS_OFF testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) jnz int_ret_from_sys_call @@ -141,7 +148,7 @@ sysenter_do_call: CFI_REGISTER rip,rdx TRACE_IRQS_ON swapgs - sti /* sti only takes effect after the next instruction */ + ENABLE_IN...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 12/17] paravirt_ops - interrupt/exception changes
...* disabled irqs, here we enable it straight after entry: */ - sti + ENABLE_INTERRUPTS(CLBR_NONE) movl %ebp,%ebp /* zero extension */ pushq $__USER32_DS CFI_ADJUST_CFA_OFFSET 8 @@ -123,7 +130,7 @@ sysenter_do_call: call *ia32_sys_call_table(,%rax,8) movq %rax,RAX-ARGOFFSET(%rsp) GET_THREAD_INFO(%r10) - cli + DISABLE_INTERRUPTS(CLBR_NONE) TRACE_IRQS_OFF testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) jnz int_ret_from_sys_call @@ -141,7 +148,7 @@ sysenter_do_call: CFI_REGISTER rip,rdx TRACE_IRQS_ON swapgs - sti /* sti only takes effect after the next instruction */ + ENABLE_IN...
2007 Apr 18
0
[PATCH] paravirt_ops x86_64 , take 2
...* No need to follow this irqs off/on section - it's straight * and short: */ - sti + ENABLE_INTERRUPTS(CLBR_NONE) SAVE_ARGS 8,1 movq %rax,ORIG_RAX-ARGOFFSET(%rsp) movq %rcx,RIP-ARGOFFSET(%rsp) @@ -245,7 +253,7 @@ ret_from_sys_call: /* edi: flagmask */ sysret_check: GET_THREAD_INFO(%rcx) - cli + DISABLE_INTERRUPTS(CLBR_NONE) TRACE_IRQS_OFF movl threadinfo_flags(%rcx),%edx andl %edi,%edx @@ -261,7 +269,7 @@ sysret_check: /*CFI_REGISTER rflags,r11*/ movq %gs:pda_oldrsp,%rsp swapgs - sysretq + SYSRETQ CFI_RESTORE_STATE /* Handle reschedules */ @@ -270,7 +278,...
2007 Apr 18
0
[PATCH] paravirt_ops x86_64 , take 2
...* No need to follow this irqs off/on section - it's straight * and short: */ - sti + ENABLE_INTERRUPTS(CLBR_NONE) SAVE_ARGS 8,1 movq %rax,ORIG_RAX-ARGOFFSET(%rsp) movq %rcx,RIP-ARGOFFSET(%rsp) @@ -245,7 +253,7 @@ ret_from_sys_call: /* edi: flagmask */ sysret_check: GET_THREAD_INFO(%rcx) - cli + DISABLE_INTERRUPTS(CLBR_NONE) TRACE_IRQS_OFF movl threadinfo_flags(%rcx),%edx andl %edi,%edx @@ -261,7 +269,7 @@ sysret_check: /*CFI_REGISTER rflags,r11*/ movq %gs:pda_oldrsp,%rsp swapgs - sysretq + SYSRETQ CFI_RESTORE_STATE /* Handle reschedules */ @@ -270,7 +278,...
2013 Feb 14
2
[PATCH] x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS.
...insertions(+), 7 deletions(-) > > diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S > index f9643fc..33ca6e4 100644 > --- a/arch/x86/xen/xen-asm_32.S > +++ b/arch/x86/xen/xen-asm_32.S > @@ -89,11 +89,11 @@ ENTRY(xen_iret) > */ > #ifdef CONFIG_SMP > GET_THREAD_INFO(%eax) > - movl TI_cpu(%eax), %eax > - movl __per_cpu_offset(,%eax,4), %eax > - mov xen_vcpu(%eax), %eax > + movl %ss:TI_cpu(%eax), %eax > + movl %ss:__per_cpu_offset(,%eax,4), %eax > + mov %ss:xen_vcpu(%eax), %eax > #else > - movl xen_vcpu, %eax > + movl %ss:xen_vcpu, %e...
2013 Feb 14
2
[PATCH] x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS.
...insertions(+), 7 deletions(-) > > diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S > index f9643fc..33ca6e4 100644 > --- a/arch/x86/xen/xen-asm_32.S > +++ b/arch/x86/xen/xen-asm_32.S > @@ -89,11 +89,11 @@ ENTRY(xen_iret) > */ > #ifdef CONFIG_SMP > GET_THREAD_INFO(%eax) > - movl TI_cpu(%eax), %eax > - movl __per_cpu_offset(,%eax,4), %eax > - mov xen_vcpu(%eax), %eax > + movl %ss:TI_cpu(%eax), %eax > + movl %ss:__per_cpu_offset(,%eax,4), %eax > + mov %ss:xen_vcpu(%eax), %eax > #else > - movl xen_vcpu, %eax > + movl %ss:xen_vcpu, %e...
2007 Apr 18
1
[PATCH 2/2] Transparent privilege levels in entry.S
...x-2.6.13/arch/i386/kernel/entry.S =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/entry.S 2005-08-17 11:16:54.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/entry.S 2005-08-17 11:17:13.000000000 -0700 @@ -159,8 +159,9 @@ ret_from_intr: GET_THREAD_INFO(%ebp) movl EFLAGS(%esp), %eax # mix EFLAGS and CS movb CS(%esp), %al - testl $(VM_MASK | 3), %eax - jz resume_kernel + andl $(VM_MASK | 3), %eax + cmpl $3, %eax + jb resume_kernel ENTRY(resume_userspace) CLI # make sure we don't miss an interrupt # setting need_resched or sigp...
2007 Apr 18
1
[PATCH 2/2] Transparent privilege levels in entry.S
...x-2.6.13/arch/i386/kernel/entry.S =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/entry.S 2005-08-17 11:16:54.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/entry.S 2005-08-17 11:17:13.000000000 -0700 @@ -159,8 +159,9 @@ ret_from_intr: GET_THREAD_INFO(%ebp) movl EFLAGS(%esp), %eax # mix EFLAGS and CS movb CS(%esp), %al - testl $(VM_MASK | 3), %eax - jz resume_kernel + andl $(VM_MASK | 3), %eax + cmpl $3, %eax + jb resume_kernel ENTRY(resume_userspace) CLI # make sure we don't miss an interrupt # setting need_resched or sigp...
2007 Apr 18
0
[RFC, PATCH 11/24] i386 Vmi segment changes
...y.S =================================================================== --- linux-2.6.16-rc5.orig/arch/i386/kernel/entry.S 2006-03-08 17:10:25.000000000 -0800 +++ linux-2.6.16-rc5/arch/i386/kernel/entry.S 2006-03-08 17:10:26.000000000 -0800 @@ -145,9 +145,11 @@ ret_from_exception: ret_from_intr: GET_THREAD_INFO(%ebp) movl EFLAGS(%esp), %eax # mix EFLAGS and CS + andl $VM_MASK, %eax movb CS(%esp), %al - testl $(VM_MASK | 3), %eax - jz resume_kernel + andb $SEGMENT_RPL_MASK, %al + cmpl $SEGMENT_RPL_MASK, %eax + jb resume_kernel # returning to kernel or vm86-space ENTRY(resume_userspace) CLI # m...
2007 Apr 18
0
[RFC, PATCH 11/24] i386 Vmi segment changes
...y.S =================================================================== --- linux-2.6.16-rc5.orig/arch/i386/kernel/entry.S 2006-03-08 17:10:25.000000000 -0800 +++ linux-2.6.16-rc5/arch/i386/kernel/entry.S 2006-03-08 17:10:26.000000000 -0800 @@ -145,9 +145,11 @@ ret_from_exception: ret_from_intr: GET_THREAD_INFO(%ebp) movl EFLAGS(%esp), %eax # mix EFLAGS and CS + andl $VM_MASK, %eax movb CS(%esp), %al - testl $(VM_MASK | 3), %eax - jz resume_kernel + andb $SEGMENT_RPL_MASK, %al + cmpl $SEGMENT_RPL_MASK, %eax + jb resume_kernel # returning to kernel or vm86-space ENTRY(resume_userspace) CLI # m...
2007 Jun 06
0
[PATCH UPDATE] xen: use iret directly where possible
...en_iret_direct) + /* test eflags for special cases */ + testl $(X86_EFLAGS_VM | XEN_EFLAGS_NMI), 8(%esp) + jnz hyper_iret + + push %eax + ESP_OFFSET=4 # bytes pushed onto stack + + /* Store vcpu_info pointer for easy access. Do it this + way to avoid having to reload %fs */ +#ifdef CONFIG_SMP + GET_THREAD_INFO(%eax) + movl TI_cpu(%eax),%eax + movl __per_cpu_offset(,%eax,4),%eax + lea per_cpu__xen_vcpu_info(%eax),%eax +#else + movl $per_cpu__xen_vcpu_info, %eax +#endif + + /* check IF state we're restoring */ + testb $X86_EFLAGS_IF>>8, 8+1+ESP_OFFSET(%esp) + + /* Maybe enable events. Once this...
2007 Jun 06
0
[PATCH UPDATE] xen: use iret directly where possible
...en_iret_direct) + /* test eflags for special cases */ + testl $(X86_EFLAGS_VM | XEN_EFLAGS_NMI), 8(%esp) + jnz hyper_iret + + push %eax + ESP_OFFSET=4 # bytes pushed onto stack + + /* Store vcpu_info pointer for easy access. Do it this + way to avoid having to reload %fs */ +#ifdef CONFIG_SMP + GET_THREAD_INFO(%eax) + movl TI_cpu(%eax),%eax + movl __per_cpu_offset(,%eax,4),%eax + lea per_cpu__xen_vcpu_info(%eax),%eax +#else + movl $per_cpu__xen_vcpu_info, %eax +#endif + + /* check IF state we're restoring */ + testb $X86_EFLAGS_IF>>8, 8+1+ESP_OFFSET(%esp) + + /* Maybe enable events. Once this...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
...GS_NMI), 8(%esp) + jnz hyper_iret + + /* check IF state we're restoring */ + testb $X86_EFLAGS_IF>>8, 8+1(%esp) + + push %eax + ESP_OFFSET=4 # bytes pushed onto stack + + /* Store vcpu_info pointer for easy access. Do it this + way to avoid having to reload %fs */ +#ifdef CONFIG_SMP + GET_THREAD_INFO(%eax) + movl TI_cpu(%eax),%eax + movl __per_cpu_offset(,%eax,4),%eax + lea per_cpu__xen_vcpu_info(%eax),%eax +#else + movl $per_cpu__xen_vcpu_info, %eax +#endif + + /* Maybe enable events. Once this happens we could get a + recursive event, so the critical region starts immediately + afterwa...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
...GS_NMI), 8(%esp) + jnz hyper_iret + + /* check IF state we're restoring */ + testb $X86_EFLAGS_IF>>8, 8+1(%esp) + + push %eax + ESP_OFFSET=4 # bytes pushed onto stack + + /* Store vcpu_info pointer for easy access. Do it this + way to avoid having to reload %fs */ +#ifdef CONFIG_SMP + GET_THREAD_INFO(%eax) + movl TI_cpu(%eax),%eax + movl __per_cpu_offset(,%eax,4),%eax + lea per_cpu__xen_vcpu_info(%eax),%eax +#else + movl $per_cpu__xen_vcpu_info, %eax +#endif + + /* Maybe enable events. Once this happens we could get a + recursive event, so the critical region starts immediately + afterwa...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
...GS_NMI), 8(%esp) + jnz hyper_iret + + /* check IF state we're restoring */ + testb $X86_EFLAGS_IF>>8, 8+1(%esp) + + push %eax + ESP_OFFSET=4 # bytes pushed onto stack + + /* Store vcpu_info pointer for easy access. Do it this + way to avoid having to reload %fs */ +#ifdef CONFIG_SMP + GET_THREAD_INFO(%eax) + movl TI_cpu(%eax),%eax + movl __per_cpu_offset(,%eax,4),%eax + lea per_cpu__xen_vcpu_info(%eax),%eax +#else + movl $per_cpu__xen_vcpu_info, %eax +#endif + + /* Maybe enable events. Once this happens we could get a + recursive event, so the critical region starts immediately + afterwa...
2007 Apr 18
2
[PATCH 1/3] Paravirtualization: Kernel Ring Cleanups
...-minimal linux-2.6.17-rc2-git7/arch/i386/kernel/entry.S tmp/arch/i386/kernel/entry.S --- linux-2.6.17-rc2-git7/arch/i386/kernel/entry.S 2006-04-21 12:05:02.000000000 +1000 +++ tmp/arch/i386/kernel/entry.S 2006-05-02 16:00:17.000000000 +1000 @@ -144,9 +144,11 @@ ret_from_exception: ret_from_intr: GET_THREAD_INFO(%ebp) movl EFLAGS(%esp), %eax # mix EFLAGS and CS + andl $VM_MASK, %eax movb CS(%esp), %al - testl $(VM_MASK | 3), %eax - jz resume_kernel + andb $SEGMENT_RPL_MASK, %al + cmpl $SEGMENT_RPL_MASK, %eax + jb resume_kernel # returning to kernel or vm86-space ENTRY(resume_userspace) cli # m...
2007 Apr 18
2
[PATCH 1/3] Paravirtualization: Kernel Ring Cleanups
...-minimal linux-2.6.17-rc2-git7/arch/i386/kernel/entry.S tmp/arch/i386/kernel/entry.S --- linux-2.6.17-rc2-git7/arch/i386/kernel/entry.S 2006-04-21 12:05:02.000000000 +1000 +++ tmp/arch/i386/kernel/entry.S 2006-05-02 16:00:17.000000000 +1000 @@ -144,9 +144,11 @@ ret_from_exception: ret_from_intr: GET_THREAD_INFO(%ebp) movl EFLAGS(%esp), %eax # mix EFLAGS and CS + andl $VM_MASK, %eax movb CS(%esp), %al - testl $(VM_MASK | 3), %eax - jz resume_kernel + andb $SEGMENT_RPL_MASK, %al + cmpl $SEGMENT_RPL_MASK, %eax + jb resume_kernel # returning to kernel or vm86-space ENTRY(resume_userspace) cli # m...
2007 Apr 18
3
[PATCH 1/2] paravirt.h header
OK, this is the revised paravirt.h (Andi has seen this before), then the second is the binary patching stuff. More things get added to the paravirt struct in future patches, but this basic stuff hasn't changed for some time. ==== This patch does the dumbest possible replacement of paravirtualized instructions: calls through a "paravirt_ops" structure. Currently these are function
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