Hi all, I am forwarding the comments by Mr.Kosaki to the mailing list. It was due to a mistake from my side as I have used man@xxxxxxxxxxxxxxx for my first mail and later corrected it. Best regards and thanks for the Comments, Maxin B. John Sony India Software Center Bangalore, India ---------- Forwarded message ---------- From: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> Date: Thu, Sep 25, 2008 at 11:34 AM Subject: Re: mlock(2) man page modifications To: Maxin John <maxin.john@xxxxxxxxx> Cc: kosaki.motohiro@xxxxxxxxxxxxxx, Michael Kerrisk <mtk.manpages@xxxxxxxxxxxxxx>, man@xxxxxxxxxxxxxxx Hi Maxin, Thank you for your attention. I think your point and your patch are right. However, my patch is trivial regression fix, not behavior change. An older kernel can return EAGAIN at memory stavation. my patch has following hunk. > +++ b/mm/mlock.c > @@ -78,8 +78,6 @@ success: > > mm->locked_vm -= pages; > out: > - if (ret == -ENOMEM) > - ret = -EAGAIN; In addition, 2.6.11 (oldest code of git repository) has following code. static int mlock_fixup(struct vm_area_struct * vma, unsigned long start, unsigned long end, unsigned int newflags) { (snip) vma->vm_mm->locked_vm -= pages; out: if (ret == -ENOMEM) ret = -EAGAIN; return ret; } that behavior is linux mlock's behavior for long long time. Thanks! > Dear Michael, > > As per the mlock(2) implementation bugfix which is present in > Linux 2.6.27-rc2 git commit, > (http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a477097d9c37c1cf289c7f0257dffcfa42d50197), > the mlock(2) man page should be modified to reflect the latest changes > in the kernel. > > See the LKML thread regarding this commit : > http://www.nabble.com/mlock()-return-value-issue-in-kernel-2.6.23.17-td18751601.html > > This patch modifies the mlock(2) behaviour as per the SUSv3 specification. > > [ENOMEM] > Some or all of the address range specified by the addr and > len arguments does not correspond to valid mapped pages > in the address space of the process. > > [EAGAIN] > Some or all of the memory identified by the operation could not > be locked when the call was made. > > > Patch for the mlock.2 to include information about EAGAIN. > ========================================================== > > diff -uNr man-pages-3.10/man2/mlock.2 man-pages-3.10_mlock/man2/mlock.2 > --- man-pages-3.10/man2/mlock.2 2008-09-23 19:22:25.000000000 +0530 > +++ man-pages-3.10_mlock/man2/mlock.2 2008-09-24 19:38:27.786315672 +0530 > @@ -175,6 +175,10 @@ > .B ENOMEM > Some of the specified address range does not correspond to mapped > pages in the address space of the process. > +.TP > +.B EAGAIN > +Some of the memory identified by the operation could not be locked when > +the function call was made. > .LP > For > .BR mlockall (): > > ================================================================= > > Signed-off-by: Maxin B. John <maxin.john@xxxxxxxxxxx> > > Kindly let me know if there are any issues with respect to this modification. > > Thanks and Regards, > > Maxin B. John > Sony India Software Center > Bangalore, India -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html