[PATCH 00/11] Improve rm speed

Ben Wijen ben@wijen.net
Fri Jan 15 13:45:23 GMT 2021


I have been working on speeding up rm.
The idea is to save on kernel calls.
While kernel calls are fast, not doing
them is still a lot faster.

I do think there is more to gain, but
before I proceed it's best to first see if
this is something you're willing to commit.

I guess the first five patches are trivial,
I would really like some feedback on the last six.

Also, I'd like to state: I provide my patches to
the Cygwin sources under the 2-clause BSD license

Thank you,

Ben Wijen (11):
  syscalls.cc: Deduplicate _remove_r
  syscalls.cc: Fix num_links
  syscalls.cc: Use EISDIR
  Cygwin: Move post-dir unlink check
  cxx.cc: Fix dynamic initialization for static local variables
  syscalls.cc: Implement non-path_conv dependent _unlink_nt
  path.cc: Allow to skip filesystem checks
  mount.cc: Implement poor-man's cache
  syscalls.cc: Expose shallow-pathconv unlink_nt
  dir.cc: Try unlink_nt first

 winsup/cygwin/Makefile.in           |   2 +-
 winsup/cygwin/cxx.cc                |  10 -
 winsup/cygwin/dir.cc                |   6 +
 winsup/cygwin/fhandler_disk_file.cc |  24 +-
 winsup/cygwin/forkable.cc           |   4 +-
 winsup/cygwin/mount.cc              |  78 ++++--
 winsup/cygwin/mount.h               |   2 +-
 winsup/cygwin/ntdll.h               |   3 +-
 winsup/cygwin/path.cc               |   5 +-
 winsup/cygwin/path.h                |   2 +
 winsup/cygwin/syscalls.cc           | 366 +++++++++++++++++++++++-----
 11 files changed, 384 insertions(+), 118 deletions(-)


More information about the Cygwin-patches mailing list