X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fportals%2Fknals%2Fsocknal%2Fsocknal.h;h=20cd3d923fc57d807ef39db8abcc4917ec64afaa;hb=23c2768cfacd6f9fb9dbabbfae9fc7ba5e7b129d;hp=b8bbefdbad8f55a472687fa4746626f8ccf3fc69;hpb=fb1d86804d2e9f82045c5198b2a9850321c64fb9;p=fs%2Flustre-release.git diff --git a/lustre/portals/knals/socknal/socknal.h b/lustre/portals/knals/socknal/socknal.h index b8bbefd..20cd3d9 100644 --- a/lustre/portals/knals/socknal/socknal.h +++ b/lustre/portals/knals/socknal/socknal.h @@ -104,6 +104,11 @@ #define SOCKNAL_TX_LOW_WATER(sk) (((sk)->sk_sndbuf*8)/10) +#define SOCKNAL_SINGLE_FRAG_TX 0 /* disable multi-fragment sends */ +#define SOCKNAL_SINGLE_FRAG_RX 0 /* disable multi-fragment receives */ +#define SOCKNAL_RISK_KMAP_DEADLOCK 0 /* risk kmap deadlock on multi-frag I/O + * (backs off to single-frag if disabled) */ + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,72)) # define sk_allocation allocation # define sk_data_ready data_ready @@ -349,6 +354,13 @@ typedef struct ksock_conn atomic_t ksnc_tx_nob; /* # bytes queued */ int ksnc_tx_ready; /* write space */ int ksnc_tx_scheduled; /* being progressed */ + +#if !SOCKNAL_SINGLE_FRAG_RX + struct iovec ksnc_rx_scratch_iov[PTL_MD_MAX_IOV]; +#endif +#if !SOCKNAL_SINGLE_FRAG_TX + struct iovec ksnc_tx_scratch_iov[PTL_MD_MAX_IOV]; +#endif } ksock_conn_t; #define KSNR_TYPED_ROUTES ((1 << SOCKNAL_CONN_CONTROL) | \