HomeFreeBSD

MFC 299927,300101,300102,300105,300107

Description

MFC 299927,300101,300102,300105,300107

299927

hyperv/vmbus: Use atomic_testandclear

Prepare to use unsigned long for event channel bit array.

Sponsored by:       Microsoft OSTC
Differential Revision:      https://reviews.freebsd.org/D6382

300101

hyperv/vmbus: Use unsigned long for event bits.

And move base channel id calculation out of inner loop.  This prepares
for more event processing optimization.

MFC after:  1 week
Sponsored by:       Microsoft OSTC
Differential Revision:      https://reviews.freebsd.org/D6384

300102

hyperv/vmbus: Reduce the # of event loops by recording event flag count

Use vmbus softc to save vmbus per-cpu data.  More stuffs will be moved
into vmbus softc.

MFC after:  1 week
Sponsored by:       Microsoft OSTC
Differential Revision:      https://reviews.freebsd.org/D6403

300105

hyperv/vmbus: Use atomic swap and flsl to process event flags

Greatly reduce the locked instructions and reduce number of inner loops.

MFC after:  1 week
Sponsored by:       Microsoft OSTC
Differential Revision:      https://reviews.freebsd.org/D6404

300107

hyperv/vmbus: Avoid two unnecessary protocol checks on isr handling path

MFC after:  1 week
Sponsored by:       Microsoft OSTC
Differential Revision:      https://reviews.freebsd.org/D6405

Details

Provenance
sepheAuthored on
Parents
rS302108: MFC 299912
Branches
Unknown
Tags
Unknown