Skip to contentSkip to conversation

VM Requirement Document - v0.0

DISCUSSION Dan Maas 3 participants 3 messages Jun 27, 2001 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Dan Maas

author
#1 lore raw
Quoted 9 lines

Windows NT/2000 has flags that can be for each CreateFile operation ("open" in Unix terms), for instance

FILE_ATTRIBUTE_TEMPORARY
FILE_FLAG_WRITE_THROUGH
FILE_FLAG_NO_BUFFERING
FILE_FLAG_RANDOM_ACCESS
FILE_FLAG_SEQUENTIAL_SCAN

There is a BSD-originated convention for this - madvise().

If you look in the Linux VM code there is a bit of explicit code for different madvise access patterns, but I'm not sure if it's 100% supported.

Drop-behind would be really, really nice to have for my multimedia applications. I routinely deal with very large video files (several times larger than my RAM). When I sequentially read though such files a bit at a time, I do NOT want the old pages sitting there in RAM while all of my other running programs are rudely paged out...

(hrm, maybe I could hack up my own manual read-ahead/drop-behind with mmap() and memory locking...)

Regards,
Dan

#2 lore raw
Quoted 2 lines · Dan Maas

(hrm, maybe I could hack up my own manual read-ahead/drop-behind with mmap() and memory locking...)

Just to argue portability for a moment (portability on the expected results, that is, vs APIs).

Would this technique work across a variety of OSes?

Would the recent caching difficulties of the 2.4.* series have handled such a technique in a reasonable fashion?

mrc

Signature · 3 lines
     Mike Castle      [email protected]      www.netcom.com/~dalgoda/
    We are all of us living in the shadow of Manhattan.  -- Watchmen
fatal ("You are in a maze of twisty compiler features, all different"); -- gcc
#3 lore raw
In reply to Dan Maas
Quoted 10 lines · Dan Maas
Quoted 9 lines

Windows NT/2000 has flags that can be for each CreateFile operation ("open" in Unix terms), for instance

FILE_ATTRIBUTE_TEMPORARY
FILE_FLAG_WRITE_THROUGH
FILE_FLAG_NO_BUFFERING
FILE_FLAG_RANDOM_ACCESS
FILE_FLAG_SEQUENTIAL_SCAN

We do (nearly) already have O_DIRECT which won't touch cache (alas I don't think I will read-ahead more)

Xav