Re: fadvise syscall?

From: Richard Gooch (rgooch@ras.ucalgary.ca)
Date: Mon Mar 18 2002 - 14:15:25 EST


Andrew Morton writes:
> 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).

OK, I misparsed what you had said. Good.

                                Regards,

                                        Richard....
Permanent: rgooch@atnf.csiro.au
Current: rgooch@ras.ucalgary.ca
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Mar 23 2002 - 22:00:15 EST