Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1580052
| From | hpa@zytor.com |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function |
| Date | 2017-02-13 21:20 +0100 |
| Message-ID | <tavgm-8uf-3@gated-at.bofh.it> (permalink) |
| References | (1 earlier) <t9mf8-5Nv-21@gated-at.bofh.it> <t9mRR-6is-25@gated-at.bofh.it> <t9mRQ-6is-23@gated-at.bofh.it> <tammL-2yB-43@gated-at.bofh.it> <tamwq-2Cb-11@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On February 13, 2017 2:53:43 AM PST, Peter Zijlstra <peterz@infradead.org> wrote:
>On Mon, Feb 13, 2017 at 11:47:16AM +0100, Peter Zijlstra wrote:
>> That way we'd end up with something like:
>>
>> asm("
>> push %rdi;
>> movslq %edi, %rdi;
>> movq __per_cpu_offset(,%rdi,8), %rax;
>> cmpb $0, %[offset](%rax);
>> setne %al;
>> pop %rdi;
>> " : : [offset] "i" (((unsigned long)&steal_time) + offsetof(struct
>steal_time, preempted)));
>>
>> And if we could get rid of the sign extend on edi we could avoid all
>the
>> push-pop nonsense, but I'm not sure I see how to do that (then again,
>> this asm foo isn't my strongest point).
>
>Maybe:
>
>movsql %edi, %rax;
>movq __per_cpu_offset(,%rax,8), %rax;
>cmpb $0, %[offset](%rax);
>setne %al;
>
>?
We could kill the zero or sign extend by changing the calling interface to pass an unsigned long instead of an int. It is much more likely that a zero extend is free for the caller than a sign extend.
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-10 17:00 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Paolo Bonzini <pbonzini@redhat.com> - 2017-02-10 17:30 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Peter Zijlstra <peterz@infradead.org> - 2017-02-10 17:30 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-10 18:10 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Peter Zijlstra <peterz@infradead.org> - 2017-02-13 11:50 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Peter Zijlstra <peterz@infradead.org> - 2017-02-13 12:00 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-13 20:50 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-13 21:20 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Peter Zijlstra <peterz@infradead.org> - 2017-02-13 23:00 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function hpa@zytor.com - 2017-02-13 23:10 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function hpa@zytor.com - 2017-02-13 23:20 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-13 23:40 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function hpa@zytor.com - 2017-02-13 23:50 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Peter Zijlstra <peterz@infradead.org> - 2017-02-14 10:50 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-14 15:50 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Peter Zijlstra <peterz@infradead.org> - 2017-02-14 17:10 +0100
Re: [Xen-devel] [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Andrew Cooper <andrew.cooper3@citrix.com> - 2017-02-14 17:20 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function hpa@zytor.com - 2017-02-13 21:20 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Peter Zijlstra <peterz@infradead.org> - 2017-02-13 23:00 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-13 23:30 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Peter Zijlstra <peterz@infradead.org> - 2017-02-13 23:40 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-13 20:50 +0100
Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function Waiman Long <longman@redhat.com> - 2017-02-10 19:10 +0100
csiph-web