Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Dec 2007 13:47:25 +0200
From:      "Vlad GALU" <dudu@dudu.ro>
To:        "Ivan Voras" <ivoras@freebsd.org>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: readv: parallel or sequential?
Message-ID:  <ad79ad6b0712070347s4a5d5bb2rc7adfdc54b107dac@mail.gmail.com>
In-Reply-To: <fjbb3v$n60$1@ger.gmane.org>
References:  <fjbb3v$n60$1@ger.gmane.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 12/7/07, Ivan Voras <ivoras@freebsd.org> wrote:
> Hi,
>
> I found this in readv(2):
>
>      For readv() and preadv(), the iovec structure is defined as:
>
>            struct iovec {
>                    void   *iov_base;  /* Base address. */
>                    size_t iov_len;    /* Length. */
>            };
>
>      Each iovec entry specifies the base address and length of an area
> in mem-
>      ory where data should be placed.  The readv() system call will always
>      fill an area completely before proceeding to the next.
>
> Does this mean that, in effect, readv() is just a loop of read() calls
> (minus syscall overhead)?
>

   read() is just a particular case of readv() (with only one iovec
struct, plus the full buffer size), they both call kern_readv(), so
the effect is the same. I assume the manpage means that the iovec
structures are filled sequentially rather than in parallel.

>
>


-- 
Mahnahmahnah!



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