All of lore.kernel.org
 help / color / mirror / Atom feed
From: JeffleXu <jefflexu@linux.alibaba.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	virtualization@lists.linux-foundation.org,
	virtio-fs-list <virtio-fs@redhat.com>,
	Joseph Qi <joseph.qi@linux.alibaba.com>,
	linux-fsdevel@vger.kernel.org
Subject: Re: [Virtio-fs] [PATCH v4 0/8] fuse,virtiofs: support per-file DAX
Date: Thu, 19 Aug 2021 14:14:02 +0800	[thread overview]
Message-ID: <b36a4258-cba1-8185-3e23-78a7e4856fc1@linux.alibaba.com> (raw)
In-Reply-To: <YRvNnmy5Mra/AUix@redhat.com>



On 8/17/21 10:54 PM, Vivek Goyal wrote:
[...]
>>
>> As for virtiofs, Dr. David Alan Gilbert has mentioned that various files
>> may compete for limited DAX window resource.
>>
>> Besides, supporting DAX for small files can be expensive. Small files
>> can consume DAX window resource rapidly, and if small files are accessed
>> only once, the cost of mmap/munmap on host can not be ignored.
> 
> W.r.r access pattern, same applies to large files also. So if a section
> of large file is accessed only once, it will consume dax window as well
> and will have to be reclaimed.
> 
> Dax in virtiofs provides speed gain only if map file once and access
> it multiple times. If that pattern does not hold true, then dax does
> not seem to provide speed gains and in fact might be slower than
> non-dax.
> 
> So if there is a pattern where we know some files are accessed repeatedly
> while others are not, then enabling/disabling dax selectively will make
> sense. Question is how many workloads really know that and how will
> you make that decision. Do you have any data to back that up.

Empirically, some files are naturally accessed only once, such as
configuration files under /etc/ directory, .py, .js files, etc. It's the
real case that we have met in real world. While some others are most
likely accessed multiple times, such as .so libraries. With per-file DAX
feature, administrator can decide on their own which files shall be dax
enabled and thus gain most benefit from dax, while others not.

As for how we can distinguish the file access mode, besides the
intuitive insights described previously, we can develop more advanced
method distinguishing it, e.g., scanning the DAX window map and finding
the hot files. With the mechanism offered by kernel, more advanced
strategy can be developed then.

> 
> W.r.t small file, is that a real concern. If that file is being accessed
> mutliple times, then we will still see the speed gain. Only down side
> is that there is little wastage of resources because our minimum dax
> mapping granularity is 2MB. I am wondering can we handle that by
> supporting other dax mapping granularities as well. say 256K and let
> users choose it.
> 


-- 
Thanks,
Jeffle

WARNING: multiple messages have this Message-ID (diff)
From: JeffleXu <jefflexu@linux.alibaba.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	virtualization@lists.linux-foundation.org,
	virtio-fs-list <virtio-fs@redhat.com>,
	Joseph Qi <joseph.qi@linux.alibaba.com>,
	linux-fsdevel@vger.kernel.org
Subject: Re: [Virtio-fs] [PATCH v4 0/8] fuse,virtiofs: support per-file DAX
Date: Thu, 19 Aug 2021 14:14:02 +0800	[thread overview]
Message-ID: <b36a4258-cba1-8185-3e23-78a7e4856fc1@linux.alibaba.com> (raw)
In-Reply-To: <YRvNnmy5Mra/AUix@redhat.com>



On 8/17/21 10:54 PM, Vivek Goyal wrote:
[...]
>>
>> As for virtiofs, Dr. David Alan Gilbert has mentioned that various files
>> may compete for limited DAX window resource.
>>
>> Besides, supporting DAX for small files can be expensive. Small files
>> can consume DAX window resource rapidly, and if small files are accessed
>> only once, the cost of mmap/munmap on host can not be ignored.
> 
> W.r.r access pattern, same applies to large files also. So if a section
> of large file is accessed only once, it will consume dax window as well
> and will have to be reclaimed.
> 
> Dax in virtiofs provides speed gain only if map file once and access
> it multiple times. If that pattern does not hold true, then dax does
> not seem to provide speed gains and in fact might be slower than
> non-dax.
> 
> So if there is a pattern where we know some files are accessed repeatedly
> while others are not, then enabling/disabling dax selectively will make
> sense. Question is how many workloads really know that and how will
> you make that decision. Do you have any data to back that up.

Empirically, some files are naturally accessed only once, such as
configuration files under /etc/ directory, .py, .js files, etc. It's the
real case that we have met in real world. While some others are most
likely accessed multiple times, such as .so libraries. With per-file DAX
feature, administrator can decide on their own which files shall be dax
enabled and thus gain most benefit from dax, while others not.

As for how we can distinguish the file access mode, besides the
intuitive insights described previously, we can develop more advanced
method distinguishing it, e.g., scanning the DAX window map and finding
the hot files. With the mechanism offered by kernel, more advanced
strategy can be developed then.

> 
> W.r.t small file, is that a real concern. If that file is being accessed
> mutliple times, then we will still see the speed gain. Only down side
> is that there is little wastage of resources because our minimum dax
> mapping granularity is 2MB. I am wondering can we handle that by
> supporting other dax mapping granularities as well. say 256K and let
> users choose it.
> 


-- 
Thanks,
Jeffle
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

WARNING: multiple messages have this Message-ID (diff)
From: JeffleXu <jefflexu@linux.alibaba.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>,
	virtualization@lists.linux-foundation.org,
	virtio-fs-list <virtio-fs@redhat.com>,
	Joseph Qi <joseph.qi@linux.alibaba.com>,
	linux-fsdevel@vger.kernel.org
Subject: Re: [Virtio-fs] [PATCH v4 0/8] fuse,virtiofs: support per-file DAX
Date: Thu, 19 Aug 2021 14:14:02 +0800	[thread overview]
Message-ID: <b36a4258-cba1-8185-3e23-78a7e4856fc1@linux.alibaba.com> (raw)
In-Reply-To: <YRvNnmy5Mra/AUix@redhat.com>



On 8/17/21 10:54 PM, Vivek Goyal wrote:
[...]
>>
>> As for virtiofs, Dr. David Alan Gilbert has mentioned that various files
>> may compete for limited DAX window resource.
>>
>> Besides, supporting DAX for small files can be expensive. Small files
>> can consume DAX window resource rapidly, and if small files are accessed
>> only once, the cost of mmap/munmap on host can not be ignored.
> 
> W.r.r access pattern, same applies to large files also. So if a section
> of large file is accessed only once, it will consume dax window as well
> and will have to be reclaimed.
> 
> Dax in virtiofs provides speed gain only if map file once and access
> it multiple times. If that pattern does not hold true, then dax does
> not seem to provide speed gains and in fact might be slower than
> non-dax.
> 
> So if there is a pattern where we know some files are accessed repeatedly
> while others are not, then enabling/disabling dax selectively will make
> sense. Question is how many workloads really know that and how will
> you make that decision. Do you have any data to back that up.

Empirically, some files are naturally accessed only once, such as
configuration files under /etc/ directory, .py, .js files, etc. It's the
real case that we have met in real world. While some others are most
likely accessed multiple times, such as .so libraries. With per-file DAX
feature, administrator can decide on their own which files shall be dax
enabled and thus gain most benefit from dax, while others not.

As for how we can distinguish the file access mode, besides the
intuitive insights described previously, we can develop more advanced
method distinguishing it, e.g., scanning the DAX window map and finding
the hot files. With the mechanism offered by kernel, more advanced
strategy can be developed then.

> 
> W.r.t small file, is that a real concern. If that file is being accessed
> mutliple times, then we will still see the speed gain. Only down side
> is that there is little wastage of resources because our minimum dax
> mapping granularity is 2MB. I am wondering can we handle that by
> supporting other dax mapping granularities as well. say 256K and let
> users choose it.
> 


-- 
Thanks,
Jeffle


  parent reply	other threads:[~2021-08-19  6:14 UTC|newest]

Thread overview: 151+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-17  2:22 [PATCH v4 0/8] fuse,virtiofs: support per-file DAX Jeffle Xu
2021-08-17  2:22 ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22 ` Jeffle Xu
2021-08-17  2:22 ` [PATCH v4 1/8] fuse: add fuse_should_enable_dax() helper Jeffle Xu
2021-08-17  2:22   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22   ` Jeffle Xu
2021-08-17  2:22 ` [PATCH v4 2/8] fuse: Make DAX mount option a tri-state Jeffle Xu
2021-08-17  2:22   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22   ` Jeffle Xu
2021-08-17  2:22 ` [PATCH v4 3/8] fuse: support per-file DAX Jeffle Xu
2021-08-17  2:22   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22   ` Jeffle Xu
2021-08-17  2:22 ` [PATCH v4 4/8] fuse: negotiate if server/client supports " Jeffle Xu
2021-08-17  2:22   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22   ` Jeffle Xu
2021-08-17  2:22 ` [PATCH v4 5/8] fuse: enable " Jeffle Xu
2021-08-17  2:22   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22   ` Jeffle Xu
2021-08-17  2:22 ` [PATCH v4 6/8] fuse: mark inode DONT_CACHE when per-file DAX indication changes Jeffle Xu
2021-08-17  2:22   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22   ` Jeffle Xu
2021-08-17 10:26   ` [Virtio-fs] " Dr. David Alan Gilbert
2021-08-17 10:26     ` Dr. David Alan Gilbert
2021-08-17 10:26     ` Dr. David Alan Gilbert
2021-08-17 13:23     ` JeffleXu
2021-08-17 13:23       ` JeffleXu
2021-08-17 13:23       ` JeffleXu
2021-08-17  2:22 ` [PATCH v4 7/8] fuse: support changing per-file DAX flag inside guest Jeffle Xu
2021-08-17  2:22   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22   ` Jeffle Xu
2021-08-17  2:22 ` [PATCH v4 8/8] fuse: show '-o dax=inode' option only when FUSE server supports Jeffle Xu
2021-08-17  2:22   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:22   ` Jeffle Xu
2021-08-17  2:23 ` [virtiofsd PATCH v4 0/4] virtiofsd: support per-file DAX Jeffle Xu
2021-08-17  2:23   ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:23   ` Jeffle Xu
2021-08-17  2:23   ` [virtiofsd PATCH v4 1/4] virtiofsd: add .ioctl() support Jeffle Xu
2021-08-17  2:23     ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:23     ` Jeffle Xu
2021-08-18 17:33     ` Vivek Goyal
2021-08-18 17:33       ` [Virtio-fs] " Vivek Goyal
2021-08-18 17:33       ` Vivek Goyal
2021-08-17  2:23   ` [virtiofsd PATCH v4 2/4] virtiofsd: expand fuse protocol to support per-file DAX Jeffle Xu
2021-08-17  2:23     ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:23     ` Jeffle Xu
2021-08-17  2:23   ` [virtiofsd PATCH v4 3/4] virtiofsd: support per-file DAX negotiation in FUSE_INIT Jeffle Xu
2021-08-17  2:23     ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:23     ` Jeffle Xu
2021-08-17 17:15     ` [Virtio-fs] " Dr. David Alan Gilbert
2021-08-17 17:15       ` Dr. David Alan Gilbert
2021-08-17 17:15       ` Dr. David Alan Gilbert
2021-08-18  5:28       ` JeffleXu
2021-08-18  5:28         ` JeffleXu
2021-08-18  5:28         ` JeffleXu
2021-08-19 13:57         ` Dr. David Alan Gilbert
2021-08-19 13:57           ` Dr. David Alan Gilbert
2021-08-19 13:57           ` Dr. David Alan Gilbert
2021-08-18 17:30       ` Vivek Goyal
2021-08-18 17:30         ` Vivek Goyal
2021-08-18 17:30         ` Vivek Goyal
2021-08-17  2:23   ` [virtiofsd PATCH v4 4/4] virtiofsd: support per-file DAX in FUSE_LOOKUP Jeffle Xu
2021-08-17  2:23     ` [Virtio-fs] " Jeffle Xu
2021-08-17  2:23     ` Jeffle Xu
2021-08-17 19:00     ` [Virtio-fs] " Dr. David Alan Gilbert
2021-08-17 19:00       ` Dr. David Alan Gilbert
2021-08-17 19:00       ` Dr. David Alan Gilbert
2021-08-18  5:46       ` JeffleXu
2021-08-18  5:46         ` JeffleXu
2021-08-18  5:46         ` JeffleXu
2021-08-19 13:08         ` Dr. David Alan Gilbert
2021-08-19 13:08           ` Dr. David Alan Gilbert
2021-08-19 13:08           ` Dr. David Alan Gilbert
2021-08-20  5:03           ` JeffleXu
2021-08-20  5:03             ` JeffleXu
2021-08-20  5:03             ` JeffleXu
2021-08-24 10:15             ` Greg Kurz
2021-08-24 10:15               ` Greg Kurz
2021-08-24 10:15               ` Greg Kurz
2021-09-08 10:34               ` JeffleXu
2021-09-08 10:34                 ` JeffleXu
2021-09-08 10:34                 ` JeffleXu
2021-08-17  8:06 ` [PATCH v4 0/8] fuse,virtiofs: support per-file DAX Miklos Szeredi
2021-08-17  8:06   ` [Virtio-fs] " Miklos Szeredi
2021-08-17  9:32   ` Dr. David Alan Gilbert
2021-08-17  9:32     ` Dr. David Alan Gilbert
2021-08-17  9:32     ` Dr. David Alan Gilbert
2021-08-17 10:09     ` Miklos Szeredi
2021-08-17 10:09       ` Miklos Szeredi
2021-08-17 10:37       ` Dr. David Alan Gilbert
2021-08-17 10:37         ` Dr. David Alan Gilbert
2021-08-17 10:37         ` Dr. David Alan Gilbert
2021-08-17 13:08       ` JeffleXu
2021-08-17 13:08         ` JeffleXu
2021-08-17 13:08         ` JeffleXu
2021-08-17 14:11         ` Miklos Szeredi
2021-08-17 14:11           ` Miklos Szeredi
2021-08-17 15:19           ` Vivek Goyal
2021-08-17 15:19             ` Vivek Goyal
2021-08-17 15:19             ` Vivek Goyal
2021-08-17 14:54         ` Vivek Goyal
2021-08-17 14:54           ` Vivek Goyal
2021-08-17 14:54           ` Vivek Goyal
2021-08-18  5:10           ` JeffleXu
2021-08-18  5:10             ` JeffleXu
2021-08-18  5:10             ` JeffleXu
2021-08-19  6:14           ` JeffleXu [this message]
2021-08-19  6:14             ` JeffleXu
2021-08-19  6:14             ` JeffleXu
2021-08-17 12:40     ` Vivek Goyal
2021-08-17 12:40       ` Vivek Goyal
2021-08-17 12:40       ` Vivek Goyal
2021-09-16  8:21       ` JeffleXu
2021-09-16  8:21         ` JeffleXu
2021-09-16  8:21         ` JeffleXu
2021-09-18  3:06         ` JeffleXu
2021-09-18  3:06           ` JeffleXu
2021-09-18  3:06           ` JeffleXu
2021-09-19 19:45         ` Vivek Goyal
2021-09-19 19:45           ` Vivek Goyal
2021-09-19 19:45           ` Vivek Goyal
2021-09-22  8:16           ` JeffleXu
2021-09-22  8:16             ` JeffleXu
2021-09-22  8:16             ` JeffleXu
2021-08-17 12:39   ` Vivek Goyal
2021-08-17 12:39     ` [Virtio-fs] " Vivek Goyal
2021-08-17 12:39     ` Vivek Goyal
2021-08-17 13:22     ` JeffleXu
2021-08-17 13:22       ` [Virtio-fs] " JeffleXu
2021-08-17 13:22       ` JeffleXu
2021-08-17 14:08       ` Miklos Szeredi
2021-08-17 14:08         ` [Virtio-fs] " Miklos Szeredi
2021-08-18  3:39         ` JeffleXu
2021-08-18  3:39           ` [Virtio-fs] " JeffleXu
2021-08-18  3:39           ` JeffleXu
2021-08-18  5:08           ` Miklos Szeredi
2021-08-18  5:08             ` [Virtio-fs] " Miklos Szeredi
2021-08-18 16:58             ` Vivek Goyal
2021-08-18 16:58               ` [Virtio-fs] " Vivek Goyal
2021-08-18 16:58               ` Vivek Goyal
2021-09-03  5:30         ` JeffleXu
2021-09-03  5:30           ` [Virtio-fs] " JeffleXu
2021-09-03  5:30           ` JeffleXu
2021-09-07 14:51           ` Miklos Szeredi
2021-09-07 14:51             ` [Virtio-fs] " Miklos Szeredi
2021-08-17 14:57       ` Vivek Goyal
2021-08-17 14:57         ` [Virtio-fs] " Vivek Goyal
2021-08-17 14:57         ` Vivek Goyal
2021-08-18  5:20         ` JeffleXu
2021-08-18  5:20           ` [Virtio-fs] " JeffleXu
2021-08-18  5:20           ` JeffleXu
2021-08-30 23:31         ` [Virtio-fs] " Liu Bo

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=b36a4258-cba1-8185-3e23-78a7e4856fc1@linux.alibaba.com \
    --to=jefflexu@linux.alibaba.com \
    --cc=dgilbert@redhat.com \
    --cc=joseph.qi@linux.alibaba.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=vgoyal@redhat.com \
    --cc=virtio-fs@redhat.com \
    --cc=virtualization@lists.linux-foundation.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.