Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Unix] ? 20.10.04 20:54 Число просмотров: 1666
Автор: Walk Статус: Незарегистрированный пользователь Отредактировано 20.10.04 20:56 Количество правок: 1
|
> Решилось. > Надо было выровнять алоцированную память по границе > страницы (чего в линуксе не требуется, видимо лочились все > страницы, на каторые попадала алоцированная память).
?
Ya bi skazal, 4to viravnivane vklu4eno v sistemnii vizov...
Smotrite Linux kernel-2.6.5 "./mm/mlock.c":
asmlinkage long sys_mlock(unsigned long start, size_t len)
{
unsigned long locked;
unsigned long lock_limit;
int error = -ENOMEM;
down_write(¤t->mm->mmap_sem);
len = PAGE_ALIGN(len + (start & ~PAGE_MASK));
start &= PAGE_MASK;
locked = len >> PAGE_SHIFT;
locked += current->mm->locked_vm;
lock_limit = current->rlim[RLIMIT_MEMLOCK].rlim_cur;
lock_limit >>= PAGE_SHIFT;
/* check against resource limits */
if (locked <= lock_limit)
error = do_mlock(start, len, 1);
up_write(¤t->mm->mmap_sem);
return error;
}
> prx_login = (caddr_t) malloc((size_t)getpagesize()*2); > mlock(((int)prx_login+getpagesize())&~0x1fff, > (size_t)getpagesize()); Nemnogo koriavo kazdii raz vizivat getpagesize()...
S uvazeniem,
Walk
|
|
|