[Cluster-devel] [PATCH 6/8] gfs2: instrumentation wrt log_flush stuck
Bob Peterson
rpeterso at redhat.com
Fri Jun 5 14:48:52 UTC 2020
Hi Andreas,
----- Original Message -----
(snip)
> > @@ -970,7 +969,16 @@ void gfs2_log_flush(struct gfs2_sbd *sdp, struct
> > gfs2_glock *gl, u32 flags)
> >
> > if (!(flags & GFS2_LOG_HEAD_FLUSH_NORMAL)) {
> > if (!sdp->sd_log_idle) {
> > + unsigned long start = jiffies;
> > +
> > for (;;) {
> > + if (time_after(jiffies, start + (HZ *
> > 600))) {
>
> This should probably have some rate limiting as well, for example:
Seems unnecessary. If the log flush gets stuck, the message will be printed
once, and at most every 10 minutes.
> start = jiffies;
>
> I'm not sure what provides similar rate limiting in gfs2_ail1_flush.
>
> > + fs_err(sdp, "Error: In
> > gfs2_log_flush "
> > + "for 10 minutes! t=%d\n",
> > + current->journal_info ? 1 :
> > 0);
>
> Please don't break the format string up like that; this makes grepping
> harder.
How do you propose I break present it without going over 80 character?
I could #define it as a constant, or put it into a separate function
that has less indentation, I suppose.
Bob
More information about the Cluster-devel
mailing list