[Xen-devel] [PATCH v2 2/2] xen: sched: rtds: use non-atomic bit-ops

2016-06-25 Thread Tianyang Chen
Vcpu flags are checked and cleared atomically. Performance can be improved with corresponding non-atomic versions since schedule.c already has spin_locks in place. Signed-off-by: Tianyang Chen --- Changes since v1: -none --- xen/common/sched_rt.c | 16 1 file changed, 8

[Xen-devel] [PATCH v2 0/2] xen: sched: rtds clean-up

2016-06-25 Thread Tianyang Chen
?do=post_view_threaded#431251 Tianyang Chen (2): xen: sched: rtds code clean-up xen: sched: rtds: use non-atomic bit-ops xen/common/sched_rt.c | 106 ++--- 1 file changed, 56 insertions(+), 50 deletions(-) -- 1.7.9.5

[Xen-devel] [PATCH v2 1/2] xen: sched: rtds code clean-up

2016-06-25 Thread Tianyang Chen
No functional change: -aligned comments in rt_vcpu struct -removed double underscores from the names of some functions -fixed coding sytle for control structures involving lists -fixed typos in the comments -added comments for UPDATE_LIMIT_SHIFT Signed-off-by: Tianyang Chen --- Changes

[Xen-devel] [PATCH 2/2] xen: sched: rtds: use non-atomic bit-ops

2016-05-15 Thread Tianyang Chen
Vcpu flags are checked and cleared atomically. Performance can be improved with corresponding non-atomic versions since schedule.c already has spin_locks in place. Signed-off-by: Tianyang Chen --- xen/common/sched_rt.c | 16 1 file changed, 8 insertions(+), 8 deletions

[Xen-devel] [PATCH 1/2] xen: sched: rtds refactor code

2016-05-15 Thread Tianyang Chen
No functional change: -Various coding style fix -Added comments for UPDATE_LIMIT_SHIFT. Signed-off-by: Tianyang Chen --- xen/common/sched_rt.c | 106 ++--- 1 file changed, 56 insertions(+), 50 deletions(-) diff --git a/xen/common/sched_rt.c b/xen

[Xen-devel] [PATCH 0/2] xen: sched: rtds refactor code

2016-05-15 Thread Tianyang Chen
schedule.c. Discussions: http://lists.xenproject.org/archives/html/xen-devel/2016-03/msg01528.html http://www.gossamer-threads.com/lists/xen/devel/431251?do=post_view_threaded#431251 Tianyang Chen (2): xen: sched: rtds refactor code xen: sched: rtds: use non-atomic bit-ops xen/common

[Xen-devel] [PATCH] xen: sched: rtds: refactor code

2016-05-11 Thread Tianyang Chen
: Dario Faggioli Signed-off-by: Tianyang Chen --- xen/common/sched_rt.c | 122 ++--- 1 file changed, 64 insertions(+), 58 deletions(-) diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c index 7f8f411..1a18f6d 100644 --- a/xen/common/sched_rt.c

[Xen-devel] [PATCH v10]xen: sched: convert RTDS from time to event driven model

2016-03-20 Thread Tianyang Chen
tickles various vcpus appropriately, like all other schedulers do. Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- changes since v9: Re-worded some of the comments Fixed the wrong returned value from rt_schedule(). changes since v8: Replaced

[Xen-devel] [PATCH v11]xen: sched: convert RTDS from time to event driven model

2016-03-19 Thread Tianyang Chen
enough to tickle the various CPUs appropriately, like all other schedulers also do. Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- changes since v10: Re-worded commit messages. Moved helper macros to where they belong. changes since v9: Re-worded

[Xen-devel] [PATCH v9]xen: sched: convert RTDS from time to event driven model

2016-03-14 Thread Tianyang Chen
) }> program_timer() [spin_lock] Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- changes since v8: Replaced spin_lock_irqsave with spin_lock_irq. Bug fix in burn_budget() where budget == 0. Removed unnecessary tickling in the timer hand

[Xen-devel] [PATCH v8]xen: sched: convert RTDS from time to event driven model

2016-03-11 Thread Tianyang Chen
) }> program_timer() [spin_lock] Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- changes since v7: Coding sytle. Added a flag to indicate that a vcpu was depleted. Added a local list including updated vcpus in the timer handler. It is u

[Xen-devel] [PATCH v7]xen: sched: convert RTDS from time to event driven model

2016-03-04 Thread Tianyang Chen
) }> program_timer() [spin_lock] Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- changes since v6: Removed unnecessary vcpu_on_q() checks for runq_insert() Renamed replenishment queue related functions without undersco

Re: [Xen-devel] [PATCH v6][RFC]xen: sched: convert RTDS from time to event driven model

2016-02-26 Thread Tianyang Chen
On 2/26/2016 4:11 AM, Dario Faggioli wrote: It looks like the current code doesn't add a vcpu to the replenishment queue when vcpu_insert() is called. When the scheduler is initialized, all the vcpus are added to the replenishment queue after waking up from sleep. This needs to be changed (add

Re: [Xen-devel] [PATCH v6][RFC]xen: sched: convert RTDS from time to event driven model

2016-02-25 Thread Tianyang Chen
RFC means request for comments and it should always be used because indeed, I'm asking for comments. On Thu, 2016-02-25 at 15:05 -0500, Tianyang Chen wrote: changes since v5: removed unnecessary vcpu_on_replq() checks deadline_queue_insert() returns a flag to indicate if it'

[Xen-devel] [PATCH v6][RFC]xen: sched: convert RTDS from time to event driven model

2016-02-25 Thread Tianyang Chen
FTIRQ replenishment_timer_handler() [spin_lock] { replenish(i) runq_tickle(i) }> program_timer() [spin_lock] Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- xen/common/sched_rt.

Re: [Xen-devel] [PATCH v5][RFC]xen: sched: convert RTDS from time to event driven model

2016-02-25 Thread Tianyang Chen
On 2/25/2016 5:34 AM, Dario Faggioli wrote: + * it should be re-inserted back to the replenishment queue. + */ +if ( now >= svc->cur_deadline) +{ +rt_update_deadline(now, svc); +__replq_remove(ops, svc); +} + +if( !__vcpu_on_replq(svc) ) +__replq_

Re: [Xen-devel] [PATCH v5][RFC]xen: sched: convert RTDS from time to event driven model

2016-02-24 Thread Tianyang Chen
On 2/24/2016 9:02 PM, Dario Faggioli wrote: Hey, Here I am, sorry for the delay. :-( No problem, I think we are almost there. On Mon, 2016-02-08 at 23:33 -0500, Tianyang Chen wrote: Changes since v4: removed unnecessary replenishment queue checks in vcpu_wake() extended

Re: [Xen-devel] [PATCH v5][RFC]xen: sched: convert RTDS from time to event driven model

2016-02-24 Thread Tianyang Chen
Hey Dario: We are aiming for the next release and would appreciate it if you can leave some comments on this version. Thanks. Tianyang On 2/8/2016 11:33 PM, Tianyang Chen wrote: Changes since v4: removed unnecessary replenishment queue checks in vcpu_wake() extended replq_remove

Re: [Xen-devel] [PATCH v5][RFC]xen: sched: convert RTDS from time to event driven model

2016-02-17 Thread Tianyang Chen
On 2/15/2016 10:55 PM, Meng Xu wrote: Hi Tianyang, Thanks for the patch! Great work and really quick action! :-) I will just comment on something I quickly find out and would look forwarding to Dario's comment. On Mon, Feb 8, 2016 at 11:33 PM, Tianyang Chen mailto:ti...@seas.upen

[Xen-devel] [PATCH v5][RFC]xen: sched: convert RTDS from time to event driven model

2016-02-08 Thread Tianyang Chen
: removed running queue. added repl queue to keep track of repl events. timer is now per scheduler. timer is init on a valid cpu in a cpupool. Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- xen/common/sched_rt.c | 337

Re: [Xen-devel] [PATCH v4] xen: sched: convert RTDS from time to event driven model

2016-02-08 Thread Tianyang Chen
On 2/8/2016 6:27 AM, Dario Faggioli wrote: On Fri, 2016-02-05 at 23:27 -0500, Tianyang Chen wrote: On 2/5/2016 9:39 AM, Dario Faggioli wrote: On Wed, 2016-02-03 at 21:23 -0500, Tianyang Chen wrote: I see. So I'm just curious what can cause spurious wakeup? Does it only happen

Re: [Xen-devel] [PATCH v4] xen: sched: convert RTDS from time to event driven model

2016-02-05 Thread Tianyang Chen
On 2/5/2016 9:39 AM, Dario Faggioli wrote: On Wed, 2016-02-03 at 21:23 -0500, Tianyang Chen wrote: On 2/3/2016 7:39 AM, Dario Faggioli wrote: On Tue, 2016-02-02 at 13:09 -0500, Tianyang Chen wrote: So what do we do, we raise the *_delayed_runq_add flag and continue and leave the vcpu

Re: [Xen-devel] [PATCH v4] xen: sched: convert RTDS from time to event driven model

2016-02-03 Thread Tianyang Chen
On 2/3/2016 7:39 AM, Dario Faggioli wrote: On Tue, 2016-02-02 at 13:09 -0500, Tianyang Chen wrote: On 2/2/2016 10:08 AM, Dario Faggioli wrote: On Sun, 2016-01-31 at 23:32 -0500, Tianyang Chen wrote: +struct rt_private *prv = rt_priv(ops); +struct list_head *replq = rt_replq(ops

Re: [Xen-devel] [Bug] sched: credit2: Assertion failed

2016-02-02 Thread Tianyang Chen
On 2/2/2016 3:29 AM, Dario Faggioli wrote: On Tue, 2016-02-02 at 01:18 -0500, Tianyang Chen wrote: The following script caused an unresponsive dom0 and it can not be reproduced all the time. The dom0 is using credit2 scheduler. #!/bin/bash xl cpupool-list -c xl cpupool-cpu-remove Pool-0 3 xl

Re: [Xen-devel] [PATCH v4] xen: sched: convert RTDS from time to event driven model

2016-02-02 Thread Tianyang Chen
On 2/2/2016 10:08 AM, Dario Faggioli wrote: On Sun, 2016-01-31 at 23:32 -0500, Tianyang Chen wrote: v4 is meant for discussion on the addition of replq. In which cases, you should always put something like RFC in the subject, so people knows what the intent is even by just skimming their

[Xen-devel] [Bug] sched: credit2: Assertion failed

2016-02-01 Thread Tianyang Chen
re a series of alloc() and free() are called. And indeed at the last free_pdata(), the assertion fails. Both of them happen on 4.7 unstable, git:2e46e3f Any idea on this is appreciated. -- Tianyang Chen Xen 4.7-unstable (XEN) Xen version 4.7-unstable (root@) (gcc (Ubuntu/Linaro 4.6.3-1ubuntu5)

[Xen-devel] [PATCH v4] xen: sched: convert RTDS from time to event driven model

2016-01-31 Thread Tianyang Chen
removed from a pool and added to another, the lock equality assert in free_pdata() fails when Pool-0 is using rtds. This patch is based on master branch after commit 2e46e3 x86/mce: fix misleading indentation in init_nonfatal_mce_checker() Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu

Re: [Xen-devel] [PATCH V2 1/1] Improved RTDS scheduler

2016-01-29 Thread Tianyang Chen
On 1/26/2016 12:28 PM, Meng Xu wrote: Hi Dario and Tianyang, On Tue, Jan 26, 2016 at 9:06 AM, Dario Faggioli wrote: On Mon, 2016-01-25 at 18:00 -0500, Meng Xu wrote: On Mon, Jan 25, 2016 at 5:04 PM, Tianyang Chen wrote: I have removed some of the Ccs so they won't get bothered

Re: [Xen-devel] [PATCH V2 1/1] Improved RTDS scheduler

2016-01-25 Thread Tianyang Chen
I have removed some of the Ccs so they won't get bothered as we discussed previously. On 1/25/2016 4:00 AM, Dario Faggioli wrote: On Thu, 2015-12-31 at 05:20 -0500, Tianyang Chen wrote: @@ -147,6 +148,16 @@ static unsigned int nr_rt_ops; * Global lock is referenc

Re: [Xen-devel] [PATCH v3 1/1] xen: sched: convert RTDS from time to event driven model

2016-01-21 Thread Tianyang Chen
On 1/21/2016 11:06 PM, Tianyang Chen wrote: Budget replenishment and enforcement are separated by adding a replenishment timer, which fires at the next most imminent release time of all runnable vcpus. A new runningq has been added to keep track of all vcpus that are on pcpus. The following

[Xen-devel] [PATCH v3 1/1] xen: sched: convert RTDS from time to event driven model

2016-01-21 Thread Tianyang Chen
) }> program_timer() [spin_lock] Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- xen/common/sched_rt.c | 291 - 1 file changed, 213 insertions(+), 78 deletions(-) diff --git a/xen/common/sched_rt.c b/xen/com

[Xen-devel] [PATCH v3 0/1] xen: sched: convert RTDS from time to event driven model

2016-01-21 Thread Tianyang Chen
between a vcpu tickles and a pcpu actually picks it. As previous discussions, this is unavoidable. Previous discussions: http://lists.xenproject.org/archives/html/xen-devel/2015-06/msg02629.html Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb Tianyang Chen

Re: [Xen-devel] Questions about the use of idle_vcpu[]

2016-01-19 Thread Tianyang Chen
On 1/18/2016 11:07 AM, Meng Xu wrote: On Mon, Jan 18, 2016 at 6:00 AM, Dario Faggioli wrote: On Mon, 2016-01-18 at 10:47 +, George Dunlap wrote: On Fri, Jan 15, 2016 at 1:04 AM, Tianyang Chen If an idle vcpu is picked, the ret.time is set accordingly in both credit and credit2 by

Re: [Xen-devel] [PATCH V2 1/1] Improved RTDS scheduler

2016-01-19 Thread Tianyang Chen
On 1/15/2016 10:33 AM, Meng Xu wrote: On Wed, Jan 6, 2016 at 2:57 AM, Tianyang Chen wrote: On 12/31/2015 8:44 AM, Meng Xu wrote: On Thu, Dec 31, 2015 at 6:20 PM, Tianyang Chen wrote: Budget replenishment is now handled by a dedicated timer which is triggered at the most imminent

[Xen-devel] Questions about the use of idle_vcpu[]

2016-01-14 Thread Tianyang Chen
nd the scheduler would be invoked again. What is the logic behind this? I'd appreciate it if anyone could point me to the right direction. Thanks, Tianyang Chen ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel

Re: [Xen-devel] [PATCH V2 1/1] Improved RTDS scheduler

2016-01-05 Thread Tianyang Chen
On 12/31/2015 8:44 AM, Meng Xu wrote: On Thu, Dec 31, 2015 at 6:20 PM, Tianyang Chen wrote: Budget replenishment is now handled by a dedicated timer which is triggered at the most imminent release time of all runnable vcpus. Changes since V1: None Signed-off-by: Tianyang Chen Signed

Re: [Xen-devel] [PATCH 1/1] Improved RTDS scheduler

2016-01-05 Thread Tianyang Chen
On 1/4/2016 9:36 AM, Dario Faggioli wrote: On Mon, 2016-01-04 at 21:48 +0800, Meng Xu wrote: On Mon, Jan 4, 2016 at 7:42 PM, Ian Campbell wrote: On Thu, 2015-12-31 at 04:45 -0500, Tianyang Chen wrote: Budget replenishment is now handled by a dedicated timer which is triggered at the most

[Xen-devel] [PATCH 1/1] Improved RTDS scheduler

2015-12-31 Thread Tianyang Chen
Budget replenishment is now handled by a dedicated timer which is triggered at the most imminent release time of all runnable vcpus. Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- -cover-letter.patch| 16 +++ 0001-Improved-RTDS

[Xen-devel] [PATCH V2 1/1] Improved RTDS scheduler

2015-12-31 Thread Tianyang Chen
Budget replenishment is now handled by a dedicated timer which is triggered at the most imminent release time of all runnable vcpus. Changes since V1: None Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb --- xen/common/sched_rt.c | 159

[Xen-devel] [PATCH 0/1] Improved RTDS scheduler

2015-12-31 Thread Tianyang Chen
is unavoidable. Previous discussions: http://lists.xenproject.org/archives/html/xen-devel/2015-06/msg02629.html Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen Golomb *** BLURB HERE *** Tianyang Chen (1): Improved RTDS scheduler -cover-letter.patch

[Xen-devel] [PATCH V2 0/1] Improved RTDS scheduler

2015-12-31 Thread Tianyang Chen
should be noted. It happens between a vcpu tickles and a pcpu actually picks it. As previous discussions, this is unavoidable. Previous discussions: http://lists.xenproject.org/archives/html/xen-devel/2015-06/msg02629.html Signed-off-by: Tianyang Chen Signed-off-by: Meng Xu Signed-off-by: Dagaen

[Xen-devel] [PATCH] sched_rt: Improved nested virtualization performance

2015-11-18 Thread Tianyang Chen
In nested virtualization, choosing the smaller value for the time slice between the MAX_SCHEDULE and the budget will cause high host CPU usage. Signed-off-by: Tianyang Chen --- xen/common/sched_rt.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/common/sched_rt.c b