search for: cpu_relax_yield

Displaying 20 results from an estimated 20 matches for "cpu_relax_yield".

2016 Nov 16
2
[PATCH 1/1] sched: provide common cpu_relax_yield definition
No need to duplicate the same define everywhere. Since the only user is stop-machine and the only provider is s390, we can use a default implementation of cpu_relax_yield in sched.h. Suggested-by: Russell King <linux at armlinux.org.uk> Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> --- arch/alpha/include/asm/processor.h | 1 - arch/arc/include/asm/processor.h | 3 --- arch/arm/include/asm/processor.h | 2 -- arch/a...
2016 Nov 16
2
[PATCH 1/1] sched: provide common cpu_relax_yield definition
No need to duplicate the same define everywhere. Since the only user is stop-machine and the only provider is s390, we can use a default implementation of cpu_relax_yield in sched.h. Suggested-by: Russell King <linux at armlinux.org.uk> Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> --- arch/alpha/include/asm/processor.h | 1 - arch/arc/include/asm/processor.h | 3 --- arch/arm/include/asm/processor.h | 2 -- arch/a...
2016 Oct 25
0
[GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield
...the hypervisor to give up the timeslice. In contrast to the SMT yielding this can result in larger latencies. In some places this latency is unwanted, so another variant "cpu_relax_lowlatency" was introduced. Before this is used in more and more places, lets revert the logic and provide a cpu_relax_yield that can be called in places where yielding is more important than latency. By default this is the same as cpu_relax on all architectures. Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> --- arch/alpha/include/asm/processor.h | 1 + arch/arc/include/asm/processor.h...
2016 Oct 25
7
[GIT PULL v2 0/5] cpu_relax: drop lowlatency, introduce yield
...the hypervisor to give up the timeslice. In contrast to the SMT yielding this can result in larger latencies. In some places this latency is unwanted, so another variant "cpu_relax_lowlatency" was introduced. Before this is used in more and more places, lets revert the logic and provide a cpu_relax_yield that can be called in places where yielding is more important than latency. By default this is the same as cpu_relax on all architectures. So my proposal boils down to: - lowest latency: use barrier() or mb() if necessary - low latency: use cpu_relax (e.g. might give up some cpu for the other _h...
2016 Oct 25
7
[GIT PULL v2 0/5] cpu_relax: drop lowlatency, introduce yield
...the hypervisor to give up the timeslice. In contrast to the SMT yielding this can result in larger latencies. In some places this latency is unwanted, so another variant "cpu_relax_lowlatency" was introduced. Before this is used in more and more places, lets revert the logic and provide a cpu_relax_yield that can be called in places where yielding is more important than latency. By default this is the same as cpu_relax on all architectures. So my proposal boils down to: - lowest latency: use barrier() or mb() if necessary - low latency: use cpu_relax (e.g. might give up some cpu for the other _h...
2016 Oct 25
0
[GIT PULL v2 5/5] processor.h: remove cpu_relax_lowlatency
...--git a/arch/alpha/include/asm/processor.h b/arch/alpha/include/asm/processor.h index 0556fda..31e8dbe 100644 --- a/arch/alpha/include/asm/processor.h +++ b/arch/alpha/include/asm/processor.h @@ -59,7 +59,6 @@ unsigned long get_wchan(struct task_struct *p); #define cpu_relax() barrier() #define cpu_relax_yield() cpu_relax() -#define cpu_relax_lowlatency() cpu_relax() #define ARCH_HAS_PREFETCH #define ARCH_HAS_PREFETCHW diff --git a/arch/arc/include/asm/processor.h b/arch/arc/include/asm/processor.h index 6c158d5..d102a49 100644 --- a/arch/arc/include/asm/processor.h +++ b/arch/arc/include/asm/process...
2016 Nov 15
2
[GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield
...ve up the timeslice. > In contrast to the SMT yielding this can result in larger latencies. > In some places this latency is unwanted, so another variant > "cpu_relax_lowlatency" was introduced. Before this is used in more > and more places, lets revert the logic and provide a cpu_relax_yield > that can be called in places where yielding is more important than > latency. By default this is the same as cpu_relax on all architectures. Rather than having to update all these architectures in this way, can't we put in some linux/*.h header something like: #ifndef cpu_relax_yield...
2016 Nov 15
2
[GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield
...ve up the timeslice. > In contrast to the SMT yielding this can result in larger latencies. > In some places this latency is unwanted, so another variant > "cpu_relax_lowlatency" was introduced. Before this is used in more > and more places, lets revert the logic and provide a cpu_relax_yield > that can be called in places where yielding is more important than > latency. By default this is the same as cpu_relax on all architectures. Rather than having to update all these architectures in this way, can't we put in some linux/*.h header something like: #ifndef cpu_relax_yield...
2016 Nov 15
1
[GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield
...n contrast to the SMT yielding this can result in larger latencies. > >> In some places this latency is unwanted, so another variant > >> "cpu_relax_lowlatency" was introduced. Before this is used in more > >> and more places, lets revert the logic and provide a cpu_relax_yield > >> that can be called in places where yielding is more important than > >> latency. By default this is the same as cpu_relax on all architectures. > > > > Rather than having to update all these architectures in this way, can't > > we put in some linux/*.h...
2016 Nov 15
1
[GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield
...n contrast to the SMT yielding this can result in larger latencies. > >> In some places this latency is unwanted, so another variant > >> "cpu_relax_lowlatency" was introduced. Before this is used in more > >> and more places, lets revert the logic and provide a cpu_relax_yield > >> that can be called in places where yielding is more important than > >> latency. By default this is the same as cpu_relax on all architectures. > > > > Rather than having to update all these architectures in this way, can't > > we put in some linux/*.h...
2016 Nov 15
0
[GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield
...ice. >> In contrast to the SMT yielding this can result in larger latencies. >> In some places this latency is unwanted, so another variant >> "cpu_relax_lowlatency" was introduced. Before this is used in more >> and more places, lets revert the logic and provide a cpu_relax_yield >> that can be called in places where yielding is more important than >> latency. By default this is the same as cpu_relax on all architectures. > > Rather than having to update all these architectures in this way, can't > we put in some linux/*.h header something like: &g...
2016 Nov 15
0
[GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield
...t to the SMT yielding this can result in larger latencies. >>>> In some places this latency is unwanted, so another variant >>>> "cpu_relax_lowlatency" was introduced. Before this is used in more >>>> and more places, lets revert the logic and provide a cpu_relax_yield >>>> that can be called in places where yielding is more important than >>>> latency. By default this is the same as cpu_relax on all architectures. >>> >>> Rather than having to update all these architectures in this way, can't >>> we put in s...
2016 Oct 21
3
[PATCH 2/5] stop_machine: yield CPU during stop machine
On Fri, Oct 21, 2016 at 01:58:55PM +0200, Christian Borntraeger wrote: > stop_machine can take a very long time if the hypervisor does > overcommitment for guest CPUs. When waiting for "the one", lets > give up our CPU by using the new cpu_relax_yield. This seems something that would apply to most other virt stuff. Lets Cc a few more lists for that. > Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> > --- > kernel/stop_machine.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/k...
2016 Oct 21
3
[PATCH 2/5] stop_machine: yield CPU during stop machine
On Fri, Oct 21, 2016 at 01:58:55PM +0200, Christian Borntraeger wrote: > stop_machine can take a very long time if the hypervisor does > overcommitment for guest CPUs. When waiting for "the one", lets > give up our CPU by using the new cpu_relax_yield. This seems something that would apply to most other virt stuff. Lets Cc a few more lists for that. > Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> > --- > kernel/stop_machine.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/k...
2016 Oct 25
0
[GIT PULL v2 3/5] s390: make cpu_relax a barrier again
stop_machine seemed to be the only important place for yielding during cpu_relax. This was fixed by using cpu_relax_yield. Therefore, we can now redefine cpu_relax to be a barrier instead on s390, making s390 identical to all other architectures. Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> --- arch/s390/include/asm/processor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --g...
2016 Oct 22
1
[PATCH 2/5] stop_machine: yield CPU during stop machine
...nfradead.org> wrote: > On Fri, Oct 21, 2016 at 01:58:55PM +0200, Christian Borntraeger wrote: > > stop_machine can take a very long time if the hypervisor does > > overcommitment for guest CPUs. When waiting for "the one", lets > > give up our CPU by using the new cpu_relax_yield. > > This seems something that would apply to most other virt stuff. Lets Cc > a few more lists for that. > > > Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> > > --- > > kernel/stop_machine.c | 2 +- > > 1 file changed, 1 insertion(+...
2016 Oct 24
0
[PATCH 2/5] stop_machine: yield CPU during stop machine
...rote: > >> On Fri, Oct 21, 2016 at 01:58:55PM +0200, Christian Borntraeger wrote: >>> stop_machine can take a very long time if the hypervisor does >>> overcommitment for guest CPUs. When waiting for "the one", lets >>> give up our CPU by using the new cpu_relax_yield. >> >> This seems something that would apply to most other virt stuff. Lets Cc >> a few more lists for that. >> >>> Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> >>> --- >>> kernel/stop_machine.c | 2 +- >>> 1 f...
2016 Oct 21
1
[PATCH/RFC 0/5] cpu_relax: introduce yield, remove lowlatency
...ce to the hypervisor. On power cpu_relax >> tries to give some of the CPU to the neighbor threads. To reduce the >> latency another variant cpu_relax_lowlatency was introduced. Before this >> is used in more and more places, lets revert the logic of provide a new >> function cpu_relax_yield that can spend some time and for s390 yields >> the guest CPU. > > Sparc64, fwiw, behaves similarly to powerpc. As sparc currently defines cpu_relax_lowlatency to cpu_relax, this patch set should be a no-op then for sparc, correct? My intend was that cpu_relax should not add a huge l...
2016 Oct 25
0
[GIT PULL v2 2/5] stop_machine: yield CPU during stop machine
...4d92f50249eb ("s390: reintroduce diag 44 calls for cpu_relax()"), but in fact the stop machine code seems to be the only place where this yielding was really necessary. This place is probably the most important one as it makes all but one guest CPUs wait for one guest CPU. As we now have cpu_relax_yield, we can use this in multi_cpu_stop. For now lets only add it here. We can add it later in other places when necessary. Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com> --- kernel/stop_machine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/stop_m...
2016 Oct 21
1
[PATCH/RFC 0/5] cpu_relax: introduce yield, remove lowlatency
...ce to the hypervisor. On power cpu_relax >> tries to give some of the CPU to the neighbor threads. To reduce the >> latency another variant cpu_relax_lowlatency was introduced. Before this >> is used in more and more places, lets revert the logic of provide a new >> function cpu_relax_yield that can spend some time and for s390 yields >> the guest CPU. > > Sparc64, fwiw, behaves similarly to powerpc. As sparc currently defines cpu_relax_lowlatency to cpu_relax, this patch set should be a no-op then for sparc, correct? My intend was that cpu_relax should not add a huge l...