---

 elflink.c |  101 ++++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 53 insertions(+), 48 deletions(-)

diff --git a/elflink.c b/elflink.c
index 63229f6..e38e796 100644
--- a/elflink.c
+++ b/elflink.c
@@ -252,14 +252,14 @@ static int find_or_create_share_path(long page_size)
        if (env) {
                /* Given an explicit path */
                if (hugetlbfs_test_path(env) != 1) {
-                       ERROR("HUGETLB_SHARE_PATH %s is not on a hugetlbfs"
+                       WARNING("HUGETLB_SHARE_PATH %s is not on a hugetlbfs"
                              " filesystem\n", env);
                        return -1;
                }
 
                /* Make sure the page size matches */
                if (page_size != hugetlbfs_test_pagesize(env)) {
-                       ERROR("HUGETLB_SHARE_PATH %s is not valid for a %li "
+                       WARNING("HUGETLB_SHARE_PATH %s is not valid for a %li "
                              "kB page size\n", env, page_size / 1024);
                        return -1;
                }
@@ -276,7 +276,7 @@ static int find_or_create_share_path(long page_size)
 
        ret = mkdir(share_readonly_path, 0700);
        if ((ret != 0) && (errno != EEXIST)) {
-               ERROR("Error creating share directory %s\n",
+               WARNING("Error creating share directory %s\n",
                        share_readonly_path);
                return -1;
        }
@@ -284,24 +284,24 @@ static int find_or_create_share_path(long page_size)
        /* Check the share directory is sane */
        ret = lstat(share_readonly_path, &sb);
        if (ret != 0) {
-               ERROR("Couldn't stat() %s: %s\n", share_readonly_path,
+               WARNING("Couldn't stat() %s: %s\n", share_readonly_path,
                        strerror(errno));
                return -1;
        }
 
        if (! S_ISDIR(sb.st_mode)) {
-               ERROR("%s is not a directory\n", share_readonly_path);
+               WARNING("%s is not a directory\n", share_readonly_path);
                return -1;
        }
 
        if (sb.st_uid != getuid()) {
-               ERROR("%s has wrong owner (uid=%d instead of %d)\n",
+               WARNING("%s has wrong owner (uid=%d instead of %d)\n",
                      share_readonly_path, sb.st_uid, getuid());
                return -1;
        }
 
        if (sb.st_mode & (S_IWGRP | S_IWOTH)) {
-               ERROR("%s has bad permissions 0%03o\n",
+               WARNING("%s has bad permissions 0%03o\n",
                      share_readonly_path, sb.st_mode);
                return -1;
        }
@@ -319,7 +319,7 @@ static void check_bss(unsigned long *start, unsigned long 
*end)
 
        for (addr = start; addr < end; addr++) {
                if (*addr != 0)
-                       WARNING("Non-zero BSS data @ %p: %lx\n", addr, *addr);
+                       DEBUG("Non-zero BSS data @ %p: %lx\n", addr, *addr);
        }
 }
 
@@ -347,14 +347,14 @@ static int get_shared_file_name(struct seg_info 
*htlb_seg_info, char *file_path)
        memset(binary, 0, sizeof(binary));
        ret = readlink("/proc/self/exe", binary, PATH_MAX);
        if (ret < 0) {
-               ERROR("shared_file: readlink() on /proc/self/exe "
+               WARNING("shared_file: readlink() on /proc/self/exe "
                      "failed: %s\n", strerror(errno));
                return -1;
        }
 
        binary2 = basename(binary);
        if (!binary2) {
-               ERROR("shared_file: basename() on %s failed: %s\n",
+               WARNING("shared_file: basename() on %s failed: %s\n",
                      binary, strerror(errno));
                return -1;
        }
@@ -605,7 +605,7 @@ static int save_phdr(int table_idx, int phnum, const 
ElfW(Phdr) *phdr)
        int prot = 0;
 
        if (table_idx >= MAX_HTLB_SEGS) {
-               ERROR("Executable has too many segments (max %d)\n",
+               WARNING("Executable has too many segments (max %d)\n",
                        MAX_HTLB_SEGS);
                htlb_num_segs = 0;
                return -1;
@@ -624,7 +624,7 @@ static int save_phdr(int table_idx, int phnum, const 
ElfW(Phdr) *phdr)
        htlb_seg_table[table_idx].prot = prot;
        htlb_seg_table[table_idx].index = phnum;
 
-       DEBUG("Segment %d (phdr %d): %#0lx-%#0lx  (filesz=%#0lx) "
+       INFO("Segment %d (phdr %d): %#0lx-%#0lx  (filesz=%#0lx) "
                "(prot = %#0x)\n", table_idx, phnum,
                (unsigned long)  phdr->p_vaddr,
                (unsigned long) phdr->p_vaddr + phdr->p_memsz,
@@ -694,7 +694,8 @@ int parse_elf_normal(struct dl_phdr_info *info, size_t 
size, void *data)
                        continue;
 
                if (i >= MAX_SEGS) {
-                       ERROR("Maximum number of PT_LOAD segments exceeded\n");
+                       WARNING("Maximum number of PT_LOAD segments"
+                                       "exceeded\n");
                        return 1;
                }
 
@@ -763,14 +764,14 @@ int parse_elf_partial(struct dl_phdr_info *info, size_t 
size, void *data)
                 */
                memsz = info->dlpi_phdr[i].p_memsz;
                if (memsz < gap) {
-                       DEBUG("Segment %d's unaligned memsz is too small: "
+                       INFO("Segment %d's unaligned memsz is too small: "
                                        "%#0lx < %#0lx\n",
                                        i, memsz, gap);
                        continue;
                }
                memsz -= gap;
                if (memsz < (slice_end - vaddr)) {
-                       DEBUG("Segment %d's aligned memsz is too small: "
+                       INFO("Segment %d's aligned memsz is too small: "
                                        "%#0lx < %#0lx\n",
                                        i, memsz, slice_end - vaddr);
                        continue;
@@ -861,7 +862,7 @@ static int prepare_segment(struct seg_info *seg)
        /* Create the temporary huge page mmap */
        p = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, seg->fd, 0);
        if (p == MAP_FAILED) {
-               ERROR("Couldn't map hugepage segment to copy data: %s\n",
+               WARNING("Couldn't map hugepage segment to copy data: %s\n",
                        strerror(errno));
                return -1;
        }
@@ -875,10 +876,10 @@ static int prepare_segment(struct seg_info *seg)
         * memsz region.  The rest of the memsz is understood to be zeroes and
         * need not be copied.
         */
-       DEBUG("Mapped hugeseg at %p. Copying %#0lx bytes and %#0lx extra bytes"
+       INFO("Mapped hugeseg at %p. Copying %#0lx bytes and %#0lx extra bytes"
                " from %p...", p, seg->filesz, seg->extrasz, seg->vaddr);
        memcpy(p + offset, seg->vaddr, seg->filesz + seg->extrasz);
-       DEBUG_CONT("done\n");
+       INFO_CONT("done\n");
 
        munmap(p, size);
 
@@ -899,13 +900,13 @@ static int fork_and_prepare_segment(struct seg_info 
*htlb_seg_info)
        int pid, ret, status;
 
        if ((pid = fork()) < 0) {
-               DEBUG("fork failed");
+               WARNING("fork failed");
                return -1;
        }
        if (pid == 0) {
                ret = prepare_segment(htlb_seg_info);
                if (ret < 0) {
-                       DEBUG("Failed to prepare segment\n");
+                       WARNING("Failed to prepare segment\n");
                        exit(1);
                }
                else
@@ -913,14 +914,14 @@ static int fork_and_prepare_segment(struct seg_info 
*htlb_seg_info)
        }
        ret = waitpid(pid, &status, 0);
        if (ret == -1) {
-               DEBUG("waitpid failed");
+               WARNING("waitpid failed");
                return -1;
        }
 
        if (WEXITSTATUS(status) != 0)
                return -1;
 
-       DEBUG("Prepare succeeded\n");
+       INFO("Prepare succeeded\n");
        return 0;
 }
 
@@ -983,8 +984,8 @@ static int find_or_prepare_shared_file(struct seg_info 
*htlb_seg_info)
                                /* Also got an exclusive file -> clean up */
                                ret = unlink(tmp_path);
                                if (ret != 0)
-                                       ERROR("shared_file: unable to clean up"
-                                             " unneeded file %s: %s\n",
+                                       WARNING("shared_file: unable to clean "
+                                             "up unneeded file %s: %s\n",
                                              tmp_path, strerror(errno));
                                close(fdx);
                        } else if (errnox != EEXIST) {
@@ -1005,16 +1006,16 @@ static int find_or_prepare_shared_file(struct seg_info 
*htlb_seg_info)
 
                        htlb_seg_info->fd = fdx;
 
-                       DEBUG("Got unpopulated shared fd -- Preparing\n");
+                       INFO("Got unpopulated shared fd -- Preparing\n");
                        ret = fork_and_prepare_segment(htlb_seg_info);
                        if (ret < 0)
                                goto fail;
 
-                       DEBUG("Prepare succeeded\n");
+                       INFO("Prepare succeeded\n");
                        /* move to permanent location */
                        ret = rename(tmp_path, final_path);
                        if (ret != 0) {
-                               ERROR("shared_file: unable to rename %s"
+                               WARNING("shared_file: unable to rename %s"
                                      " to %s: %s\n", tmp_path, final_path,
                                      strerror(errno));
                                goto fail;
@@ -1033,8 +1034,8 @@ static int find_or_prepare_shared_file(struct seg_info 
*htlb_seg_info)
        if (fdx > 0) {
                ret = unlink(tmp_path);
                if (ret != 0)
-                       ERROR("shared_file: Unable to clean up temp file %s on"
-                             " failure: %s\n", tmp_path, strerror(errno));
+                       WARNING("shared_file: Unable to clean up temp file %s "
+                             "on failure: %s\n", tmp_path, strerror(errno));
                close(fdx);
        }
 
@@ -1063,7 +1064,7 @@ static int obtain_prepared_file(struct seg_info 
*htlb_seg_info)
                if (ret == 0)
                        return 0;
                /* but, fall through to unlinked files, if sharing fails */
-               DEBUG("Falling back to unlinked files\n");
+               WARNING("Falling back to unlinked files\n");
        }
        fd = hugetlbfs_unlinked_fd_for_size(hpage_size);
        if (fd < 0)
@@ -1163,14 +1164,15 @@ static int set_hpage_sizes(const char *env)
 
                if (size <= 0) {
                        if (errno == ENOSYS)
-                               ERROR("Hugepages unavailable\n");
+                               WARNING("Hugepages unavailable\n");
                        else if (errno == EOVERFLOW)
-                               ERROR("Hugepage size too large\n");
+                               WARNING("Hugepage size too large\n");
                        else
-                               ERROR("Hugepage size (%s)\n", strerror(errno));
+                               WARNING("Hugepage size (%s)\n",
+                                               strerror(errno));
                        size = 0;
                } else if (!hugetlbfs_find_path_for_size(size)) {
-                       ERROR("Hugepage size %li unavailable", size);
+                       WARNING("Hugepage size %li unavailable", size);
                        size = 0;
                }
 
@@ -1189,12 +1191,12 @@ static int check_env(void)
 
        env = getenv("HUGETLB_ELFMAP");
        if (env && (strcasecmp(env, "no") == 0)) {
-               DEBUG("HUGETLB_ELFMAP=%s, not attempting to remap program "
+               INFO("HUGETLB_ELFMAP=%s, not attempting to remap program "
                      "segments\n", env);
                return -1;
        }
        if (env && set_hpage_sizes(env)) {
-               ERROR("Cannot set elfmap page sizes: %s", strerror(errno));
+               WARNING("Cannot set elfmap page sizes: %s", strerror(errno));
                return -1;
        }
 
@@ -1203,17 +1205,19 @@ static int check_env(void)
                env2 = getenv("HUGETLB_FORCE_ELFMAP");
                if (env2 && (strcasecmp(env2, "yes") == 0)) {
                        force_remap = 1;
-                       DEBUG("HUGETLB_FORCE_ELFMAP=%s, "
+                       INFO("HUGETLB_FORCE_ELFMAP=%s, "
                                        "enabling partial segment "
                                        "remapping for non-relinked "
                                        "binaries\n",
                                        env2);
-                       DEBUG("Disabling filesz copy optimization\n");
+                       INFO("Disabling filesz copy optimization\n");
                        minimal_copy = 0;
                } else {
                        if (&__executable_start) {
-                               ERROR("LD_PRELOAD is incompatible with segment 
remapping\n");
-                               ERROR("Segment remapping has been DISABLED\n");
+                               WARNING("LD_PRELOAD is incompatible with "
+                                       "segment remapping\n");
+                               WARNING("Segment remapping has been "
+                                       "DISABLED\n");
                                return -1;
                        }
                }
@@ -1221,7 +1225,7 @@ static int check_env(void)
 
        env = getenv("HUGETLB_MINIMAL_COPY");
        if (minimal_copy && env && (strcasecmp(env, "no") == 0)) {
-               DEBUG("HUGETLB_MINIMAL_COPY=%s, disabling filesz copy "
+               INFO("HUGETLB_MINIMAL_COPY=%s, disabling filesz copy "
                        "optimization\n", env);
                minimal_copy = 0;
        }
@@ -1230,16 +1234,16 @@ static int check_env(void)
        if (env)
                sharing = atoi(env);
        if (sharing == 2) {
-               ERROR("HUGETLB_SHARE=%d, however sharing of writable\n"
+               WARNING("HUGETLB_SHARE=%d, however sharing of writable\n"
                        "segments has been deprecated and is now disabled\n",
                        sharing);
                sharing = 0;
        } else {
-               DEBUG("HUGETLB_SHARE=%d, sharing ", sharing);
+               INFO("HUGETLB_SHARE=%d, sharing ", sharing);
                if (sharing == 1) {
-                       DEBUG_CONT("enabled for only read-only segments\n");
+                       INFO_CONT("enabled for only read-only segments\n");
                } else {
-                       DEBUG_CONT("disabled\n");
+                       INFO_CONT("disabled\n");
                        sharing = 0;
                }
        }
@@ -1259,7 +1263,7 @@ static int parse_elf()
                dl_iterate_phdr(parse_elf_normal, NULL);
 
        if (htlb_num_segs == 0) {
-               DEBUG("No segments were appropriate for remapping\n");
+               INFO("No segments were appropriate for remapping\n");
                return -1;
        }
 
@@ -1276,7 +1280,7 @@ void hugetlbfs_setup_elflink(void)
        if (parse_elf())
                return;
 
-       DEBUG("libhugetlbfs version: %s\n", VERSION);
+       INFO("libhugetlbfs version: %s\n", VERSION);
 
        /* Do we need to find a share directory */
        if (sharing) {
@@ -1297,7 +1301,8 @@ void 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 for segment 
%d\n", i);
+                       WARNING("Failed to setup hugetlbfs file for segment "
+                                       "%d\n", i);
 
                        /* Close files we have already prepared */
                        for (; i >= 0; i--)


-------------------------------------------------------------------------
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