Displaying 2 results from an estimated 2 matches for "_vcpuf_blocked".
2006 Mar 10
12
[PATCH] Add SCHEDOP_block_on
...tly-executing domain until a pertinent event occurs. */
-static long do_block(void)
+static void do_block(void)
{
struct vcpu *v = current;
@@ -258,6 +258,32 @@
/* Check for events /after/ blocking: avoids wakeup waiting race. */
if ( event_pending(v) )
+ {
+ clear_bit(_VCPUF_blocked, &v->vcpu_flags);
+ }
+ else
+ {
+ TRACE_2D(TRC_SCHED_BLOCK, v->domain->domain_id, v->vcpu_id);
+ __enter_scheduler();
+ }
+}
+
+/*
+ * Block the currently-executing domain without enabling interrupts, for a
+ * particular evtchn. Whilst we check for a part...
2006 Oct 04
0
[PATCH,RFC 6/17] 32-on-64 shared info handling
...d = v->domain;
+ evtchn_port_t port;
+ long rc = 0;
+ unsigned int i;
/* Fairly arbitrary limit. */
if ( sched_poll->nr_ports > 128 )
@@ -292,7 +293,7 @@ static long do_poll(struct sched_poll *s
/* These operations must occur in order. */
set_bit(_VCPUF_blocked, &v->vcpu_flags);
set_bit(_VCPUF_polling, &v->vcpu_flags);
- set_bit(_DOMF_polling, &v->domain->domain_flags);
+ set_bit(_DOMF_polling, &d->domain_flags);
/* Check for events /after/ setting flags: avoids wakeup waiting race. */
for ( i = 0; i &...