On Mon, Feb 03, 2014 at 01:24:41AM +0000, shawn@xxxxxxxxxxxxxxx wrote: > ---- Original Message ---- > From: "Andrey Wagin" <avagin@xxxxxxxxx> > To: "Shawn Landden" <shawn@xxxxxxxxxxxxxxx> > CC: "LKML" <linux-kernel@xxxxxxxxxxxxxxx>, "criu@xxxxxxxxxx" > <criu@xxxxxxxxxx>, "Alexander Viro" <viro@xxxxxxxxxxxxxxxxxx>, > linux-fsdevel@xxxxxxxxxxxxxxx, "Thomas Gleixner" <tglx@xxxxxxxxxxxxx> > Sent: Wed, Dec 25, 2013, 12:46 AM > Subject: Re: [CRIU] [PATCH] timerfd: show procfs fdinfo helper > > > 2013/12/24 Shawn Landden <shawn@xxxxxxxxxxxxxxx>: > > | pos: 0 > | flags: 02004002 > | clockid: 0 > > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Shawn Landden <shawn@xxxxxxxxxxxxxxx> > --- > fs/timerfd.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/fs/timerfd.c b/fs/timerfd.c > index 9293121..e5fa587 100644 > --- a/fs/timerfd.c > +++ b/fs/timerfd.c > @@ -25,6 +25,7 @@ > #include <linux/syscalls.h> > #include <linux/compat.h> > #include <linux/rcupdate.h> > +#include <linux/seq_file.h> > > struct timerfd_ctx { > union { > @@ -284,7 +285,23 @@ static ssize_t timerfd_read(struct file *file, > char __user *buf, size_t count, > return res; > } > > +#ifdef CONFIG_PROC_FS > +static int timerfd_show_fdinfo(struct seq_file *m, struct file *f) > +{ > + struct timerfd_ctx *ctx = f->private_data; > + int clockid; > + > + clockid = ctx->clockid; > + seq_printf(m, "clockid:\t%d\n", clockid); > > > > I think we can show ctx->ticks, itimerspec here. The ctx->ticks is > required for proper dumping and restoring timerfd. > > > How? Shouldn't the itemerspec (from timerfd_gettime and restored with > timerfd_settime) and clockid be enough? ctx->ticks is avaliable to userspace programs, so it must be restored, otherwise you can break applications, which use this parameter in own logic. > How do we put the ctx->ticks back into > the restored timerfd if we get it out with procfs? read(2) returns ctx->ticks, so write() can be used for set it. It you don't like this, you can add ioctl for setting ctx->ticks. > > + > + return 0; > +} > +#endif > + > static const struct file_operations timerfd_fops = { > +#ifdef CONFIG_PROC_FS > + .show_fdinfo = timerfd_show_fdinfo, > +#endif > .release = timerfd_release, > .poll = timerfd_poll, > .read = timerfd_read, > -- > 1.8.5.2.297.g3e57c29 > > _______________________________________________ > CRIU mailing list > CRIU@xxxxxxxxxx > https://lists.openvz.org/mailman/listinfo/criu > > _______________________________________________ > CRIU mailing list > CRIU@xxxxxxxxxx > https://lists.openvz.org/mailman/listinfo/criu -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html