Skip to contentSkip to conversation

Purging the Page Table (was: Purging the Buffer Cache)

DISCUSSION Al Peat 2 participants 2 messages Dec 22, 2000 – Dec 28, 2000

lore
Share & tools
lore

Al Peat

author
#0 lore raw

--- Juri Haberland <[email protected]>

Quoted 8 lines · wrote:
Quoted 3 lines · Al Peat

Is there any way to completely purge the buffer
cache -- not just the write requests (ala 'sync'

or

Quoted 2 lines

'update'), but the whole thing? Can I just call
invalidate_buffers() or destroy_buffers()?

Quoted 6 lines

What about the ioctl BLKFLSBUF ?
If you are running a SuSE distrib there is already a tool called flushb
that does what you want. If not, you can download the simple tool from
http://innominate.org/~juri/flushb.tar.gz

Another question: what if I need to purge the page
table of all files as well? Is there a clean way to do that? I've been looking at /mm/memory.c, but it doesn't look like clear_page_tables, etc. get exported.

I need /all/ read requests to go to disk, and it'd
be nice if I could do that without a reboot (but I'll take the reboot if that's the only way to go about it :)

Thanks again,
Al

__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#1 lore raw
Quoted 5 lines · Al Peat
Quoted 5 lines
Quoted 2 lines

Is there any way to completely purge the buffer
cache -- not just the write requests (ala 'sync'

or

Quoted 2 lines

'update'), but the whole thing? Can I just call
invalidate_buffers() or destroy_buffers()?

Try this script:

case "id -u" in
0) ;;
*) echo Only root can run this script. 1>&2; exit 1 ;;
esac

mount | sort -k3 -r | \
while read dev ON dir TYPE type etc; do
echo mount $dir -o remount
mount $dir -o remount
done

mount | sort -k1 | \
while read dev ON dir TYPE type etc; do
case "$dev" in
/dev/*) echo hdparm -f $dev
hdparm -f $dev >/dev/null ;;
esac
done

-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/