From patchwork Mon Apr 4 13:41:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gabriel Krisman Bertazi X-Patchwork-Id: 12800230 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5CE0BC4332F for ; Mon, 4 Apr 2022 13:41:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356949AbiDDNnr (ORCPT ); Mon, 4 Apr 2022 09:43:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356678AbiDDNnp (ORCPT ); Mon, 4 Apr 2022 09:43:45 -0400 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6B0233DDE1 for ; Mon, 4 Apr 2022 06:41:48 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: krisman) with ESMTPSA id C36E01F44928 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1649079707; bh=YQwmxHNUIjUbR7VNXES3Vf/IfbnrF5LgkehmOk77BNw=; h=From:To:Cc:Subject:Date:From; b=PI7ZSbhqgaEIbGIEaDdur34ye52hNFpv96w9yrGxRRmkI7Wetg+yxfEJ9DCToIXb9 66eyp6wDvPq3dGdh61PFYTQykhPFdeGJZoyA/blcpY3IRQLIaP50a6mBcXQMEbcMto lMRj4BXtyZbJDX2uTLgjbiX8fkal+Zrft/7WQPg57i8phrnhLeNLV0fQDHRsp8mQbg rpb2bJGElKZltaL7fDpW3zHKQqWuejXsMSlgsGnBYRHEmfQLOv94Oy7pq/DuFZqTYA 7YSqQPr9ORKxb2V6m/u4scKPabbVRArXOYV/PAUUEjNs1JuJtsjWj6zklrCmCMKn2g xB5HAn+tzCTEA== From: Gabriel Krisman Bertazi To: Hugh Dickins , Andrew Morton , Amir Goldstein Cc: Gabriel Krisman Bertazi , kernel@collabora.com, Khazhismel Kumykov , Linux MM , linux-fsdevel Subject: [PATCH RESEND 0/3] shmem: Allow userspace monitoring of tmpfs for lack of space. Date: Mon, 4 Apr 2022 09:41:34 -0400 Message-Id: <20220404134137.26284-1-krisman@collabora.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org the only difference from v1 is addressing Amir's comment about generating the directory in sysfs using the minor number. * Original cover letter When provisioning containerized applications, multiple very small tmpfs are used, for which one cannot always predict the proper file system size ahead of time. We want to be able to reliably monitor filesystems for ENOSPC errors, without depending on the application being executed reporting the ENOSPC after a failure. It is also not enough to watch statfs since that information might be ephemeral (say the application recovers by deleting data, the issue can get lost). For this use case, it is also interesting to differentiate IO errors caused by lack of virtual memory from lack of FS space. This patch exposes two counters on sysfs that log the two conditions that are interesting to observe for container provisioning. They are recorded per tmpfs superblock, and can be polled by a monitoring application. I proposed a more general approach [1] using fsnotify, but considering the specificity of this use-case, people agreed it seems that a simpler solution in sysfs is more than enough. [1] https://lore.kernel.org/linux-mm/20211116220742.584975-3-krisman@collabora.com/T/#mee338d25b0e1e07cbe0861f9a5ca8cc439b3edb8 To: Hugh Dickins To: Andrew Morton To: Amir Goldstein Cc: Khazhismel Kumykov Cc: Linux MM Cc: linux-fsdevel Gabriel Krisman Bertazi (3): shmem: Keep track of out-of-memory and out-of-space errors shmem: Introduce /sys/fs/tmpfs support shmem: Expose space and accounting error count Documentation/ABI/testing/sysfs-fs-tmpfs | 13 +++ include/linux/shmem_fs.h | 7 ++ mm/shmem.c | 102 ++++++++++++++++++++++- 3 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-fs-tmpfs