Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1580052

Re: [PATCH v2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function

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

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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