All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC net-next v2 0/4] virtio/vsock: support datagrams
@ 2023-04-14  0:25 Bobby Eshleman
  2023-04-14  0:25 ` [PATCH RFC net-next v2 1/4] virtio/vsock: support dgram Bobby Eshleman
                   ` (4 more replies)
  0 siblings, 5 replies; 38+ messages in thread
From: Bobby Eshleman @ 2023-04-14  0:25 UTC (permalink / raw)
  To: Stefan Hajnoczi, Stefano Garzarella, Michael S. Tsirkin,
	Jason Wang, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui,
	Bryan Tan, Vishnu Dasa, VMware PV-Drivers Reviewers
  Cc: kvm, virtualization, netdev, linux-kernel, linux-hyperv,
	Bobby Eshleman, Jiang Wang

Hey all!

This series introduces support for datagrams to virtio/vsock.

It is a spin-off (and smaller version) of this series from the summer: 
  https://lore.kernel.org/all/cover.1660362668.git.bobby.eshleman@bytedance.com/

Please note that this is an RFC and should not be merged until
associated changes are made to the virtio specification, which will
follow after discussion from this series.

This series first supports datagrams in a basic form for virtio, and
then optimizes the sendpath for all transports.

The result is a very fast datagram communication protocol that
outperforms even UDP on multi-queue virtio-net w/ vhost on a variety
of multi-threaded workload samples.

For those that are curious, some summary data comparing UDP and VSOCK
DGRAM (N=5):

	vCPUS: 16
	virtio-net queues: 16
	payload size: 4KB
	Setup: bare metal + vm (non-nested)

	UDP: 287.59 MB/s
	VSOCK DGRAM: 509.2 MB/s

Some notes about the implementation...

This datagram implementation forces datagrams to self-throttle according
to the threshold set by sk_sndbuf. It behaves similar to the credits
used by streams in its effect on throughput and memory consumption, but
it is not influenced by the receiving socket as credits are.

The device drops packets silently. There is room for improvement by
building into the device and driver some intelligence around how to
reduce frequency of kicking the virtqueue when packet loss is high. I
think there is a good discussion to be had on this.

In this series I am also proposing that fairness be reexamined as an
issue separate from datagrams, which differs from my previous series
that coupled these issues. After further testing and reflection on the
design, I do not believe that these need to be coupled and I do not
believe this implementation introduces additional unfairness or
exacerbates pre-existing unfairness.

I attempted to characterize vsock fairness by using a pool of processes
to stress test the shared resources while measuring the performance of a
lone stream socket. Given unfair preference for datagrams, we would
assume that a lone stream socket would degrade much more when a pool of
datagram sockets was stressing the system than when a pool of stream
sockets are stressing the system. The result, however, showed no
significant difference between the degradation of throughput of the lone
stream socket when using a pool of datagrams to stress the queue over
using a pool of streams. The absolute difference in throughput actually
favored datagrams as interfering least as the mean difference was +16%
compared to using streams to stress test (N=7), but it was not
statistically significant. Workloads were matched for payload size and
buffer size (to approximate memory consumption) and process count, and
stress workloads were configured to start before and last long after the
lifetime of the "lone" stream socket flow to ensure that competing flows
were continuously hot.

Given the above data, I propose that vsock fairness be addressed
independent of datagrams and to defer its implementation to a future
series.

Signed-off-by: Bobby Eshleman <bobby.eshleman@bytedance.com>
---
Bobby Eshleman (3):
      virtio/vsock: support dgram
      virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit
      vsock: Add lockless sendmsg() support

Jiang Wang (1):
      tests: add vsock dgram tests

 drivers/vhost/vsock.c                   |  17 +-
 include/net/af_vsock.h                  |  20 ++-
 include/uapi/linux/virtio_vsock.h       |   2 +
 net/vmw_vsock/af_vsock.c                | 287 ++++++++++++++++++++++++++++----
 net/vmw_vsock/diag.c                    |  10 +-
 net/vmw_vsock/hyperv_transport.c        |  15 +-
 net/vmw_vsock/virtio_transport.c        |  10 +-
 net/vmw_vsock/virtio_transport_common.c | 221 ++++++++++++++++++++----
 net/vmw_vsock/vmci_transport.c          |  70 ++++++--
 tools/testing/vsock/util.c              | 105 ++++++++++++
 tools/testing/vsock/util.h              |   4 +
 tools/testing/vsock/vsock_test.c        | 193 +++++++++++++++++++++
 12 files changed, 859 insertions(+), 95 deletions(-)
---
base-commit: ed72bd5a6790a0c3747cb32b0427f921bd03bb71
change-id: 20230413-b4-vsock-dgram-3b6eba6a64e5

Best regards,
-- 
Bobby Eshleman <bobby.eshleman@bytedance.com>


^ permalink raw reply	[flat|nested] 38+ messages in thread
* Re: [PATCH RFC net-next v2 3/4] vsock: Add lockless sendmsg() support
@ 2023-04-14  5:16 kernel test robot
  0 siblings, 0 replies; 38+ messages in thread
From: kernel test robot @ 2023-04-14  5:16 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp

:::::: 
:::::: Manual check reason: "low confidence static check warning: net/vmw_vsock/vmci_transport.c:1326:17: sparse: sparse: typename in expression"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230413-b4-vsock-dgram-v2-3-079cc7cee62e@bytedance.com>
References: <20230413-b4-vsock-dgram-v2-3-079cc7cee62e@bytedance.com>
TO: Bobby Eshleman <bobby.eshleman@bytedance.com>

Hi Bobby,

[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:

[auto build test WARNING on ed72bd5a6790a0c3747cb32b0427f921bd03bb71]

url:    https://github.com/intel-lab-lkp/linux/commits/Bobby-Eshleman/virtio-vsock-support-dgram/20230414-082831
base:   ed72bd5a6790a0c3747cb32b0427f921bd03bb71
patch link:    https://lore.kernel.org/r/20230413-b4-vsock-dgram-v2-3-079cc7cee62e%40bytedance.com
patch subject: [PATCH RFC net-next v2 3/4] vsock: Add lockless sendmsg() support
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: i386-randconfig-s002 (https://download.01.org/0day-ci/archive/20230414/202304141302.mVWCQivU-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-39-gce1a6720-dirty
        # https://github.com/intel-lab-lkp/linux/commit/de4d5e13dd5c747996abbc4e9ce38eeb3093ea01
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Bobby-Eshleman/virtio-vsock-support-dgram/20230414-082831
        git checkout de4d5e13dd5c747996abbc4e9ce38eeb3093ea01
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 olddefconfig
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash net/vmw_vsock/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/r/202304141302.mVWCQivU-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> net/vmw_vsock/vmci_transport.c:1326:17: sparse: sparse: typename in expression
   net/vmw_vsock/vmci_transport.c:1326:24: sparse: sparse: Expected ; at end of statement
   net/vmw_vsock/vmci_transport.c:1326:24: sparse: sparse: got sockaddr_vm_rcu
   net/vmw_vsock/vmci_transport.c:1326:17: sparse: sparse: undefined identifier 'struct'
   net/vmw_vsock/vmci_transport.c:1329:17: sparse: sparse: undefined identifier 'remote_addr'
>> net/vmw_vsock/vmci_transport.c:1329:31: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/vmw_vsock/vmci_transport.c:1329:31: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
>> net/vmw_vsock/vmci_transport.c:1329:31: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/vmci_transport.c:1330:22: sparse: sparse: undefined identifier 'remote_addr'
   net/vmw_vsock/vmci_transport.c:1338:47: sparse: sparse: undefined identifier 'remote_addr'
--
>> net/vmw_vsock/af_vsock.c:1026:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/vmw_vsock/af_vsock.c:1026:23: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
>> net/vmw_vsock/af_vsock.c:1026:23: sparse:    struct sockaddr_vm_rcu *
>> net/vmw_vsock/af_vsock.c:1026:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/vmw_vsock/af_vsock.c:1026:23: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
>> net/vmw_vsock/af_vsock.c:1026:23: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:154:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:154:23: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:154:23: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:172:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:172:23: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:172:23: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:202:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:202:23: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:202:23: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:228:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:228:15: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:228:15: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:239:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:239:15: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:239:15: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:239:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:239:15: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:239:15: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:256:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:256:15: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:256:15: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:256:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:256:15: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:256:15: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:269:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:269:23: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:269:23: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:393:31: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:393:31: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:393:31: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:418:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:418:23: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:418:23: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:934:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:934:9: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:934:9: sparse:    struct sockaddr_vm_rcu *
   net/vmw_vsock/af_vsock.c:1131:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
   net/vmw_vsock/af_vsock.c:1131:27: sparse:    struct sockaddr_vm_rcu [noderef] __rcu *
   net/vmw_vsock/af_vsock.c:1131:27: sparse:    struct sockaddr_vm_rcu *
>> net/vmw_vsock/af_vsock.c:239:15: sparse: sparse: dereference of noderef expression
   net/vmw_vsock/af_vsock.c:219:5: sparse: sparse: context imbalance in 'vsock_remote_addr_update_cid_port' - different lock contexts for basic block
   net/vmw_vsock/af_vsock.c:256:15: sparse: sparse: dereference of noderef expression
   net/vmw_vsock/af_vsock.c:1026:23: sparse: sparse: dereference of noderef expression
   net/vmw_vsock/af_vsock.c:1158:9: sparse: sparse: context imbalance in 'vsock_getname' - different lock contexts for basic block

vim +1326 net/vmw_vsock/vmci_transport.c

d021c344051af9 Andy King       2013-02-06  1292  
d021c344051af9 Andy King       2013-02-06  1293  static int
d021c344051af9 Andy King       2013-02-06  1294  vmci_transport_recv_connecting_client(struct sock *sk,
d021c344051af9 Andy King       2013-02-06  1295  				      struct vmci_transport_packet *pkt)
d021c344051af9 Andy King       2013-02-06  1296  {
d021c344051af9 Andy King       2013-02-06  1297  	struct vsock_sock *vsk;
d021c344051af9 Andy King       2013-02-06  1298  	int err;
d021c344051af9 Andy King       2013-02-06  1299  	int skerr;
d021c344051af9 Andy King       2013-02-06  1300  
d021c344051af9 Andy King       2013-02-06  1301  	vsk = vsock_sk(sk);
d021c344051af9 Andy King       2013-02-06  1302  
d021c344051af9 Andy King       2013-02-06  1303  	switch (pkt->type) {
d021c344051af9 Andy King       2013-02-06  1304  	case VMCI_TRANSPORT_PACKET_TYPE_ATTACH:
d021c344051af9 Andy King       2013-02-06  1305  		if (vmci_handle_is_invalid(pkt->u.handle) ||
d021c344051af9 Andy King       2013-02-06  1306  		    !vmci_handle_is_equal(pkt->u.handle,
d021c344051af9 Andy King       2013-02-06  1307  					  vmci_trans(vsk)->qp_handle)) {
d021c344051af9 Andy King       2013-02-06  1308  			skerr = EPROTO;
d021c344051af9 Andy King       2013-02-06  1309  			err = -EINVAL;
d021c344051af9 Andy King       2013-02-06  1310  			goto destroy;
d021c344051af9 Andy King       2013-02-06  1311  		}
d021c344051af9 Andy King       2013-02-06  1312  
d021c344051af9 Andy King       2013-02-06  1313  		/* Signify the socket is connected and wakeup the waiter in
d021c344051af9 Andy King       2013-02-06  1314  		 * connect(). Also place the socket in the connected table for
d021c344051af9 Andy King       2013-02-06  1315  		 * accounting (it can already be found since it's in the bound
d021c344051af9 Andy King       2013-02-06  1316  		 * table).
d021c344051af9 Andy King       2013-02-06  1317  		 */
3b4477d2dcf270 Stefan Hajnoczi 2017-10-05  1318  		sk->sk_state = TCP_ESTABLISHED;
d021c344051af9 Andy King       2013-02-06  1319  		sk->sk_socket->state = SS_CONNECTED;
d021c344051af9 Andy King       2013-02-06  1320  		vsock_insert_connected(vsk);
d021c344051af9 Andy King       2013-02-06  1321  		sk->sk_state_change(sk);
d021c344051af9 Andy King       2013-02-06  1322  
d021c344051af9 Andy King       2013-02-06  1323  		break;
d021c344051af9 Andy King       2013-02-06  1324  	case VMCI_TRANSPORT_PACKET_TYPE_NEGOTIATE:
d021c344051af9 Andy King       2013-02-06  1325  	case VMCI_TRANSPORT_PACKET_TYPE_NEGOTIATE2:
de4d5e13dd5c74 Bobby Eshleman  2023-04-14 @1326  		struct sockaddr_vm_rcu *remote_addr;
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1327  
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1328  		rcu_read_lock();
de4d5e13dd5c74 Bobby Eshleman  2023-04-14 @1329  		remote_addr = rcu_dereference(vsk->remote_addr);
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1330  		if (!remote_addr) {
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1331  			skerr = EPROTO;
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1332  			err = -EINVAL;
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1333  			rcu_read_unlock();
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1334  			goto destroy;
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1335  		}
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1336  
d021c344051af9 Andy King       2013-02-06  1337  		if (pkt->u.size == 0
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1338  		    || pkt->dg.src.context != remote_addr->addr.svm_cid
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1339  		    || pkt->src_port != remote_addr->addr.svm_port
d021c344051af9 Andy King       2013-02-06  1340  		    || !vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle)
d021c344051af9 Andy King       2013-02-06  1341  		    || vmci_trans(vsk)->qpair
d021c344051af9 Andy King       2013-02-06  1342  		    || vmci_trans(vsk)->produce_size != 0
d021c344051af9 Andy King       2013-02-06  1343  		    || vmci_trans(vsk)->consume_size != 0
d021c344051af9 Andy King       2013-02-06  1344  		    || vmci_trans(vsk)->detach_sub_id != VMCI_INVALID_ID) {
d021c344051af9 Andy King       2013-02-06  1345  			skerr = EPROTO;
d021c344051af9 Andy King       2013-02-06  1346  			err = -EINVAL;
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1347  			rcu_read_unlock();
d021c344051af9 Andy King       2013-02-06  1348  			goto destroy;
d021c344051af9 Andy King       2013-02-06  1349  		}
de4d5e13dd5c74 Bobby Eshleman  2023-04-14  1350  		rcu_read_unlock();
d021c344051af9 Andy King       2013-02-06  1351  
d021c344051af9 Andy King       2013-02-06  1352  		err = vmci_transport_recv_connecting_client_negotiate(sk, pkt);
d021c344051af9 Andy King       2013-02-06  1353  		if (err) {
d021c344051af9 Andy King       2013-02-06  1354  			skerr = -err;
d021c344051af9 Andy King       2013-02-06  1355  			goto destroy;
d021c344051af9 Andy King       2013-02-06  1356  		}
d021c344051af9 Andy King       2013-02-06  1357  
d021c344051af9 Andy King       2013-02-06  1358  		break;
d021c344051af9 Andy King       2013-02-06  1359  	case VMCI_TRANSPORT_PACKET_TYPE_INVALID:
d021c344051af9 Andy King       2013-02-06  1360  		err = vmci_transport_recv_connecting_client_invalid(sk, pkt);
d021c344051af9 Andy King       2013-02-06  1361  		if (err) {
d021c344051af9 Andy King       2013-02-06  1362  			skerr = -err;
d021c344051af9 Andy King       2013-02-06  1363  			goto destroy;
d021c344051af9 Andy King       2013-02-06  1364  		}
d021c344051af9 Andy King       2013-02-06  1365  
d021c344051af9 Andy King       2013-02-06  1366  		break;
d021c344051af9 Andy King       2013-02-06  1367  	case VMCI_TRANSPORT_PACKET_TYPE_RST:
d021c344051af9 Andy King       2013-02-06  1368  		/* Older versions of the linux code (WS 6.5 / ESX 4.0) used to
d021c344051af9 Andy King       2013-02-06  1369  		 * continue processing here after they sent an INVALID packet.
d021c344051af9 Andy King       2013-02-06  1370  		 * This meant that we got a RST after the INVALID. We ignore a
d021c344051af9 Andy King       2013-02-06  1371  		 * RST after an INVALID. The common code doesn't send the RST
d021c344051af9 Andy King       2013-02-06  1372  		 * ... so we can hang if an old version of the common code
d021c344051af9 Andy King       2013-02-06  1373  		 * fails between getting a REQUEST and sending an OFFER back.
d021c344051af9 Andy King       2013-02-06  1374  		 * Not much we can do about it... except hope that it doesn't
d021c344051af9 Andy King       2013-02-06  1375  		 * happen.
d021c344051af9 Andy King       2013-02-06  1376  		 */
d021c344051af9 Andy King       2013-02-06  1377  		if (vsk->ignore_connecting_rst) {
d021c344051af9 Andy King       2013-02-06  1378  			vsk->ignore_connecting_rst = false;
d021c344051af9 Andy King       2013-02-06  1379  		} else {
d021c344051af9 Andy King       2013-02-06  1380  			skerr = ECONNRESET;
d021c344051af9 Andy King       2013-02-06  1381  			err = 0;
d021c344051af9 Andy King       2013-02-06  1382  			goto destroy;
d021c344051af9 Andy King       2013-02-06  1383  		}
d021c344051af9 Andy King       2013-02-06  1384  
d021c344051af9 Andy King       2013-02-06  1385  		break;
d021c344051af9 Andy King       2013-02-06  1386  	default:
d021c344051af9 Andy King       2013-02-06  1387  		/* Close and cleanup the connection. */
d021c344051af9 Andy King       2013-02-06  1388  		skerr = EPROTO;
d021c344051af9 Andy King       2013-02-06  1389  		err = -EINVAL;
d021c344051af9 Andy King       2013-02-06  1390  		goto destroy;
d021c344051af9 Andy King       2013-02-06  1391  	}
d021c344051af9 Andy King       2013-02-06  1392  
d021c344051af9 Andy King       2013-02-06  1393  	return 0;
d021c344051af9 Andy King       2013-02-06  1394  
d021c344051af9 Andy King       2013-02-06  1395  destroy:
d021c344051af9 Andy King       2013-02-06  1396  	vmci_transport_send_reset(sk, pkt);
d021c344051af9 Andy King       2013-02-06  1397  
3b4477d2dcf270 Stefan Hajnoczi 2017-10-05  1398  	sk->sk_state = TCP_CLOSE;
d021c344051af9 Andy King       2013-02-06  1399  	sk->sk_err = skerr;
e3ae2365efc142 Alexander Aring 2021-06-27  1400  	sk_error_report(sk);
d021c344051af9 Andy King       2013-02-06  1401  	return err;
d021c344051af9 Andy King       2013-02-06  1402  }
d021c344051af9 Andy King       2013-02-06  1403  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2023-05-03 12:14 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-14  0:25 [PATCH RFC net-next v2 0/4] virtio/vsock: support datagrams Bobby Eshleman
2023-04-14  0:25 ` [PATCH RFC net-next v2 1/4] virtio/vsock: support dgram Bobby Eshleman
2023-04-19  9:29   ` Stefano Garzarella
2023-04-19  9:29     ` Stefano Garzarella
2023-04-14  0:25 ` [PATCH RFC net-next v2 2/4] virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit Bobby Eshleman
2023-04-14  8:47   ` Alvaro Karsz
2023-04-14  8:47     ` Alvaro Karsz
2023-04-14 10:28     ` Bobby Eshleman
2023-04-19  9:30   ` Stefano Garzarella
2023-04-19  9:30     ` Stefano Garzarella
2023-04-15  9:51     ` Bobby Eshleman
2023-04-14  0:25 ` [PATCH RFC net-next v2 3/4] vsock: Add lockless sendmsg() support Bobby Eshleman
2023-04-14  2:09   ` kernel test robot
2023-04-14  3:32   ` kernel test robot
2023-04-15  6:13   ` kernel test robot
2023-04-19  9:30   ` Stefano Garzarella
2023-04-19  9:30     ` Stefano Garzarella
2023-04-15 10:30     ` Bobby Eshleman
2023-04-28 10:29       ` Stefano Garzarella
2023-04-28 10:29         ` Stefano Garzarella
2023-04-15 17:29         ` Bobby Eshleman
2023-05-03 12:09           ` Stefano Garzarella
2023-05-03 12:09             ` Stefano Garzarella
2023-04-14  0:26 ` [PATCH RFC net-next v2 4/4] tests: add vsock dgram tests Bobby Eshleman
2023-04-14 11:18 ` [PATCH RFC net-next v2 0/4] virtio/vsock: support datagrams Bobby Eshleman
2023-04-19 10:00   ` Stefano Garzarella
2023-04-19 10:00     ` Stefano Garzarella
2023-04-15  7:13     ` Bobby Eshleman
2023-04-15  7:13       ` [virtio-dev] " Bobby Eshleman
2023-04-28 10:43       ` Stefano Garzarella
2023-04-28 10:43         ` Stefano Garzarella
2023-04-28 10:43         ` [virtio-dev] " Stefano Garzarella
2023-04-15 15:55         ` Bobby Eshleman
2023-04-15 15:55           ` [virtio-dev] " Bobby Eshleman
2023-05-03 12:13           ` Stefano Garzarella
2023-05-03 12:13             ` Stefano Garzarella
2023-05-03 12:13             ` [virtio-dev] " Stefano Garzarella
  -- strict thread matches above, loose matches on Subject: below --
2023-04-14  5:16 [PATCH RFC net-next v2 3/4] vsock: Add lockless sendmsg() support kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.