Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f351bad2 authored by Al Viro's avatar Al Viro Committed by Greg Kroah-Hartman
Browse files

lustre: don't use iovec instead of kvec

parent 4d4e1eef
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -752,9 +752,9 @@ int lnet_fail_nid(lnet_nid_t nid, unsigned int threshold);
void lnet_counters_get(lnet_counters_t *counters);
void lnet_counters_reset(void);

unsigned int lnet_iov_nob(unsigned int niov, struct iovec *iov);
int lnet_extract_iov(int dst_niov, struct iovec *dst,
		     int src_niov, struct iovec *src,
unsigned int lnet_iov_nob(unsigned int niov, struct kvec *iov);
int lnet_extract_iov(int dst_niov, struct kvec *dst,
		     int src_niov, struct kvec *src,
		      unsigned int offset, unsigned int len);

unsigned int lnet_kiov_nob(unsigned int niov, lnet_kiov_t *iov);
@@ -762,17 +762,17 @@ int lnet_extract_kiov(int dst_niov, lnet_kiov_t *dst,
		      int src_niov, lnet_kiov_t *src,
		      unsigned int offset, unsigned int len);

void lnet_copy_iov2iov(unsigned int ndiov, struct iovec *diov,
void lnet_copy_iov2iov(unsigned int ndiov, struct kvec *diov,
		       unsigned int doffset,
			unsigned int nsiov, struct iovec *siov,
			unsigned int nsiov, struct kvec *siov,
			unsigned int soffset, unsigned int nob);
void lnet_copy_kiov2iov(unsigned int niov, struct iovec *iov,
void lnet_copy_kiov2iov(unsigned int niov, struct kvec *iov,
			unsigned int iovoffset,
			 unsigned int nkiov, lnet_kiov_t *kiov,
			 unsigned int kiovoffset, unsigned int nob);
void lnet_copy_iov2kiov(unsigned int nkiov, lnet_kiov_t *kiov,
			unsigned int kiovoffset,
			 unsigned int niov, struct iovec *iov,
			 unsigned int niov, struct kvec *iov,
			 unsigned int iovoffset, unsigned int nob);
void lnet_copy_kiov2kiov(unsigned int ndkiov, lnet_kiov_t *dkiov,
			 unsigned int doffset,
@@ -781,10 +781,10 @@ void lnet_copy_kiov2kiov(unsigned int ndkiov, lnet_kiov_t *dkiov,

static inline void
lnet_copy_iov2flat(int dlen, void *dest, unsigned int doffset,
		   unsigned int nsiov, struct iovec *siov, unsigned int soffset,
		   unsigned int nsiov, struct kvec *siov, unsigned int soffset,
		   unsigned int nob)
{
	struct iovec diov = {/*.iov_base = */ dest, /*.iov_len = */ dlen};
	struct kvec diov = {/*.iov_base = */ dest, /*.iov_len = */ dlen};

	lnet_copy_iov2iov(1, &diov, doffset,
			  nsiov, siov, soffset, nob);
@@ -795,17 +795,17 @@ lnet_copy_kiov2flat(int dlen, void *dest, unsigned int doffset,
		    unsigned int nsiov, lnet_kiov_t *skiov,
		    unsigned int soffset, unsigned int nob)
{
	struct iovec diov = {/* .iov_base = */ dest, /* .iov_len = */ dlen};
	struct kvec diov = {/* .iov_base = */ dest, /* .iov_len = */ dlen};

	lnet_copy_kiov2iov(1, &diov, doffset,
			   nsiov, skiov, soffset, nob);
}

static inline void
lnet_copy_flat2iov(unsigned int ndiov, struct iovec *diov, unsigned int doffset,
lnet_copy_flat2iov(unsigned int ndiov, struct kvec *diov, unsigned int doffset,
		   int slen, void *src, unsigned int soffset, unsigned int nob)
{
	struct iovec siov = {/*.iov_base = */ src, /*.iov_len = */slen};
	struct kvec siov = {/*.iov_base = */ src, /*.iov_len = */slen};

	lnet_copy_iov2iov(ndiov, diov, doffset,
			  1, &siov, soffset, nob);
@@ -816,7 +816,7 @@ lnet_copy_flat2kiov(unsigned int ndiov, lnet_kiov_t *dkiov,
		    unsigned int doffset, int slen, void *src,
		    unsigned int soffset, unsigned int nob)
{
	struct iovec siov = {/* .iov_base = */ src, /* .iov_len = */ slen};
	struct kvec siov = {/* .iov_base = */ src, /* .iov_len = */ slen};

	lnet_copy_iov2kiov(ndiov, dkiov, doffset,
			   1, &siov, soffset, nob);
+3 −3
Original line number Diff line number Diff line
@@ -217,7 +217,7 @@ typedef struct lnet_msg {
	unsigned int	  msg_wanted;
	unsigned int	  msg_offset;
	unsigned int	  msg_niov;
	struct iovec	 *msg_iov;
	struct kvec	 *msg_iov;
	lnet_kiov_t	  *msg_kiov;

	lnet_event_t	  msg_ev;
@@ -271,7 +271,7 @@ typedef struct lnet_libmd {
	lnet_eq_t	    *md_eq;
	unsigned int	  md_niov;		/* # frags */
	union {
		struct iovec  iov[LNET_MAX_IOV];
		struct kvec   iov[LNET_MAX_IOV];
		lnet_kiov_t   kiov[LNET_MAX_IOV];
	} md_iov;
} lnet_libmd_t;
@@ -346,7 +346,7 @@ typedef struct lnet_lnd {
	 * credit if the LND does flow control. */
	int (*lnd_recv)(struct lnet_ni *ni, void *private, lnet_msg_t *msg,
			int delayed, unsigned int niov,
			struct iovec *iov, lnet_kiov_t *kiov,
			struct kvec *iov, lnet_kiov_t *kiov,
			unsigned int offset, unsigned int mlen, unsigned int rlen);

	/* lnet_parse() has had to delay processing of this message
+1 −1
Original line number Diff line number Diff line
@@ -1026,5 +1026,5 @@ int kiblnd_post_rx (kib_rx_t *rx, int credit);

int  kiblnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg);
int  kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed,
		 unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
		 unsigned int niov, struct kvec *iov, lnet_kiov_t *kiov,
		 unsigned int offset, unsigned int mlen, unsigned int rlen);
+4 −4
Original line number Diff line number Diff line
@@ -697,7 +697,7 @@ kiblnd_map_tx(lnet_ni_t *ni, kib_tx_t *tx,

static int
kiblnd_setup_rd_iov(lnet_ni_t *ni, kib_tx_t *tx, kib_rdma_desc_t *rd,
		    unsigned int niov, struct iovec *iov, int offset, int nob)
		    unsigned int niov, struct kvec *iov, int offset, int nob)
{
	kib_net_t	  *net = ni->ni_data;
	struct page	*page;
@@ -1461,7 +1461,7 @@ kiblnd_send (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg)
	int	       target_is_router = lntmsg->msg_target_is_router;
	int	       routing = lntmsg->msg_routing;
	unsigned int      payload_niov = lntmsg->msg_niov;
	struct iovec     *payload_iov = lntmsg->msg_iov;
	struct kvec      *payload_iov = lntmsg->msg_iov;
	lnet_kiov_t      *payload_kiov = lntmsg->msg_kiov;
	unsigned int      payload_offset = lntmsg->msg_offset;
	unsigned int      payload_nob = lntmsg->msg_len;
@@ -1628,7 +1628,7 @@ kiblnd_reply (lnet_ni_t *ni, kib_rx_t *rx, lnet_msg_t *lntmsg)
{
	lnet_process_id_t target = lntmsg->msg_target;
	unsigned int      niov = lntmsg->msg_niov;
	struct iovec     *iov = lntmsg->msg_iov;
	struct kvec      *iov = lntmsg->msg_iov;
	lnet_kiov_t      *kiov = lntmsg->msg_kiov;
	unsigned int      offset = lntmsg->msg_offset;
	unsigned int      nob = lntmsg->msg_len;
@@ -1687,7 +1687,7 @@ kiblnd_reply (lnet_ni_t *ni, kib_rx_t *rx, lnet_msg_t *lntmsg)

int
kiblnd_recv (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed,
	     unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
	     unsigned int niov, struct kvec *iov, lnet_kiov_t *kiov,
	     unsigned int offset, unsigned int mlen, unsigned int rlen)
{
	kib_rx_t    *rx = private;
+7 −7
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ typedef struct /* per scheduler state */
	int			kss_nconns;
	struct ksock_sched_info	*kss_info;	/* owner of it */
	struct page		*kss_rx_scratch_pgs[LNET_MAX_IOV];
	struct iovec		kss_scratch_iov[LNET_MAX_IOV];
	struct kvec		kss_scratch_iov[LNET_MAX_IOV];
} ksock_sched_t;

struct ksock_sched_info {
@@ -213,7 +213,7 @@ typedef struct /* transmit packet */
	int	    tx_nob;	 /* # packet bytes */
	int	    tx_resid;       /* residual bytes */
	int	    tx_niov;	/* # packet iovec frags */
	struct iovec  *tx_iov;	 /* packet iovec frags */
	struct kvec  *tx_iov;	 /* packet iovec frags */
	int	    tx_nkiov;       /* # packet page frags */
	unsigned short tx_zc_aborted;  /* aborted ZC request */
	unsigned short tx_zc_capable:1; /* payload is large enough for ZC */
@@ -227,11 +227,11 @@ typedef struct /* transmit packet */
	int	    tx_desc_size;   /* size of this descriptor */
	union {
		struct {
			struct iovec iov;       /* virt hdr */
			struct kvec iov;       /* virt hdr */
			lnet_kiov_t  kiov[0];   /* paged payload */
		}		  paged;
		struct {
			struct iovec iov[1];    /* virt hdr + payload */
			struct kvec iov[1];    /* virt hdr + payload */
		}		  virt;
	}		       tx_frags;
} ksock_tx_t;
@@ -243,7 +243,7 @@ typedef struct /* transmit packet */
/* space for the rx frag descriptors; we either read a single contiguous
 * header, or up to LNET_MAX_IOV frags of payload of either type. */
typedef union {
	struct iovec     iov[LNET_MAX_IOV];
	struct kvec      iov[LNET_MAX_IOV];
	lnet_kiov_t      kiov[LNET_MAX_IOV];
} ksock_rxiovspace_t;

@@ -284,7 +284,7 @@ typedef struct ksock_conn {
	int		   ksnc_rx_nob_left; /* # bytes to next hdr/body */
	int		   ksnc_rx_nob_wanted; /* bytes actually wanted */
	int		   ksnc_rx_niov;     /* # iovec frags */
	struct iovec	 *ksnc_rx_iov;      /* the iovec frags */
	struct kvec 	 *ksnc_rx_iov;      /* the iovec frags */
	int		   ksnc_rx_nkiov;    /* # page frags */
	lnet_kiov_t	  *ksnc_rx_kiov;     /* the page frags */
	ksock_rxiovspace_t    ksnc_rx_iov_space;/* space for frag descriptors */
@@ -517,7 +517,7 @@ int ksocknal_ctl(lnet_ni_t *ni, unsigned int cmd, void *arg);
int ksocknal_send (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg);
int ksocknal_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg,
		  int delayed, unsigned int niov,
		  struct iovec *iov, lnet_kiov_t *kiov,
		  struct kvec *iov, lnet_kiov_t *kiov,
		  unsigned int offset, unsigned int mlen, unsigned int rlen);
int ksocknal_accept(lnet_ni_t *ni, struct socket *sock);

Loading