From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753764AbaESJnU (ORCPT ); Mon, 19 May 2014 05:43:20 -0400 Received: from cantor2.suse.de ([195.135.220.15]:53783 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752779AbaESJnR (ORCPT ); Mon, 19 May 2014 05:43:17 -0400 Date: Mon, 19 May 2014 11:43:13 +0200 From: Jan Kara To: Dave Chinner Cc: Mateusz Guzik , =?utf-8?B?THVrw6HFoQ==?= Czerner , sandeen@redhat.com, Jan Kara , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Josef Bacik , Al Viro , Joe Perches Subject: Re: [PATCH V2 2/2] fs: print a message when freezing/unfreezing filesystems Message-ID: <20140519094313.GA3427@quack.suse.cz> References: <20140514220052.GD5421@dastard> <20140514223745.GF5421@dastard> <5373F0D6.4090600@redhat.com> <20140515104746.GF10637@mguzik.redhat.com> <20140515222135.GZ26353@dastard> <20140515223439.GA24089@mguzik.redhat.com> <20140515225141.GA26353@dastard> <20140515231908.GB24089@mguzik.redhat.com> <20140516001156.GI5421@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140516001156.GI5421@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri 16-05-14 10:11:56, Dave Chinner wrote: > On Fri, May 16, 2014 at 01:19:09AM +0200, Mateusz Guzik wrote: > > On Fri, May 16, 2014 at 08:51:41AM +1000, Dave Chinner wrote: > > > On Fri, May 16, 2014 at 12:34:40AM +0200, Mateusz Guzik wrote: > > > > On Fri, May 16, 2014 at 08:21:35AM +1000, Dave Chinner wrote: > > > > > > IOW, a new column in mountinfo. For frozen filesystems it would contain > > > > > > 'frozen_by=[%s]:[%d]' (escaped comm, pid). > > > > > > > > > > I really don't see that the process that froze the filesystem is > > > > > particularly useful - it many cases that process is long gone (e.g. > > > > > fsfreeze is being used to allow a HW array to take a snapshot). Just > > > > > the fact it is in the process of freezing (if stuck, stack trace in > > > > > sysrq-w should be present) or frozen (freezing process may be long > > > > > gone, and is mostly irrelevant because you're now tracking down why > > > > > a thaw hasn't happened)... > > > > > > > > There are deamons which perform freezing and unfreezing on their own. > > > > Thus storing the name along with pid helps to determine whether someone > > > > went behind such daemon's back, or maybe it's the daemon which "forgot" to > > > > unfreeze after all. > > > > > > Such a daemon should be logging the fact that it's freezing and > > > thawing the filesystem. The kernel is not the place to track what > > > buggy userspace applications are doing wrong. > > > > > > > Except there is no log entry if /var got frozen (and this is not an > > imaginary example). > > Freezing the filesystem that the freezing daemon logs to is, well, a > major application architecture fail. Sorry, catering for the lowest > common denominator (i.e. stupidity) is not an valid argument for > adding stuff to the kernel.... Sure it's not a good architecture but it happens either because of a bug or a wrong architecture. So you need to debug it and traces from sysrq-w don't tell you who froze the filesystem. Currently you have to use tracepoints or similar stuff to find that out (e.g. in one case I was debugging it was rpm running a post-install script that froze the fs, believe me that was really unexpected :)). But tracepoints aren't useful after the fact so sometimes it would be useful to be able to find out after the fact who froze the fs (PID and command name to help with situations when the process isn't running anymore). Since this is mostly debug stuff I'd be OK with dumping this information on sysrq request or as Ted suggested from some fs-freeze hang check timer... Hmm? Honza -- Jan Kara SUSE Labs, CR