History log of /freebsd-11-stable/sys/dev/hyperv/include/vmbus.h
Revision Date Author Comments
# 311375 05-Jan-2017 sephe

MFC 309874,309875

309874
hyperv/vmbus: Add channel polling support.

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

309875
hyperv/hn: Add polling support

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


# 311364 05-Jan-2017 sephe

MFC 309128,309129,309131-309136,309138-309140,309224,309225

309128
hyperv/vmbus: Commit the GPADL id only after the connection succeeds.

Minor style change.

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

309129
hyperv/vmbus: Minor style changes.

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

309131
hyperv/vmbus: Fix sysctl tree leakage, if channel open fails.

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

309132
hyperv/vmbus: Don't close unopened channels.

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

309133
hyperv/vmbus: GPADL disconnect error on a revoked channel is benign.

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

309134
hyperv/vmbus: No stranded bufring GPADL is allowed.

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

309135
hyperv/vmbus: Return EISCONN if the bufring GPADL can't be disconnected.

So that the callers of vmbus_chan_open_br() could handle the passed in
bufring memory properly.

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

309136
hyperv/vmbus: Don't free the bufring if its GPADL can't be disconnected.

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

309138
hyperv/vmbus: Always try disconnect/free bufring memory upon channel close

While I'm here, minor wording and style changes.

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

309139
hyperv/vmbus: Propagate close error.

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

309140
hyperv/vmbus: Add a simplified version of channel close.

So that the caller can know the channel close error and react accordingly.

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

309224
hyperv/vmbus: Zero out GPADL if error happens.

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

309225
hyperv/vmbus: Add supportive transaction wait function.

This function supports channel revocation properly.

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


# 311359 05-Jan-2017 sephe

MFC 309030,309039,309080,309081,309083

309030
hyperv/vmbus: Set a mark on the revoked channel.

This will be used to fix device detach DEVMETHOD for revoked primary
channel.

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

309039
hyperv/vmbus: Merge free/active locks.

These functions are only used by management stuffs, so there are
no needs to introduce extra complexity.

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

309080
hyperv/vmbus: Implement orphan support for transaction API

It will be used to fix the primary channel revocation support.

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

309081
hyperv/vmbus: Fix the primary channel revoking on vmbus side.

Drivers can now use vmbus_chan_{is_revoked,set_orphan,unset_orphan}() and
vmbus_xact_ctx_orphan() to fix their attach/detach DEVMETHODs for revoked
primary channels.

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

309083
hyperv/vmbus: Fix the multi-channel revoking on vmbus side.

- Reference count the sub-channel when channel offer message is
processed, so that immediate rescind message on the same channel
will not race sub-channel open on driver side.
- Drop the above reference when sub-channel is closed, this closely
mimics the hypervisor's reaction when primary channel is closed
on the VM side. No drivers use sub-channel after primary channel
is closed.

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


# 308634 13-Nov-2016 sephe

MFC 308194

hyperv: GC unused functions.

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


# 308517 11-Nov-2016 sephe

MFC 307624

hyperv/vmbus: Expose channel management taskqueue for driver to use.

MFC after: 3 days
Sponsored by: Microsoft


# 307614 19-Oct-2016 sephe

MFC 307012,307013,307262

307012
hyperv/vmbus: Allow driver to inject synchronous task into channel taskq.

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

307013
hyperv/hn: Rework link status support.

This is the preamble for network device SR-IOV and
NDIS_STATUS_NETWORK_CHANGE handling.

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

307262
hyperv/hn: Management parts always need suspend and resume.

Sponsored by: Microsoft


# 307599 18-Oct-2016 sephe

MFC 306360,306387,306389

306360
hyperv/vmbus: Add dynamic device add and remove support

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

306387
hyperv/vmbus: Add functions to test RX/TX bufring emptiness

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

306389
hyperv/vmbus: Add function to drain channel interrupt task.

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


# 307595 18-Oct-2016 sephe

MFC 306072-306074,306076

306072
hyperv/vmbus: Allow bufrings preallocation.

The assumption that the channel is only opened upon synthetic device
attach time no longer holds, e.g. Hyper-V network device MTU changes.
We have to allow device drivers to preallocate bufrings, e.g. in
attach DEVMETHOD, to prevent bufring allocation failure once the
system memory is fragmented after running for a while.

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

306073
hyperv/hn: Allocate bufrings in attach DEVMETHOD.

So that reinitialization, e.g. MTU change, will not fail when the system
memory is excessively fragmented.

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

306074
hyperv/vmbus: Assert that the bufring address is page aligned.

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

306076
hyperv/hn: Put debug messages under bootverbose

While I'm here, strip blank line.

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


# 307486 17-Oct-2016 sephe

MFC 304790,304791

304790
hyperv/vmbus: Add function to calculate max # of elements in a bufring.

Sponsored by: Microsoft

304791
hyperv/storvsc: Increase queue depth and rework channel selection.

- Increasing queue depth gives ~100% performance improvement for
randwrite fio test in Azure.
- New channel selection, which takes LUN id and the current cpuid
into consideration, gives additional ~20% performance improvement
for ranwrite fio test in Azure.

Submitted by: Hongzhang Jiang <honzhan microsoft com>
Modified by: sephe
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7622


# 307476 17-Oct-2016 sephe

MFC 304204-304206,304252-304256

304204
hyperv/hn: Factor out hn_nvs_send/hn_nvs_send_sglist

Avoid unnecessary message type setting and centralize the send context
to transaction id cast.

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

304205
hyperv/hn: Simplify RNDIS NVS message sending.

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

304206
hyperv/hn: Simplify RNDIS message checks on RX path.

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

304252
hyperv/hn: Ignore the useless TX table.

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

304253
hyperv/hn: Simplify RNDIS RX packets acknowledgement.

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

304254
hyperv/hn: Remove reference to nvsp_msg

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

304255
hyperv/hn: Remove reference to nvsp_status

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

304256
hyperv/hn: Get rid of unused bits

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


# 307475 16-Oct-2016 sephe

MFC 303945,303947-303949,303989,303992,303998,304001,304002,304109,304111

303945
hyperv/vmbus: Add macro to get channel packet data length.

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

303947
hyperv/vmbus: Add APIs for various types of transactions.

Reviewed by: Jun Su <junsu microsoft com>
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7456

303948
hyperv/hn: Switch to vmbus xact APIs for NVS initialization

Reviewed by: Jun Su <junsu microsoft com>
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7457

303949
hyperv/vmbus: Use xact APIs to implement post message Hypercall APIs

Avoid code duplication.

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

303989
hyperv/hn: Simplify NDIS configuration.

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

303992
hyperv/hn: Simplify NDIS initialization.

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

303998
hyperv/hn: Switch to vmbus xact APIs for NVS RXBUF connection.

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

304001
hyperv/hn: Switch to vmbus xact APIs for NVS chimney buffer connection.

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

304002
hyperv/hn: Simplify RXBUF disconnection.

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

304109
hyperv/hn: Simplify chimney sending buffer disconnection.

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

304111
hyperv/hn: Switch to vmbus xact APIs for sub-channel alloc request.

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


# 307471 16-Oct-2016 sephe

MFC 303603-303605,303764

303603
hyperv/vmbus: Remove the artificial entry limit of SG and PRP list.

Just make sure that the total channel packet size does not exceed 1/2
data size of the TX bufring.

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

303604
hyperv/storvsc: Set maxio to 128KB.

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

303605
hyperv/storvsc: Stringent PRP list assertions

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

303764
hyperv/vmbus: Only make sure the TX bufring will not be closed.

KVP can write data, whose size is > 1/2 TX bufring size.

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


# 307466 16-Oct-2016 sephe

MFC 303421,303422,303470-303473

303421
hyperv/vmbus: Avoid unnecessary mb()

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

303422
hyperv/vmbus: Inclusion cleanup

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

303470
hyperv/vmbus: Reindent function declarations.

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

303471
hyperv/vmbus: Forward declare static functions

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

303472
hyperv/vmbus: Move driver glue to the beginning of the files

Just as most of other drivers do. And move sysinit function close
to its SYSINIT.

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

303473
hyperv/vmbus: Revoke unnecessary exposure of vmbus softc

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


# 307461 16-Oct-2016 sephe

MFC 303066-303072,303127-303129,303131

303066
hyperv/vmbus: Get rid of unnecessary definition.

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

303067
hyperv/vmbus: Move IC register definition to Hyper-V utilities

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

303068
hyperv/vmbus: Channel struct field rename

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

303069
hyperv/vmbus: Pass channel as the first argument for channel callback

The prepares to kill device private fields in channel struct, which
are not flexible and extensible.

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

303070
hyperv/vmbus: Deprecate the device private data in channel struct

They are neither flexible nor extensible.

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

303071
hyperv/vmbus: Hide channel struct definition.

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

303072
hyperv/vmbus: Save MNF trigger location instead of MNF trigger index.

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

303127
hyperv/vmbus: Save event flag location and evet flag mask.

This avoids unnecessary access to the vmbus_softc struct on sending path.

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

303128
hyperv/vmbus: Reorder channel fields.

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

303129
hyperv/vmbus: Shuffle function declaration and macro definition.

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

303131
hyperv: hv_vmbus_channel -> vmbus_channel

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


# 307459 16-Oct-2016 sephe

MFC 302888-302892,302986,303020-303022

302888
hyperv/hn: Busdma-fy rxbuf and chimney sending buffer

Nuke unused channel GPADL API.

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

302889
hyperv/vmbus: Back out r302888 temporarily

Committed by accident w/ duplicated commit log

Sponsored by: Microsoft OSTC

302890
hyperv/vmbus: Function rename

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

302891
hyperv/vmbus: Cosmetic vmbus channel close cleanup

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

302892
hyperv/vmbus: Cleanup channel sysctl tree creation

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

302986
hyperv/vmbus: Cosmetic vmbus channel open cleanup

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

303020
hyperv/vmbus: Cleanup cpu based channel selection.

And create cpu to channel map at device attach time for storvsc(4).

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

303021
hyperv/vmbus: Function rename

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

303022
hyperv/vmbus: Temp/internal variable/function rename

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


# 307457 16-Oct-2016 sephe

MFC 302885,302886

302885
hyperv/vmbus: Cleanup channel receiving.

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

302886
hyperv/vmbus: Cleanup channel packet receiving.

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


# 307456 16-Oct-2016 sephe

MFC 302882-302884

302882
hyperv/vmbus: Function rename

And reorder the error prone parameters list.

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

302883
hyperv/vmbus: Field rename

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

302884
hyperv/vmbus: Factor out macros to do channel packet length conversion.

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


# 307455 16-Oct-2016 sephe

MFC 302875,302876,302878-302881

302875
hyperv/vmbus: Redefine channel packet.

The channel packet header will be shared w/ PRP (physical region page)
list channel packet and SG (scatter gather) list channel packet.

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

302876
hyperv/vmbus: Rework sglist sending.

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

302878
hyeprv/vmbus: Rework prplist sending.

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

302879
hyperv/vmbus: Move channel packet flags definition to vmbus.h

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

302880
hyperv/vmbus: Move channel packet types definition to vmbus.h

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

302881
hyperv/vmbus: Cleanup channel sending

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