Received: by 10.223.176.5 with SMTP id f5csp808045wra; Tue, 30 Jan 2018 20:05:18 -0800 (PST) X-Google-Smtp-Source: AH8x227d0Tr3YsO6f/q8JqDsq9fIJK77SUCj/nuYF1dyYzsKaQS9pW2VmQV21P/f598qIJjIaEFS X-Received: by 2002:a17:902:860b:: with SMTP id f11-v6mr27981247plo.135.1517371517909; Tue, 30 Jan 2018 20:05:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517371517; cv=none; d=google.com; s=arc-20160816; b=ztTnOBdnHHa3/6oLe8FAjjY4ai2sYC/LGG3dFuYOYjRhqtLK8Ftbhqo/94lZdLbKtS xqYf6bXhDv25AYg3wtB0gtxEKCpI04zzThPOfqwCmeLrxaQZqNYFONyRz4phJAFxXHQd goZtG5hYylQCn1VYopIEo3KYuhCOHAgfC6IKqY1Y0n0Fenjvh8v2LXDtE6OsDuMHQvWj 0i8djDf98mcLagHJjqHvVMePhZoQr6uf95UKgH3rWCXThsdC1ZZ9kFWuir/rT4Z4Glgg YC7Cy4swjxmrU/eI8MsPUewE5umq3wQ4J9vrSRqjni02gtJlLycUm9cCWx5adlFcuBDH 7Dug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=wNyknABWf3q5Ew4egKU6nMFJAe6dnyB5kfP8vpACRVU=; b=Uzk8GXN61FyoIvuWrSfyY2xApNnuak7hHqFJzG514A0/AdEtXqTb0n/fBdvy5zwrR7 TbZqJ937xXj97GnN22nBkZUvQbEgEaY49xle5g+F2sxxdjZDj9JjH43Y+JkEjbj4wS/5 IvNRGEh8IYWiNT0JPEnQ5nR/fLDzlcAa4zjhg3pEcRFH4prODq+zkug+vaHfeEqt1qWc KO7WVYtjW7yVupvqWG1ltvCrV/qzKbKhqutmGGgT7Pe8jXcsJriXwBTsZA+itReSxaB0 5Pa+ESOmaD4BWwVtkJQqCI7JHpazOUps0hebr4iEF1g9Po3vQa6DKUwVb0i4eCbKoY9Q CTRw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p1si10358033pgs.755.2018.01.30.20.05.03; Tue, 30 Jan 2018 20:05:17 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753491AbeAaChG (ORCPT + 99 others); Tue, 30 Jan 2018 21:37:06 -0500 Received: from LGEAMRELO11.lge.com ([156.147.23.51]:33634 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751979AbeAaChD (ORCPT ); Tue, 30 Jan 2018 21:37:03 -0500 Received: from unknown (HELO lgemrelse6q.lge.com) (156.147.1.121) by 156.147.23.51 with ESMTP; 31 Jan 2018 11:37:01 +0900 X-Original-SENDERIP: 156.147.1.121 X-Original-MAILFROM: hyc.lee@gmail.com Received: from unknown (HELO localhost.localdomain) (10.177.225.35) by 156.147.1.121 with ESMTP; 31 Jan 2018 11:37:01 +0900 X-Original-SENDERIP: 10.177.225.35 X-Original-MAILFROM: hyc.lee@gmail.com From: Hyunchul Lee To: Jaegeuk Kim , Chao Yu Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, kernel-team@lge.com, Hyunchul Lee Subject: [PATCH v2 0/3] f2fs: support passing down write hints to block layer Date: Wed, 31 Jan 2018 11:36:56 +0900 Message-Id: <1517366219-22166-1-git-send-email-hyc.lee@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Hyunchul Lee Changes since version 1: - Set 'whint_mode' to off if 'active_logs' is two or four - Minor fixes suggested by Chao This set implements passing down write hints to block layer with the following mapping. This mapping equals the conclusion from discussion in the link, https://sourceforge.net/p/linux-f2fs/mailman/message/36170969/ But there are two exceptions. (1) the 'iohint_mode' mount option is changed to 'whint_mode'. (2) in "user-based" mode, WRITE_LIFE_EXTREME is passed down instead of WRITE_LIFE_NOT_SET for files flagged with ioctl(COLD) and extension list. 1) whint_mode=off. F2FS only passes down WRITE_LIFE_NOT_SET. 2) whint_mode=user-based. F2FS tries to pass down hints given by users. User F2FS Block ---- ---- ----- META WRITE_LIFE_NOT_SET HOT_NODE " WARM_NODE " COLD_NODE " *ioctl(COLD) COLD_DATA WRITE_LIFE_EXTREME *extension list " " -- buffered io WRITE_LIFE_EXTREME COLD_DATA WRITE_LIFE_EXTREME WRITE_LIFE_SHORT HOT_DATA WRITE_LIFE_SHORT WRITE_LIFE_NOT_SET WARM_DATA WRITE_LIFE_NOT_SET WRITE_LIFE_NONE " " WRITE_LIFE_MEDIUM " " WRITE_LIFE_LONG " " -- direct io WRITE_LIFE_EXTREME COLD_DATA WRITE_LIFE_EXTREME WRITE_LIFE_SHORT HOT_DATA WRITE_LIFE_SHORT WRITE_LIFE_NOT_SET WARM_DATA WRITE_LIFE_NOT_SET WRITE_LIFE_NONE " WRITE_LIFE_NONE WRITE_LIFE_MEDIUM " WRITE_LIFE_MEDIUM WRITE_LIFE_LONG " WRITE_LIFE_LONG 3) whint_mode=fs-based. F2FS passes down hints with its policy. User F2FS Block ---- ---- ----- META WRITE_LIFE_MEDIUM; HOT_NODE WRITE_LIFE_NOT_SET WARM_NODE " COLD_NODE WRITE_LIFE_NONE ioctl(COLD) COLD_DATA WRITE_LIFE_EXTREME extension list " " -- buffered io WRITE_LIFE_EXTREME COLD_DATA WRITE_LIFE_EXTREME WRITE_LIFE_SHORT HOT_DATA WRITE_LIFE_SHORT WRITE_LIFE_NOT_SET WARM_DATA WRITE_LIFE_LONG WRITE_LIFE_NONE " " WRITE_LIFE_MEDIUM " " WRITE_LIFE_LONG " " -- direct io WRITE_LIFE_EXTREME COLD_DATA WRITE_LIFE_EXTREME WRITE_LIFE_SHORT HOT_DATA WRITE_LIFE_SHORT WRITE_LIFE_NOT_SET WARM_DATA WRITE_LIFE_NOT_SET WRITE_LIFE_NONE " WRITE_LIFE_NONE WRITE_LIFE_MEDIUM " WRITE_LIFE_MEDIUM WRITE_LIFE_LONG " WRITE_LIFE_LONG Hyunchul Lee (3): f2fs: support passing down write hints given by users to block layer f2fs: support passing down write hints to block layer with F2FS policy f2fs: Add the 'whint_mode' mount option to f2fs documentation Documentation/filesystems/f2fs.txt | 6 +++ fs/f2fs/data.c | 28 +++++++++-- fs/f2fs/f2fs.h | 10 ++++ fs/f2fs/segment.c | 98 ++++++++++++++++++++++++++++++++++++++ fs/f2fs/super.c | 35 +++++++++++++- 5 files changed, 171 insertions(+), 6 deletions(-) -- 1.9.1