All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wang Yugui <wangyugui@e16-tech.com>
To: Matthew Wilcox <willy@infradead.org>
Cc: linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org,
	Dave Chinner <david@fromorbit.com>,
	Christoph Hellwig <hch@infradead.org>,
	"Darrick J . Wong" <djwong@kernel.org>
Subject: Re: [PATCH 0/3] Create large folios in iomap buffered write path
Date: Sun, 21 May 2023 09:38:59 +0800	[thread overview]
Message-ID: <20230521093858.06CA.409509F4@e16-tech.com> (raw)
In-Reply-To: <ZGls826bw3WeVG7L@casper.infradead.org>

Hi,

> On Sun, May 21, 2023 at 08:49:53AM +0800, Wang Yugui wrote:
> > Hi,
> > 
> > > Wang Yugui has a workload which would be improved by using large folios.
> > > Until now, we've only created large folios in the readahead path,
> > > but this workload writes without reading.  The decision of what size
> > > folio to create is based purely on the size of the write() call (unlike
> > > readahead where we keep history and can choose to create larger folios
> > > based on that history even if individual reads are small).
> > > 
> > > The third patch looks like it's an optional extra but is actually needed
> > > for the first two patches to work in the write path, otherwise it limits
> > > the length that iomap_get_folio() sees to PAGE_SIZE.
> > 
> > very good test result on 6.4.0-rc2. 
> > # just drop ';' in 'if (bytes > folio_size(folio) - offset);' of [PATCH 3/3].
> > 
> > fio -name write-bandwidth -rw=write -bs=1024Ki -size=32Gi -runtime=30 -iodepth 1
> > -ioengine sync -zero_buffers=1 -direct=0 -end_fsync=1 -numjobs=4
> > -directory=/mnt/test
> > fio WRITE: bw=7655MiB/s (8027MB/s).
> > 
> > Now it is the same as 5.15.y
> 
> Great!  How close is that to saturating the theoretical write bandwidth
> of your storage?

SSD:  PCIe3  SSD U.2 *4 (1.6T/3.2T/3.2T/3.2T, just 800G used) through a NVMe
adapater.
CPU: E5-2680 v2 @ 2.80GHz *2
memory: DDR3 * 3 channel

so theoretical write bandwidth maybe over 12GB/s,
but 8GB/s maybe the in fact bandwidth because of 
- write depth limit
- NVMe adapther limit
- CPU/memory limit

I also noticed a huge improvement for single thread dd.

# 6.4.0-rc2 with this patch
#dd-9.1 conv=fsync bs=1024K count=32K if=/dev/zero of=/mnt/test/dd.txt
34359738368 bytes (34 GB, 32 GiB) copied, 6.96108 s, 4.6 GiB/s

But it is about 2.2GiB/s in xfs/5.15.y.

Best Regards
Wang Yugui (wangyugui@e16-tech.com)
2023/05/21



  reply	other threads:[~2023-05-21  1:39 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-20 16:36 [PATCH 0/3] Create large folios in iomap buffered write path Matthew Wilcox (Oracle)
2023-05-20 16:36 ` [PATCH 1/3] filemap: Allow __filemap_get_folio to allocate large folios Matthew Wilcox (Oracle)
2023-05-21  1:02   ` Wang Yugui
2023-05-21  1:56     ` Matthew Wilcox
2023-05-21  2:04       ` Wang Yugui
2023-05-21  3:39         ` Matthew Wilcox
2023-05-21  2:13   ` Dave Chinner
2023-05-21  3:38     ` Matthew Wilcox
2023-05-23  5:59   ` Christoph Hellwig
2023-05-23 12:17     ` Matthew Wilcox
2023-05-20 16:36 ` [PATCH 2/3] iomap: Create large folios in the buffered write path Matthew Wilcox (Oracle)
2023-05-20 16:36 ` [PATCH 3/3] iomap: Copy larger chunks from userspace Matthew Wilcox (Oracle)
2023-05-20 19:11   ` kernel test robot
2023-05-20 19:25   ` kernel test robot
2023-05-21  0:49 ` [PATCH 0/3] Create large folios in iomap buffered write path Wang Yugui
2023-05-21  0:59   ` Matthew Wilcox
2023-05-21  1:38     ` Wang Yugui [this message]
2023-05-21  2:49 ` Dave Chinner
2023-05-21 11:40 ` Wang Yugui
2023-05-31  4:34   ` Wang Yugui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230521093858.06CA.409509F4@e16-tech.com \
    --to=wangyugui@e16-tech.com \
    --cc=david@fromorbit.com \
    --cc=djwong@kernel.org \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.