FW: mlock(2) man page modifications

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux