Generalized definitions of the number of preallocated iovec's.

No functional changes.
This commit is contained in:
Valentin Bartenev 2014-08-13 15:11:45 +04:00
parent 1cbeabfd4c
commit 651be6067e
7 changed files with 24 additions and 57 deletions

View File

@ -27,15 +27,6 @@
*/ */
#if (IOV_MAX > 64)
#define NGX_HEADERS 64
#define NGX_TRAILERS 64
#else
#define NGX_HEADERS IOV_MAX
#define NGX_TRAILERS IOV_MAX
#endif
ngx_chain_t * ngx_chain_t *
ngx_darwin_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) ngx_darwin_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
{ {
@ -50,7 +41,9 @@ ngx_darwin_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
ngx_event_t *wev; ngx_event_t *wev;
ngx_chain_t *cl; ngx_chain_t *cl;
struct sf_hdtr hdtr; struct sf_hdtr hdtr;
struct iovec *iov, headers[NGX_HEADERS], trailers[NGX_TRAILERS]; struct iovec *iov;
struct iovec headers[NGX_IOVS_PREALLOCATE];
struct iovec trailers[NGX_IOVS_PREALLOCATE];
wev = c->write; wev = c->write;
@ -79,12 +72,12 @@ ngx_darwin_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
header.elts = headers; header.elts = headers;
header.size = sizeof(struct iovec); header.size = sizeof(struct iovec);
header.nalloc = NGX_HEADERS; header.nalloc = NGX_IOVS_PREALLOCATE;
header.pool = c->pool; header.pool = c->pool;
trailer.elts = trailers; trailer.elts = trailers;
trailer.size = sizeof(struct iovec); trailer.size = sizeof(struct iovec);
trailer.nalloc = NGX_TRAILERS; trailer.nalloc = NGX_IOVS_PREALLOCATE;
trailer.pool = c->pool; trailer.pool = c->pool;
for ( ;; ) { for ( ;; ) {

View File

@ -29,15 +29,6 @@
*/ */
#if (IOV_MAX > 64)
#define NGX_HEADERS 64
#define NGX_TRAILERS 64
#else
#define NGX_HEADERS IOV_MAX
#define NGX_TRAILERS IOV_MAX
#endif
ngx_chain_t * ngx_chain_t *
ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
{ {
@ -52,7 +43,9 @@ ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
ngx_event_t *wev; ngx_event_t *wev;
ngx_chain_t *cl; ngx_chain_t *cl;
struct sf_hdtr hdtr; struct sf_hdtr hdtr;
struct iovec *iov, headers[NGX_HEADERS], trailers[NGX_TRAILERS]; struct iovec *iov;
struct iovec headers[NGX_IOVS_PREALLOCATE];
struct iovec trailers[NGX_IOVS_PREALLOCATE];
wev = c->write; wev = c->write;
@ -83,12 +76,12 @@ ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
header.elts = headers; header.elts = headers;
header.size = sizeof(struct iovec); header.size = sizeof(struct iovec);
header.nalloc = NGX_HEADERS; header.nalloc = NGX_IOVS_PREALLOCATE;
header.pool = c->pool; header.pool = c->pool;
trailer.elts = trailers; trailer.elts = trailers;
trailer.size = sizeof(struct iovec); trailer.size = sizeof(struct iovec);
trailer.nalloc = NGX_TRAILERS; trailer.nalloc = NGX_IOVS_PREALLOCATE;
trailer.pool = c->pool; trailer.pool = c->pool;
for ( ;; ) { for ( ;; ) {

View File

@ -27,13 +27,6 @@
#define NGX_SENDFILE_MAXSIZE 2147483647L #define NGX_SENDFILE_MAXSIZE 2147483647L
#if (IOV_MAX > 64)
#define NGX_HEADERS 64
#else
#define NGX_HEADERS IOV_MAX
#endif
ngx_chain_t * ngx_chain_t *
ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
{ {
@ -47,7 +40,7 @@ ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
ngx_array_t header; ngx_array_t header;
ngx_event_t *wev; ngx_event_t *wev;
ngx_chain_t *cl; ngx_chain_t *cl;
struct iovec *iov, headers[NGX_HEADERS]; struct iovec *iov, headers[NGX_IOVS_PREALLOCATE];
#if (NGX_HAVE_SENDFILE64) #if (NGX_HAVE_SENDFILE64)
off_t offset; off_t offset;
#else #else
@ -72,7 +65,7 @@ ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
header.elts = headers; header.elts = headers;
header.size = sizeof(struct iovec); header.size = sizeof(struct iovec);
header.nalloc = NGX_HEADERS; header.nalloc = NGX_IOVS_PREALLOCATE;
header.pool = c->pool; header.pool = c->pool;
for ( ;; ) { for ( ;; ) {

View File

@ -56,6 +56,13 @@ ngx_chain_t *ngx_aio_write_chain(ngx_connection_t *c, ngx_chain_t *in,
#endif #endif
#if (IOV_MAX > 64)
#define NGX_IOVS_PREALLOCATE 64
#else
#define NGX_IOVS_PREALLOCATE IOV_MAX
#endif
extern ngx_os_io_t ngx_os_io; extern ngx_os_io_t ngx_os_io;
extern ngx_int_t ngx_ncpu; extern ngx_int_t ngx_ncpu;
extern ngx_int_t ngx_max_sockets; extern ngx_int_t ngx_max_sockets;

View File

@ -10,13 +10,6 @@
#include <ngx_event.h> #include <ngx_event.h>
#if (IOV_MAX > 64)
#define NGX_IOVS 64
#else
#define NGX_IOVS IOV_MAX
#endif
ssize_t ssize_t
ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain) ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain)
{ {
@ -25,7 +18,7 @@ ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain)
ngx_err_t err; ngx_err_t err;
ngx_array_t vec; ngx_array_t vec;
ngx_event_t *rev; ngx_event_t *rev;
struct iovec *iov, iovs[NGX_IOVS]; struct iovec *iov, iovs[NGX_IOVS_PREALLOCATE];
rev = c->read; rev = c->read;
@ -67,7 +60,7 @@ ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain)
vec.elts = iovs; vec.elts = iovs;
vec.nelts = 0; vec.nelts = 0;
vec.size = sizeof(struct iovec); vec.size = sizeof(struct iovec);
vec.nalloc = NGX_IOVS; vec.nalloc = NGX_IOVS_PREALLOCATE;
vec.pool = c->pool; vec.pool = c->pool;
/* coalesce the neighbouring bufs */ /* coalesce the neighbouring bufs */

View File

@ -35,12 +35,7 @@ ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in,
#endif #endif
#if (IOV_MAX > 64) #define NGX_SENDFILEVECS NGX_IOVS_PREALLOCATE
#define NGX_SENDFILEVECS 64
#else
#define NGX_SENDFILEVECS IOV_MAX
#endif
ngx_chain_t * ngx_chain_t *

View File

@ -10,13 +10,6 @@
#include <ngx_event.h> #include <ngx_event.h>
#if (IOV_MAX > 64)
#define NGX_IOVS 64
#else
#define NGX_IOVS IOV_MAX
#endif
ngx_chain_t * ngx_chain_t *
ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
{ {
@ -28,7 +21,7 @@ ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
ngx_array_t vec; ngx_array_t vec;
ngx_chain_t *cl; ngx_chain_t *cl;
ngx_event_t *wev; ngx_event_t *wev;
struct iovec *iov, iovs[NGX_IOVS]; struct iovec *iov, iovs[NGX_IOVS_PREALLOCATE];
wev = c->write; wev = c->write;
@ -57,7 +50,7 @@ ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit)
vec.elts = iovs; vec.elts = iovs;
vec.size = sizeof(struct iovec); vec.size = sizeof(struct iovec);
vec.nalloc = NGX_IOVS; vec.nalloc = NGX_IOVS_PREALLOCATE;
vec.pool = c->pool; vec.pool = c->pool;
for ( ;; ) { for ( ;; ) {