Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jan 2016 05:12:19 +0000
From:      Phabricator <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] [Closed] D4977: hyperv/hn: Use m_copydata for chimney sending.
Message-ID:  <7eac4ee6ca5161c925637e8f180bca42@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-yenzhdryp5pky6jb2g3e-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-yenzhdryp5pky6jb2g3e-req@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_7eac4ee6ca5161c925637e8f180bca42
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: 8bit

This revision was automatically updated to reflect the committed changes.
Closed by commit rS294701: hyperv/hn: Use m_copydata for chimney sending. (authored by sephe).

CHANGED PRIOR TO COMMIT
  https://reviews.freebsd.org/D4977?vs=12412&id=12669#toc

REPOSITORY
  rS FreeBSD src repository

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D4977?vs=12412&id=12669

REVISION DETAIL
  https://reviews.freebsd.org/D4977

AFFECTED FILES
  head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c

CHANGE DETAILS
  diff --git a/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c b/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  --- a/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  +++ b/head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  @@ -756,7 +756,6 @@
   	struct hv_device *device_ctx = vmbus_get_devctx(sc->hn_dev);
   	netvsc_dev *net_dev = sc->net_dev;
   	netvsc_packet *packet;
  -	struct mbuf *m_head, *m;
   	struct ether_vlan_header *eh;
   	rndis_msg *rndis_mesg;
   	rndis_packet *rndis_pkt;
  @@ -767,8 +766,6 @@
   	int ether_len;
   	uint32_t rndis_msg_size = 0;
   	uint32_t trans_proto_type;
  -	uint32_t send_buf_section_idx =
  -	    NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX;
   
   	if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
   	    IFF_DRV_RUNNING)
  @@ -778,6 +775,7 @@
   		bus_dma_segment_t segs[HN_TX_DATA_SEGCNT_MAX];
   		int error, nsegs, i, send_failed = 0;
   		struct hn_txdesc *txd;
  +		struct mbuf *m_head;
   
   		IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head);
   		if (m_head == NULL)
  @@ -940,24 +938,21 @@
   
   		/* send packet with send buffer */
   		if (packet->tot_data_buf_len < sc->hn_tx_chimney_size) {
  +			uint32_t send_buf_section_idx;
  +
   			send_buf_section_idx =
   			    hv_nv_get_next_send_section(net_dev);
   			if (send_buf_section_idx !=
   			    NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX) {
  -				char *dest = ((char *)net_dev->send_buf +
  -				    send_buf_section_idx *
  -				    net_dev->send_section_size);
  +				uint8_t *dest = ((uint8_t *)net_dev->send_buf +
  +				    (send_buf_section_idx *
  +				     net_dev->send_section_size));
   
   				memcpy(dest, rndis_mesg, rndis_msg_size);
   				dest += rndis_msg_size;
  -				for (m = m_head; m != NULL; m = m->m_next) {
  -					if (m->m_len) {
  -						memcpy(dest,
  -						    (void *)mtod(m, vm_offset_t),
  -						    m->m_len);
  -						dest += m->m_len;
  -					}
  -				}
  +
  +				m_copydata(m_head, 0, m_head->m_pkthdr.len,
  +				    dest);
   
   				packet->send_buf_section_idx =
   				    send_buf_section_idx;

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: sepherosa_gmail.com, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com, delphij, adrian, network
Cc: freebsd-net-list

--b1_7eac4ee6ca5161c925637e8f180bca42
Content-Type: text/x-patch; charset=utf-8; name="D4977.12669.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D4977.12669.patch"

ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJl
ZWJzZC5jIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKLS0tIGEvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKKysrIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk
LmMKQEAgLTc1Niw3ICs3NTYsNiBAQAogCXN0cnVjdCBodl9kZXZpY2UgKmRldmljZV9jdHggPSB2
bWJ1c19nZXRfZGV2Y3R4KHNjLT5obl9kZXYpOwogCW5ldHZzY19kZXYgKm5ldF9kZXYgPSBzYy0+
bmV0X2RldjsKIAluZXR2c2NfcGFja2V0ICpwYWNrZXQ7Ci0Jc3RydWN0IG1idWYgKm1faGVhZCwg
Km07CiAJc3RydWN0IGV0aGVyX3ZsYW5faGVhZGVyICplaDsKIAlybmRpc19tc2cgKnJuZGlzX21l
c2c7CiAJcm5kaXNfcGFja2V0ICpybmRpc19wa3Q7CkBAIC03NjcsOCArNzY2LDYgQEAKIAlpbnQg
ZXRoZXJfbGVuOwogCXVpbnQzMl90IHJuZGlzX21zZ19zaXplID0gMDsKIAl1aW50MzJfdCB0cmFu
c19wcm90b190eXBlOwotCXVpbnQzMl90IHNlbmRfYnVmX3NlY3Rpb25faWR4ID0KLQkgICAgTlZT
UF8xX0NISU1ORVlfU0VORF9JTlZBTElEX1NFQ1RJT05fSU5ERVg7CiAKIAlpZiAoKGlmcC0+aWZf
ZHJ2X2ZsYWdzICYgKElGRl9EUlZfUlVOTklORyB8IElGRl9EUlZfT0FDVElWRSkpICE9CiAJICAg
IElGRl9EUlZfUlVOTklORykKQEAgLTc3OCw2ICs3NzUsNyBAQAogCQlidXNfZG1hX3NlZ21lbnRf
dCBzZWdzW0hOX1RYX0RBVEFfU0VHQ05UX01BWF07CiAJCWludCBlcnJvciwgbnNlZ3MsIGksIHNl
bmRfZmFpbGVkID0gMDsKIAkJc3RydWN0IGhuX3R4ZGVzYyAqdHhkOworCQlzdHJ1Y3QgbWJ1ZiAq
bV9oZWFkOwogCiAJCUlGUV9EUlZfREVRVUVVRSgmaWZwLT5pZl9zbmQsIG1faGVhZCk7CiAJCWlm
IChtX2hlYWQgPT0gTlVMTCkKQEAgLTk0MCwyNCArOTM4LDIxIEBACiAKIAkJLyogc2VuZCBwYWNr
ZXQgd2l0aCBzZW5kIGJ1ZmZlciAqLwogCQlpZiAocGFja2V0LT50b3RfZGF0YV9idWZfbGVuIDwg
c2MtPmhuX3R4X2NoaW1uZXlfc2l6ZSkgeworCQkJdWludDMyX3Qgc2VuZF9idWZfc2VjdGlvbl9p
ZHg7CisKIAkJCXNlbmRfYnVmX3NlY3Rpb25faWR4ID0KIAkJCSAgICBodl9udl9nZXRfbmV4dF9z
ZW5kX3NlY3Rpb24obmV0X2Rldik7CiAJCQlpZiAoc2VuZF9idWZfc2VjdGlvbl9pZHggIT0KIAkJ
CSAgICBOVlNQXzFfQ0hJTU5FWV9TRU5EX0lOVkFMSURfU0VDVElPTl9JTkRFWCkgewotCQkJCWNo
YXIgKmRlc3QgPSAoKGNoYXIgKiluZXRfZGV2LT5zZW5kX2J1ZiArCi0JCQkJICAgIHNlbmRfYnVm
X3NlY3Rpb25faWR4ICoKLQkJCQkgICAgbmV0X2Rldi0+c2VuZF9zZWN0aW9uX3NpemUpOworCQkJ
CXVpbnQ4X3QgKmRlc3QgPSAoKHVpbnQ4X3QgKiluZXRfZGV2LT5zZW5kX2J1ZiArCisJCQkJICAg
IChzZW5kX2J1Zl9zZWN0aW9uX2lkeCAqCisJCQkJICAgICBuZXRfZGV2LT5zZW5kX3NlY3Rpb25f
c2l6ZSkpOwogCiAJCQkJbWVtY3B5KGRlc3QsIHJuZGlzX21lc2csIHJuZGlzX21zZ19zaXplKTsK
IAkJCQlkZXN0ICs9IHJuZGlzX21zZ19zaXplOwotCQkJCWZvciAobSA9IG1faGVhZDsgbSAhPSBO
VUxMOyBtID0gbS0+bV9uZXh0KSB7Ci0JCQkJCWlmIChtLT5tX2xlbikgewotCQkJCQkJbWVtY3B5
KGRlc3QsCi0JCQkJCQkgICAgKHZvaWQgKiltdG9kKG0sIHZtX29mZnNldF90KSwKLQkJCQkJCSAg
ICBtLT5tX2xlbik7Ci0JCQkJCQlkZXN0ICs9IG0tPm1fbGVuOwotCQkJCQl9Ci0JCQkJfQorCisJ
CQkJbV9jb3B5ZGF0YShtX2hlYWQsIDAsIG1faGVhZC0+bV9wa3RoZHIubGVuLAorCQkJCSAgICBk
ZXN0KTsKIAogCQkJCXBhY2tldC0+c2VuZF9idWZfc2VjdGlvbl9pZHggPQogCQkJCSAgICBzZW5k
X2J1Zl9zZWN0aW9uX2lkeDsKCg==


--b1_7eac4ee6ca5161c925637e8f180bca42--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7eac4ee6ca5161c925637e8f180bca42>