Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp17725ybz; Thu, 30 Apr 2020 15:36:13 -0700 (PDT) X-Google-Smtp-Source: APiQypIs6Rra5Jm1AprBf1EzncLAj5v02WRCz4JlqOrMmhJmRcXc259m0aL2zIrHkbuqE6O8hY5v X-Received: by 2002:a17:906:a2d3:: with SMTP id by19mr673062ejb.370.1588286173106; Thu, 30 Apr 2020 15:36:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588286173; cv=none; d=google.com; s=arc-20160816; b=0gg5NfOxt6sSzaHu2+k6BYxZNsQSAjCrFvj52+HQo9w+AIInEPVrV4fBN2//pnnbUA yXVKCyP1iy2LbXeJCQemY2tVX9YORynDTk7Yh0e3LtB9ob8l27vQD4B14geGErwMrNZo 96tcwZH1orDBAYn8Xi+NRaKjmU0yibAGE/v4w9Z80HHZt5aPrMfxF26Bs8jCaL9ZOihe 7hDK0p5TmjwXYpUQWWGfrZuEGWynXQjvIpVt3yqzI6o4f01aU6APbokfRpSdfNagG+lk 76vc52D91a2rOaR8g+SEp8DIxNqycWLyzwsS8QP6N/cRLm13nUKYgurxJilmIvIKwPw7 8s7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date:dkim-signature; bh=glo5J57RLpMeVPxORx8COYp8rVuANiK1Sa6UuXE85pQ=; b=l+5pvYiRvIAhSRxv4aXaWkkTWbo+CqynFHlIMNmgfaQ72Ky95VJq8hqAwD9S1FqE/9 PUwROn0G8ye++kAqfh9U/wTiSdBwmXQAWwj0RolxXkxSGq6yLdxQmne42zpUhBQZc/Vf 0eUDRj4X86sJHn4llM8AS0kTLxk1r+Q53r/ZK8uWdc6nnLoorysqeYepHSK8d//0juab 2nuhNB3/HaVZmBSNMnJ32s1Hs4SDJrUxwTnJLSA8KgYkrrDuMtXPwsDRMGcsX5LqC3Jf fs+pj2OGlCYZZPkoRDoF1zCcDgSuHLkzJetqdP9/XmRpnUcCYW60FVyHSRmQ5+bKCYsQ rgjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BnnXkFS0; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b89si532866edf.345.2020.04.30.15.35.47; Thu, 30 Apr 2020 15:36:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BnnXkFS0; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726817AbgD3WfA (ORCPT + 99 others); Thu, 30 Apr 2020 18:35:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:34788 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726784AbgD3WfA (ORCPT ); Thu, 30 Apr 2020 18:35:00 -0400 Received: from localhost (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6BE1820731; Thu, 30 Apr 2020 22:34:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588286099; bh=M3JxNsWKgExkI8i1lNZFsxBk05w+tX6N63RVAkYOjCM=; h=Date:From:To:Cc:Subject:From; b=BnnXkFS0fLFhaPXHl4P5E3UVsVmUtR07WwGxJBqhz5d3OPjd4ZyJYBFYlX4EjcdFJ PGk7o14wzeHcmcErTQ3jvNuGCW8ufrhUP3Vz6FA9RYUko6hzrlfGErj1Y+8uAgLfQk L7jqy7HqrsWmYDHNsK7DppD93TW3Pq9u2Q+FbDJA= Date: Thu, 30 Apr 2020 18:34:58 -0400 From: Sasha Levin To: tytso@mit.edu, adilger.kernel@dilger.ca Cc: linux-ext4@vger.kernel.org, stable@vger.kernel.org, linux-kernel@vger.kernel.org, runderwood@linkedin.com Subject: ext4 perf regression on LTS kernels Message-ID: <20200430223458.GY13035@sasha-vm> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Hi folks, We're working on trying to figure out a severe performance regression in the 5.4 and older LTS trees. The regression seems to happen only on physical spinning rust disks, which is why it was probably went unnoticed. The regression seems to be introduced in v4.7 with: 1f60fbe72749 ("ext4: allow readdir()'s of large empty directories to be interrupted") The fio test used to reproduce it is: sync; i=0; while [ $i -lt 4 ]; do ( ( time fio --name=disk-burner --readwrite=write --bs=4096 --invalidate=1 --end_fsync=0 --filesize=800M --runtime=120 --ioengine=libaio --thread --numjobs=20 --iodepth=1 --unlink=1 ) 2>&1 | grep '^real' ); ((i++)); done When run with the offending commit, it'll take 3-4x longer to complete. The regression was fixed upstream somewhere in this merge: e5da4c933c50 ("Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4") but it seems to be a combination of commits that fix it rather than a single one. Now, here's the tricky part... reverting these two commits on top of v4.19.118 "fixes" the issue: 06bd3c36a733 ("ext4: fix data exposure after a crash") 1f60fbe72749 ("ext4: allow readdir()'s of large empty directories to be interrupted") but clearly this is not something we want to do in the stable trees, so we're trying to figure out the proper way to fix this. -- Thanks, Sasha