From: Andrew Morton <akpm@zip.com.au>
To: Richard Gooch <rgooch@ras.ucalgary.ca>
Cc: Jeff Garzik <jgarzik@mandrakesoft.com>,
Anton Altaparmakov <aia21@cam.ac.uk>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: fadvise syscall?
Date: Mon, 18 Mar 2002 11:00:36 -0800 [thread overview]
Message-ID: <3C963954.87168F84@zip.com.au> (raw)
In-Reply-To: <3C959D55.14768770@zip.com.au> <200203181641.g2IGf1M20210@vindaloo.ras.ucalgary.ca>
Richard Gooch wrote:
>
> Andrew Morton writes:
> > Note that it applies to a file descriptor. If
> > posix_fadvise(FADV_DONTNEED) is called against a file descriptor,
> > and someone else has an fd open against the same file, that other
> > user gets their foot shot off. That's OK.
>
> Let me verify that I understand what you're saying. Process A and B
> independently open the file. The file is already in the cache (because
> other processes regularly read this file). Process A is slowly reading
> stuff. Process B does FADV_DONTNEED on the whole file. The pages are
> dropped.
>
> You're saying this is OK? How about this DoS attack:
> int fd = open ("/lib/libc.so", O_RDONLY, 0);
> while (1) {
> posix_fadvise (fd, 0, 0, FADVISE_DONTNEED);
> sleep (1);
> }
>
> Let me see that disc head move! Wheeee!
>
POSIX_FADV_DONTNEED could only unmap pages from the caller's
VMA's, so the problem would only affect other processes which
share the same mm - CLONE_MM threads.
If some other process has a reference on the pages then they
wouldn't get unmapped as a result of this. It's the same
as madvise(MADV_DONTNEED).
-
next prev parent reply other threads:[~2002-03-18 19:02 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-17 8:39 fadvise syscall? Jeff Garzik
2002-03-17 8:56 ` Andrew Morton
2002-03-17 9:10 ` Jeff Garzik
2002-03-17 20:18 ` Richard Gooch
2002-03-17 13:41 ` Anton Altaparmakov
2002-03-17 14:31 ` Simon Richter
2002-03-17 14:56 ` Jan Hudec
2002-03-17 15:00 ` Anton Altaparmakov
2002-03-17 19:20 ` Joel Becker
2002-03-17 23:59 ` Anton Altaparmakov
2002-03-18 7:28 ` Jeff Garzik
2002-03-18 7:55 ` Andrew Morton
2002-03-18 8:07 ` Jeff Garzik
2002-03-18 8:17 ` Andrew Morton
2002-03-18 16:41 ` Richard Gooch
2002-03-18 19:00 ` Andrew Morton [this message]
2002-03-18 19:15 ` Richard Gooch
2002-03-22 16:05 ` Pavel Machek
2002-03-24 6:38 ` Stevie O
2002-03-24 11:24 ` Pavel Machek
2002-03-24 12:52 ` Anton Altaparmakov
2002-03-25 11:12 ` Pavel Machek
2002-03-18 8:05 ` Joel Becker
2002-03-18 8:10 ` Jeff Garzik
2002-03-18 8:20 ` Joel Becker
2002-03-18 8:14 ` Andrew Morton
2002-03-18 14:39 ` Martin K. Petersen
2002-03-18 19:15 ` Andrew Morton
2002-03-18 19:42 ` Martin K. Petersen
2002-03-19 20:08 ` Eric W. Biederman
2002-03-19 23:38 ` Martin K. Petersen
2002-03-17 15:13 ` Ken Hirsch
2002-03-17 17:14 ` Anton Altaparmakov
2002-03-17 18:31 ` Mark Mielke
2002-03-17 18:35 ` Ken Hirsch
2002-03-17 19:06 ` Anton Altaparmakov
2002-03-17 20:19 ` Ken Hirsch
2002-03-18 0:12 ` Anton Altaparmakov
[not found] ` <a73ujs$5mc$1@cesium.transmeta.com>
2002-03-18 8:58 ` Jan Hudec
2002-03-18 10:08 ` Jeff Garzik
2002-03-18 17:29 ` Mark Mielke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3C963954.87168F84@zip.com.au \
--to=akpm@zip.com.au \
--cc=aia21@cam.ac.uk \
--cc=jgarzik@mandrakesoft.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rgooch@ras.ucalgary.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.