Received: by 10.223.176.46 with SMTP id f43csp2753388wra; Mon, 22 Jan 2018 02:51:37 -0800 (PST) X-Google-Smtp-Source: AH8x224xN/K0bbmY2Bl9i2KXtwaEde5izSea4rfxsvAcxIidYSewqR/aAMvmZymDePWMc/11VSls X-Received: by 10.98.166.195 with SMTP id r64mr8050827pfl.175.1516618296918; Mon, 22 Jan 2018 02:51:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516618296; cv=none; d=google.com; s=arc-20160816; b=ZpnJDTNn8UUuiNgY3f7vGyGfUPa6a5gbVyzHnMUBHNr/sv+mbSANrmIXeiUsWRLMcG b9hEzcMs5VTFCZJQYQaiYj8tTqhu3NYM77RDKHCxTQPqLRqRVxrM1gY1h0rXZ4ZS6U4T LT2mrMl8EaTJSDkcIpWvjbQ3UIPt9lokKo6elg7ZroAYGTPIZSwI8YV6nNKKUdPElJpe KWnWZgBBiff8JBf9+MHICfRG3WKIDct9Qg2vhyF/drJybFEs4PSfjp7GbFH9RdmJChz5 i3DL57fp8bQe3iHa1NNpl2E/hCt1vAgcsnWZQDwhm/L+G4jgMNTLg24MTwNayOHsYVmX WomA== 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=udA7gUBz9iv23d/0T+988Z2sU9LVNUyqVCXXAB71u6g=; b=TMCO/ieHb67M8Rr6qIQwLtrTkU1Dlo83zfeIxR/7lqR01UdOW+FOEkK1/ICql/kto6 oGFiiggpZImIVd2knKkyYRFDgCk7lv99ipR9P1GDnkzWp5Of7xtSuiHdgyhQdX+QzeSB bxhQK0XMUsY19nPqKBEegJUcqusATtKqhGaDNNsm52G/RQuXQ3W7nxLRJfzp8Do00QnV vG2RnBh/WvOpvPDZ3YRbf7ycdfBucoMP2yuV9a5sEI/dckkzXS6hnKmdvT2KN/TAWRvV yTYcBpzqIzsyeo9ZPRl4A2o3No5iEGka3qlungqPCNLHSzzLPGHAwe2lQUrpupicG1Qt fQNg== 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 i184si13290449pge.388.2018.01.22.02.51.22; Mon, 22 Jan 2018 02:51:36 -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 S1751192AbeAVKtX (ORCPT + 99 others); Mon, 22 Jan 2018 05:49:23 -0500 Received: from LGEAMRELO11.lge.com ([156.147.23.51]:37116 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751040AbeAVKtV (ORCPT ); Mon, 22 Jan 2018 05:49:21 -0500 Received: from unknown (HELO lgeamrelo04.lge.com) (156.147.1.127) by 156.147.23.51 with ESMTP; 22 Jan 2018 19:49:20 +0900 X-Original-SENDERIP: 156.147.1.127 X-Original-MAILFROM: hyc.lee@gmail.com Received: from unknown (HELO localhost.localdomain) (10.177.225.35) by 156.147.1.127 with ESMTP; 22 Jan 2018 19:49:20 +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 0/3] f2fs: support passing down write hints to block layer Date: Mon, 22 Jan 2018 19:49:06 +0900 Message-Id: <1516618149-1495-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 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. Sorry for late patch. 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 | 27 ++++++++-- fs/f2fs/f2fs.h | 10 ++++ fs/f2fs/segment.c | 104 +++++++++++++++++++++++++++++++++++++ fs/f2fs/super.c | 29 ++++++++++- 5 files changed, 170 insertions(+), 6 deletions(-) -- 1.9.1