e3c41896 | 13-Jun-2016 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv/vmbus: Complete vmbus initialization; interrupt cputimer is enabled
Most of the bits are obtained from FreeBSD. However, The interrupt bits are reworked: - Since the vmbus message/event inte
hyperv/vmbus: Complete vmbus initialization; interrupt cputimer is enabled
Most of the bits are obtained from FreeBSD. However, The interrupt bits are reworked: - Since the vmbus message/event interrupt works in the same fashion as MSI-X, we just allocate MSI-X for them, instead of allocating IDT vector, rolling vmbus own interrupt vector and turning the interrupt handling inside-out. The standard and generic bus APIs are used to allocate and setup per-cpu vmbus interrupt. - Interrupt cputimer reuses the current per-cpu interrupt timer code. - AutoEOI is not used, since we reuse the per-cpu interrupt timer IDT vector and MSI IDT vector. After a brief discussion w/ Dexuan Cui, I concluded that AutoEOI probably does not provide noticible performance improvement but will introduce extra code complexity. We leave it off for now.
Obtained-from: FreeBSD (mostly)
show more ...
|