lkml.org 
[lkml]   [2009]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[RFC][PATCH 7/8] add c/r info to fdinfo
    From
    Date

    Use the new checkpoint/restart file functions to query
    and report on each fd in the /proc/$$/fdinfo/X file.

    This should provide an easy way to examine processes
    at runtime to see what exactly is causing their inability
    to checkpoint.

    Signed-off-by: Dave Hansen <dave@linux.vnet.ibm.com>
    ---

    linux-2.6.git-dave/fs/proc/base.c | 8 ++++++++
    1 file changed, 8 insertions(+)

    diff -puN fs/proc/base.c~add-cr-part-to-fdinfo fs/proc/base.c
    --- linux-2.6.git/fs/proc/base.c~add-cr-part-to-fdinfo 2009-02-27 12:07:40.000000000 -0800
    +++ linux-2.6.git-dave/fs/proc/base.c 2009-02-27 12:07:40.000000000 -0800
    @@ -80,6 +80,7 @@
    #include <linux/oom.h>
    #include <linux/elf.h>
    #include <linux/pid_namespace.h>
    +#include <linux/checkpoint.h>
    #include "internal.h"

    /* NOTE:
    @@ -1636,6 +1637,7 @@ out:

    static void proc_fd_write_info(struct file *file, char *info)
    {
    + int checkpointable;
    int max = PROC_FDINFO_MAX;
    int p = 0;
    if (!info)
    @@ -1643,6 +1645,12 @@ static void proc_fd_write_info(struct fi

    p += snprintf(info+p, max-p, "pos:\t%lli\n", (long long) file->f_pos);
    p += snprintf(info+p, max-p, "flags:\t0%o\n", file->f_flags);
    +
    + checkpointable = cr_file_supported(file);
    + p += snprintf(info+p, max-p, "checkpointable:\t%d", checkpointable);
    + if (!checkpointable)
    + p += cr_explain_file(file, info+p, max-p);
    + p += snprintf(info+p, max-p, "\n");
    }

    static int proc_fd_info(struct inode *inode, struct path *path, char *info)
    _

    \
     
     \ /
      Last update: 2009-02-27 21:39    [W:0.022 / U:30.360 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site