All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/4]
@ 2018-01-22  2:04 Deepa Dinamani
  2018-01-22  2:04 ` [PATCH v6 1/4] vfs: Add file timestamp range support Deepa Dinamani
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Deepa Dinamani @ 2018-01-22  2:04 UTC (permalink / raw)
  To: viro, tytso, adilger.kernel, linux-ext4
  Cc: torvalds, linux-fsdevel, linux-kernel, arnd, y2038

The series is aimed at adding support to maintain individual
timestamp ranges for filesystems. This helps futimens, utimensat
and utimes syscalls to conform to POSIX defined behavior when
the time being set is outside of the corresponding filesystem's
supported limits.

The series was developed with discussions and guidance from
Arnd Bergmann.

The original thread is at https://lkml.org/lkml/2016/11/2/294

I will be submitting follow up kernel patches to update all
filesystems.
Currently ext4 is the only filesystem that reflects correct limits.

The branch is available at
https://github.com/deepa-hub/vfs.git refs/heads/range

Changes since v5:
* Dropped y2038-specific changes
Changes since v4:
* Added documentation for boot param
Changes since v3:
* Remove redundant initializations in libfs.c
* Change early_param to __setup similar to other root mount options.
* Fix documentation warning
Changes since v2:
* Introduce early boot param override for checks.
* Drop afs patch for timestamp limits.
Changes since v1:
* return EROFS on mount errors
* fix mtime copy/paste error in utimes

Deepa Dinamani (4):
  vfs: Add file timestamp range support
  ext4: Initialize timestamps limits
  vfs: Add timestamp_truncate() api
  utimes: Clamp the timestamps before update

 fs/ext4/ext4.h         |  4 ++++
 fs/ext4/super.c        |  7 ++++++-
 fs/inode.c             | 32 +++++++++++++++++++++++++++++++-
 fs/super.c             |  2 ++
 fs/utimes.c            | 17 +++++++++++++----
 include/linux/fs.h     |  3 +++
 include/linux/time64.h |  2 ++
 7 files changed, 61 insertions(+), 6 deletions(-)

-- 
2.14.1

Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Andreas Dilger <adilger.kernel@dilger.ca>
Cc: linux-ext4@vger.kernel.org

^ permalink raw reply	[flat|nested] 16+ messages in thread
* [PATCH V6 0/4]
@ 2011-05-26 19:29 Shirley Ma
  0 siblings, 0 replies; 16+ messages in thread
From: Shirley Ma @ 2011-05-26 19:29 UTC (permalink / raw)
  To: David Miller, mst, Eric Dumazet, Avi Kivity, Arnd Bergmann
  Cc: netdev, kvm, linux-kernel

This patchset add supports for TX zero-copy between guest and host
kernel through vhost. It significantly reduces CPU utilization on the
local host on which the guest is located (It reduced about 50% CPU usage
for single stream test on the host, while 4K message size BW has
increased about 50%). The patchset is based on previous submission and
comments from the community regarding when/how to handle guest kernel
buffers to be released. This is the simplest approach I can think of
after comparing with several other solutions.

This patchset has integrated V3 review comments from community: 

1. Add more comments on how to use device ZEROCOPY flag;

2. Change device ZEROCOPY to available bit 31

3. Fix skb header linear allocation when virtio_net GSO is not enabled

It has integrated V4 review comments from MST and Sridhar:

1. In vhost, using socket poll wake up for outstanding DMAs

2. Add detailed comments for vhost_zerocopy_signal_used call

3. Add sleep in vhost shutting down instead of busy-wait for outstanding
   DMAs.

4. Copy small packets, don't do zero-copy callback in mavtap, mark it's
   DMA done in vhost

5. change zerocopy to bool in macvtap.

It integrates V5 review comments from MST and 


Michał Mirosław <mirqus@gmail.com>

1. Prevent userspace apps from holding skb userspace buffers by copying
userspace buffers to kernel in skb_clone, skb_copy, pskb_copy,
pskb_expand_head.

2. It is also used HIGHDMA, SG feature bits to enable ZEROCOPY to remove
the dependency of a new feature bit, we can add it later when new
feature bit is available.

This patchset includes:

1/4: Add a new sock zero-copy flag, SOCK_ZEROCOPY;

2/4: Add a new struct skb_ubuf_info in skb_share_info for userspace
buffers release callback when lower device DMA has done for that skb,
which is the last reference count gone; Or whenever skb_clone, skb_copy,
pskb_copy, pskb_expand_head get call from tcpdump, filtering, these userspace
buffers will be copied into kernel ... we don't want userspace apps to hold
userspace buffers too long.

3/4: Add vhost zero-copy callback in vhost when skb last refcnt is gone;
add vhost_zerocopy_signal_used to notify guest to release TX skb
buffers.

4/4: Add macvtap zero-copy in lower device when sending packet is
greater than 256 bytes.

The patchset is built against most recent net-next linux 2.6.39-rc7. It
has passed netperf/netserver multiple streams stress test, tcpdump
suspended test, dynamically SG change test.

Single TCP_STREAM 120 secs test results over ixgbe 10Gb NIC results:

Message BW(Gb/s)qemu-kvm (NumCPU)vhost-net(NumCPU) PerfTop irq/s
4K      7408.57         92.1%           22.6%           1229
4K(Orig)4913.17         118.1%          84.1%           2086    
8K      9129.90         89.3%           23.3%           1141
8K(Orig)7094.55         115.9%          84.7%           2157
16K     9178.81         89.1%           23.3%           1139
16K(Orig)8927.1         118.7%          83.4%           2262
64K     9171.43         88.4%           24.9%           1253
64K(Orig)9085.85        115.9%          82.4%           2229

For message size less or equal than 2K, there is a known KVM guest TX
overrun issue. With this zero-copy patch, the issue becomes more severe,
guest io_exits has tripled than before, so the performance is not good.
Once the TX overrun problem has been addressed, I will retest the small
message size performance.

 drivers/net/macvtap.c          |  132 ++++++++++++++++++++++++++++++++++++---
 drivers/vhost/net.c            |   44 +++++++++++++-
 drivers/vhost/vhost.c          |   49 +++++++++++++++
 drivers/vhost/vhost.h          |   13 ++++
 include/linux/netdevice.h      |   10 +++
 include/linux/skbuff.h         |   26 ++++++++
 include/net/sock.h             |    1 +
 net/core/skbuff.c              |   81 ++++++++++++++++++++++++-
 8 files changed, 345 insertions(+), 17 deletions(-)



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2018-01-30 16:52 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-22  2:04 [PATCH v6 0/4] Deepa Dinamani
2018-01-22  2:04 ` [PATCH v6 1/4] vfs: Add file timestamp range support Deepa Dinamani
2018-01-22  2:04 ` [PATCH v6 2/4] ext4: Initialize timestamps limits Deepa Dinamani
2018-01-22  2:04   ` Deepa Dinamani
2018-01-22  2:04 ` [PATCH v6 3/4] vfs: Add timestamp_truncate() api Deepa Dinamani
2018-01-22  2:04   ` Deepa Dinamani
2018-01-22 20:25   ` Linus Torvalds
2018-01-22 20:25     ` Linus Torvalds
2018-01-23 16:25     ` Deepa Dinamani
2018-01-24 11:56       ` Arnd Bergmann
2018-01-24 11:56         ` Arnd Bergmann
2018-01-24 17:47         ` Deepa Dinamani
2018-01-24 18:00         ` Linus Torvalds
2018-01-30 16:52           ` Arnd Bergmann
2018-01-22  2:04 ` [PATCH v6 4/4] utimes: Clamp the timestamps before update Deepa Dinamani
  -- strict thread matches above, loose matches on Subject: below --
2011-05-26 19:29 [PATCH V6 0/4] Shirley Ma

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.