delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2002/07/31/14:31:11

Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT cygwin DOT com>
List-Help: <mailto:cygwin-developers-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-developers-owner AT cygwin DOT com
Delivered-To: mailing list cygwin-developers AT cygwin DOT com
Message-ID: <017801c238c0$c4ba5fa0$6132bc3e@BABEL>
From: "Conrad Scott" <Conrad DOT Scott AT dsl DOT pipex DOT com>
To: <cygwin-developers AT cygwin DOT com>
Subject: readv(2) and writev(2)
Date: Wed, 31 Jul 2002 19:33:29 +0100
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000

I'd really like to get access to the scatter/gather IO available
in winsock but currently cygwin implements the readv(2) and
writev(2) system calls by a sequence of reads and writes.  Leaving
aside efficiency questions, this also breaks the semantics of
writev(2) on packet devices since it is meant to do an atomic
write.  (Nb. the WSASend function does have the appropriate
semantics on "message-oriented sockets".)

Of existing packages on cygwin, at least Apache and several of its
modules use writev(2), tho' (AFAICT from a brief glimpse) it's
only over stream sockets, so the semantics problem isn't an issue;
the efficiency one might well be.  My interest (as usual) is
cygserver where writev(2) should make a performance difference.

So, would anyone object if I did the work to change cygwin around
to make use of the underlying scatter/gather operations?

I was thinking of first re-arranging the fhandler interfaces so
that the scatter/gather calls are the primitives and the other
routines end up calling these (as a comment in "syscalls.cc"
suggests).  A second step would be to move the socket code over to
use a scatter/gather implementation via WSASend and WSARecv.

For the moment,

// Conrad



- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019