On Mon, 2008-09-08 at 17:24 +0100, Mel Gorman wrote:
> When remapping text or data, segments are prepared in a child process and
> later remapped. The status code from the segment preparation is not checked
> and in the event of failure to copy text or data, the main process gets killed
> later when it remaps a useless segment with no data. This patch checks the
> return values from prepare_segment() and recovers gracefully in the event
> prepare_segment() fails. The impact for tests is that remapping tests that
> previously received a SIGKILL or SIGBUS when the hugepage pool was too small
> will instead FAIL with the message "small_bss is not hugepage" or similar.
> 
> Signed-off-by: Mel Gorman <[EMAIL PROTECTED]>

Acked-by: Adam Litke <[EMAIL PROTECTED]>

> ---
>  elflink.c |   10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/elflink.c b/elflink.c
> index 3401ed9..6f55c02 100644
> --- a/elflink.c
> +++ b/elflink.c
> @@ -1027,6 +1027,9 @@ static int obtain_prepared_file(struct seg_info 
> *htlb_seg_info)
>               return -1;
>       }
> 
> +     if (WEXITSTATUS(status) != 0)
> +             return -1;
> +
>       DEBUG("Prepare succeeded\n");
>       return 0;
>  }
> @@ -1216,7 +1219,12 @@ void __lh_hugetlbfs_setup_elflink(void)
>       for (i = 0; i < htlb_num_segs; i++) {
>               ret = obtain_prepared_file(&htlb_seg_table[i]);
>               if (ret < 0) {
> -                     DEBUG("Failed to setup hugetlbfs file\n");
> +                     DEBUG("Failed to setup hugetlbfs file for segment 
> %d\n", i);
> +
> +                     /* Close files we have already prepared */
> +                     for (; i >= 0; i--)
> +                             close(htlb_seg_table[i].fd);
> +
>                       return;
>               }
>       }
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Libhugetlbfs-devel mailing list
> Libhugetlbfs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel
> 
-- 
Adam Litke - (agl at us.ibm.com)
IBM Linux Technology Center


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libhugetlbfs-devel mailing list
Libhugetlbfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to