linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Deepa Dinamani <deepa.kernel@gmail.com>
Cc: Kees Cook <keescook@chromium.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux FS-devel Mailing List <linux-fsdevel@vger.kernel.org>,
	y2038 Mailman List <y2038@lists.linaro.org>,
	Anton Vorontsov <anton@enomsg.org>,
	Colin Cross <ccross@android.com>, Tony Luck <tony.luck@intel.com>
Subject: Re: [PATCH 19/20] pstore: fs superblock limits
Date: Fri, 2 Aug 2019 09:15:18 +0200	[thread overview]
Message-ID: <CAK8P3a3DyWcvOpMsc__CZDmG50MXRisbBt+mTtwWCGKaNgg_Gg@mail.gmail.com> (raw)
In-Reply-To: <CABeXuvrmNkUOH5ZU59Kg4Ge1cFE9nqp9NhTPJjus5KkCrYeC6w@mail.gmail.com>

On Fri, Aug 2, 2019 at 4:26 AM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> On Tue, Jul 30, 2019 at 12:36 AM Arnd Bergmann <arnd@arndb.de> wrote:
> >
> > On Tue, Jul 30, 2019 at 6:31 AM Kees Cook <keescook@chromium.org> wrote:
> > >
> > > On Mon, Jul 29, 2019 at 06:49:23PM -0700, Deepa Dinamani wrote:
> > > > Also update the gran since pstore has microsecond granularity.
> > >
> > > So, I'm fine with this, but technically the granularity depends on the
> > > backend storage... many have no actual time keeping, though. My point is,
> > > pstore's timestamps are really mostly a lie, but the most common backend
> > > (ramoops) is seconds-granularity.
> > >
> > > So, I'm fine with this, but it's a lie but it's a lie that doesn't
> > > matter, so ...
> > >
> > > Acked-by: Kees Cook <keescook@chromium.org>
> > >
> > > I'm open to suggestions to improve it...
> >
> > If we don't care about using sub-second granularity, then setting it
> > to one second unconditionally here will make it always use that and
> > report it correctly.
>
> Should this printf in ramoops_write_kmsg_hdr() also be fixed then?
>
>         RAMOOPS_KERNMSG_HDR "%lld.%06lu-%c\n",
>         (time64_t)record->time.tv_sec,
>         record->time.tv_nsec / 1000,
>         record->compressed ? 'C' : 'D');
>     persistent_ram_write(prz, hdr, len);
>
> ramoops_read_kmsg_hdr() doesn't read this as microseconds. Seems like
> a mismatch from above.

Good catch. This seems to go back to commit 3f8f80f0cfeb ("pstore/ram:
Read and write to the 'compressed' flag of pstore"), which introduced the
nanosecond read. The write function however has always used
microseconds, and that was kept when the implementation changed
from timeval to timespec in commit 1e817fb62cd1 ("time: create
__getnstimeofday for WARNless calls").

> If we want to agree that we just want seconds granularity for pstore,
> we could replace the tv_nsec part to be all 0's if anybody else is
> depending on this format.
> I could drop this patch from the series and post that patch seperately.

We should definitely fix it to not produce a bogus nanosecond value.
Whether using full seconds or microsecond resolution is better here,
I don't know. It seems that pstore records generally get created
with a nanosecond nanosecond accurate timestamp from
ktime_get_real_fast_ns() and then truncated to the resolution of the
backend, rather than the normal jiffies-accurate inode timestamps that
we have for regular file systems.

This might mean that we do want the highest possible resolution
and not further truncate here, in case that information ends
up being useful afterwards.

         Arnd

  reply	other threads:[~2019-08-02  7:15 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-30  1:49 [PATCH 00/20] vfs: Add support for timestamp limits Deepa Dinamani
2019-07-30  1:49 ` [PATCH 01/20] vfs: Add file timestamp range support Deepa Dinamani
2019-07-30  1:49 ` [PATCH 02/20] vfs: Add timestamp_truncate() api Deepa Dinamani
2019-07-30  1:49 ` [PATCH 03/20] timestamp_truncate: Replace users of timespec64_trunc Deepa Dinamani
2019-07-30  8:27   ` OGAWA Hirofumi
2019-07-30 17:26     ` Deepa Dinamani
2019-07-30 22:28       ` Anton Altaparmakov
2019-07-31  0:08         ` Deepa Dinamani
2019-07-30  1:49 ` [PATCH 04/20] mount: Add mount warning for impending timestamp expiry Deepa Dinamani
2019-08-05 14:12   ` [Y2038] " Ben Hutchings
2019-08-05 14:40     ` Arnd Bergmann
2019-08-10 20:47     ` Deepa Dinamani
2019-08-05 14:14   ` Ben Hutchings
2019-08-10 20:44     ` Deepa Dinamani
2019-08-12 13:25       ` Ben Hutchings
2019-08-12 14:11         ` Arnd Bergmann
2019-08-12 16:09           ` Deepa Dinamani
2019-08-12 16:15             ` Deepa Dinamani
2019-08-12 17:43               ` Ben Hutchings
2019-07-30  1:49 ` [PATCH 05/20] utimes: Clamp the timestamps before update Deepa Dinamani
2019-07-31 15:14   ` Darrick J. Wong
2019-07-31 15:33     ` Deepa Dinamani
2019-08-05 13:30   ` [Y2038] " Ben Hutchings
2019-08-10 20:36     ` Deepa Dinamani
2019-07-30  1:49 ` [PATCH 06/20] fs: Fill in max and min timestamps in superblock Deepa Dinamani
2019-07-31 15:28   ` Darrick J. Wong
2019-07-30  1:49 ` [PATCH 07/20] 9p: Fill min and max timestamps in sb Deepa Dinamani
2019-07-30  1:49 ` [PATCH 08/20] adfs: Fill in max and min " Deepa Dinamani
2019-07-30  1:49 ` [PATCH 09/20] ext4: Initialize timestamps limits Deepa Dinamani
2019-07-31 15:26   ` Darrick J. Wong
2019-08-01 19:18     ` Deepa Dinamani
2019-08-01 22:43       ` Theodore Y. Ts'o
2019-08-02 10:39         ` Arnd Bergmann
2019-08-02 15:43           ` Theodore Y. Ts'o
2019-08-02 19:00             ` Arnd Bergmann
2019-08-02 21:39               ` Theodore Y. Ts'o
2019-08-03  9:30                 ` Arnd Bergmann
2019-08-03 16:02                   ` Theodore Y. Ts'o
2019-08-03 20:24                     ` Arnd Bergmann
2019-08-07 18:04                       ` Andreas Dilger
2019-08-08 18:27                         ` Deepa Dinamani
2019-07-30  1:49 ` [PATCH 10/20] fs: nfs: Initialize filesystem timestamp ranges Deepa Dinamani
2019-07-30  1:49 ` [PATCH 11/20] fs: cifs: " Deepa Dinamani
2019-07-30  1:49 ` [PATCH 12/20] fs: fat: " Deepa Dinamani
2019-07-30  9:31   ` OGAWA Hirofumi
2019-07-30 17:39     ` Deepa Dinamani
2019-07-31  0:48       ` OGAWA Hirofumi
2019-07-30  1:49 ` [PATCH 13/20] fs: affs: " Deepa Dinamani
2019-08-01 11:28   ` David Sterba
2019-07-30  1:49 ` [PATCH 14/20] fs: sysv: " Deepa Dinamani
2019-07-30  1:49 ` [PATCH 15/20] fs: ceph: " Deepa Dinamani
2019-07-30  1:49 ` [PATCH 16/20] fs: orangefs: " Deepa Dinamani
2019-07-30  1:49 ` [PATCH 17/20] fs: hpfs: " Deepa Dinamani
2019-07-30  1:49 ` [PATCH 18/20] fs: omfs: " Deepa Dinamani
2019-07-30 14:25   ` Bob Copeland
2019-07-30  1:49 ` [PATCH 19/20] pstore: fs superblock limits Deepa Dinamani
2019-07-30  4:31   ` Kees Cook
2019-07-30  7:36     ` Arnd Bergmann
2019-08-02  2:26       ` Deepa Dinamani
2019-08-02  7:15         ` Arnd Bergmann [this message]
2019-08-18 14:00           ` Deepa Dinamani
2019-07-30  1:49 ` [PATCH 20/20] isofs: Initialize filesystem timestamp ranges Deepa Dinamani

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK8P3a3DyWcvOpMsc__CZDmG50MXRisbBt+mTtwWCGKaNgg_Gg@mail.gmail.com \
    --to=arnd@arndb.de \
    --cc=anton@enomsg.org \
    --cc=ccross@android.com \
    --cc=deepa.kernel@gmail.com \
    --cc=keescook@chromium.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tony.luck@intel.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=y2038@lists.linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).