lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <462F3E87.BAA51761@tin.it>
Date:	Wed, 25 Apr 2007 11:41:59 +0000
From:	"A.D.F." <adefacc@....it>
To:	linux-kernel@...r.kernel.org
Subject: sendfile to nonblocking socket

Answer to Alex Vorona (I'm not subscribed to linux kernel list so CC me).

Serious answers to an almost troll question (no offence here :-).

1) The possibility that sendfiles blocks,
   when it has to wait for disk reads / pages,
   has been repeatedly mentioned (and thus known) for ages by everybody
   (including Linus) since kernel 2.2.x;
   if you search the archives (mailing lists, etc.)
   or just google "sendfile blocking" you'll find a lot of stuff about this
issue.

2) A possible answer, to your implicit request to add real asynchronous
support
   to sendfile, is to wait for the general asynchronous support for all
blocking
   syscalls (search the kernel archives in the last 3 months).

3) The simplest solution (that works with every OS) is to just pass
   a small (*) amount of data to each sendfile() call,
   (*) i.e. between 64 KB (very slow disk with DMA disabled)
       and 1024 KB (very fast disk).
 
   Of course, if files to be sent are not in page cache and
   there are more than 10 - 100 parallel downloads of different files,
   you'll see noticeable latencies (because of disk seeks, etc.);
   in any case you may want to add a parameter to this nginx thing
   to let the tuning of chunk size.

4) As it has already been mentioned by others, there are many good solutions
   that can be used right now to allow the required scalability target:
    - using threads;
    - using asynchronous I/O;
    - etc.

5) If you want to use some other Web Server that just works,
   look for the alternatives (including lighttpd or even Apache).

-- 
Nick Name:     A.D.F.
E-Mail:        <adefacc () tin ! it>
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ