xen: add sched_unit_pause_nosync() and sched_unit_unpause()

The credit scheduler calls vcpu_pause_nosync() and vcpu_unpause()
today. Add sched_unit_pause_nosync() and sched_unit_unpause() to
perform the same operations on scheduler units instead.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Dario Faggioli <dfaggioli@suse.com>
This commit is contained in:
Juergen Gross authored and Jan Beulich committed 2019-09-27 15:32:22 +02:00
1 parent 2a404605e9
commit b218ad9f97
2 files changed
+19 -3

No files matched your search

+3 -3
View File
@@ -1065,7 +1065,7 @@ csched_unit_remove(const struct scheduler *ops, struct sched_unit *unit)
if ( test_and_clear_bit(CSCHED_FLAG_UNIT_PARKED, &svc->flags) )
{
SCHED_STAT_CRANK(unit_unpark);
vcpu_unpause(svc->unit->vcpu_list);
sched_unit_unpause(svc->unit);
}
spin_lock_irq(&prv->lock);
@@ -1515,7 +1515,7 @@ csched_acct(void* dummy)
!test_and_set_bit(CSCHED_FLAG_UNIT_PARKED, &svc->flags) )
{
SCHED_STAT_CRANK(unit_park);
vcpu_pause_nosync(svc->unit->vcpu_list);
sched_unit_pause_nosync(svc->unit);
}
/* Lower bound on credits */
@@ -1539,7 +1539,7 @@ csched_acct(void* dummy)
* if it is woken up here.
*/
SCHED_STAT_CRANK(unit_unpark);
vcpu_unpause(svc->unit->vcpu_list);
sched_unit_unpause(svc->unit);
clear_bit(CSCHED_FLAG_UNIT_PARKED, &svc->flags);
}
+16
View File
@@ -466,6 +466,22 @@ static inline int sched_adjust_cpupool(const struct scheduler *s,
return s->adjust_global ? s->adjust_global(s, op) : 0;
}
static inline void sched_unit_pause_nosync(const struct sched_unit *unit)
{
struct vcpu *v;
for_each_sched_unit_vcpu ( unit, v )
vcpu_pause_nosync(v);
}
static inline void sched_unit_unpause(const struct sched_unit *unit)
{
struct vcpu *v;
for_each_sched_unit_vcpu ( unit, v )
vcpu_unpause(v);
}
#define REGISTER_SCHEDULER(x) static const struct scheduler *x##_entry \
__used_section(".data.schedulers") = &x;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.