SEARCH
0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Prev | Current Page 281 | Next

David Chisnall

"The Definitive Guide to the Xen Hypervisor"


2. The event channel is masked. There are a number of reasons why this could
happen, but it is typically used to protect the non-reentrant parts of a kernel.
3. The VCPU that would handle the event has elected not to receive events.
This is often caused by an event handler in process of running.
7.8. Masking Events 131
Is the
pending bit
set?
Event
Generated
Stop
Set the pending
bit for the channel
Is the
channel
bound to a
VCPU?
Deliver event
via upcall
Are events
masked on the
VCPU?
Is there a VCPU
that doesn't have
events masked?
Set the VCPU's
pending flag
Set the VCPU's
event selector
Is the
channel
masked?
Yes
Yes
Yes
Yes
Yes No
No
No
Figure 7.1: The process of delivering an event, from the Hypervisor??™s perspective
132 Chapter 7. Using Event Channels
After an event is masked, it is still possible to poll for events by checking the
corresponding ???pending??? bit. This is typically done before exiting the event handler,
because other events may have been enqueued while delivery was masked by
the handler.


Pages:
269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293