* mlock() is working?
@ 2007-08-10 3:41 Tiago Vignatti
0 siblings, 0 replies; only message in thread
From: Tiago Vignatti @ 2007-08-10 3:41 UTC (permalink / raw)
To: linux-kernel
Hi guys,
I'm trying to lock some piece of the code in memory using mlock(). I did
a simple program to test it and to certify I using my own simple page
fault notifier [0]. The program is below.
-- cut --
#include <stdio.h>
#include <sys/mman.h>
#define SIZE 10000
int mlock_all = 0;
int
f(void)
{
int c[SIZE];
int i;
if (mlock_all) {
if (!mlockall(MCL_CURRENT))
fprintf(stderr, "mlockall'ed succefully\n");
else
perror("mlockall");
}
else {
if (!mlock(&c[0], SIZE))
fprintf(stderr, "mlock'ed succefully\n");
else
perror("mlock");
}
fprintf(stderr, "start: 0x%x, end: 0x%x\n", &c[0], &c[SIZE]);
for (i = 0; i < SIZE; i++)
c[i] = i;
}
int
main(int argc, char **argv)
{
if (argv[1])
mlock_all = 1;
while(1) {
f();
sleep (15);
}
return 0;
}
-- cut --
So, if I use mlockall() I always obtained the desired result, i.e., I
lock the 'c[SIZE]'. But when I switch to mlock() it never works and my
page fault notifier prints all pages concerning 'c[SIZE]'. Am I missing
something? Is it possible to lock the automatic variables?
My Linux is 2.6.22.2.
my regards
[0] http://lkml.org/lkml/2007/7/27/11
http://lkml.org/lkml/2007/7/27/8
--
Tiago Vignatti
C3SL - Centro de Computação Científica e Software Livre
www.c3sl.ufpr.br
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-08-10 3:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-10 3:41 mlock() is working? Tiago Vignatti
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®