Skip to content

ls: uutils locales support causing excess of statx and readlink syscalls #8761

@kimono-koans

Description

@kimono-koans

Q: After adopting my pending PRs, why would we still see an excess of syscalls for basic ls invocations (~45)?

For context, see my pending PRs:

#8753

#8728

#8660

A: It seems as if perhaps uutils locales support causing excess of statx and readlink syscalls.

First, compare GNU to uutils:

 strace -c ~/program/coreutils/target/release/ls .
...
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ------------------
 31.06    0.000837         837         1           execve
 12.65    0.000341          26        13           mmap
  9.61    0.000259          13        19        14 readlink
  8.16    0.000220          31         7         2 openat
  6.60    0.000178          13        13         7 statx
  4.71    0.000127          25         5           read
  4.34    0.000117          23         5           mprotect
  3.30    0.000089          22         4           brk
  2.63    0.000071          35         2           getdents64
  2.41    0.000065          32         2           munmap
  2.26    0.000061           8         7           rt_sigaction
  2.00    0.000054          10         5           close
  1.97    0.000053          10         5           fstat
  1.30    0.000035          35         1           write
  1.00    0.000027          13         2           pread64
  0.89    0.000024           8         3           sigaltstack
  0.74    0.000020          20         1         1 access
  0.71    0.000019           9         2           prlimit64
  0.67    0.000018          18         1           poll
  0.52    0.000014           2         6           ioctl
  0.45    0.000012           6         2           getrandom
  0.41    0.000011          11         1           sched_getaffinity
  0.37    0.000010          10         1           newfstatat
  0.33    0.000009           9         1           arch_prctl
  0.30    0.000008           8         1           set_tid_address
  0.30    0.000008           8         1           set_robust_list
  0.30    0.000008           8         1           rseq
------ ----------- ----------- --------- --------- ------------------
100.00    0.002695          24       112        24 total
strace -c ls .
...
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 37.63    0.000818         818         1           execve
 21.44    0.000466          25        18           mmap
  7.73    0.000168          24         7           openat
  7.31    0.000159          19         8           fstat
  4.69    0.000102          20         5           read
  4.37    0.000095          31         3           write
  4.37    0.000095          47         2           getdents64
  4.32    0.000094          10         9           close
  2.12    0.000046           9         5           mprotect
  1.56    0.000034          17         2         2 access
  1.15    0.000025          12         2           pread64
  0.83    0.000018           9         2           ioctl
  0.64    0.000014          14         1           statx
  0.41    0.000009           3         3           brk
  0.41    0.000009           9         1           arch_prctl
  0.37    0.000008           8         1           set_tid_address
  0.32    0.000007           7         1           set_robust_list
  0.32    0.000007           7         1           rseq
  0.00    0.000000           0         1           munmap
  0.00    0.000000           0         2         2 statfs
  0.00    0.000000           0         1           prlimit64
  0.00    0.000000           0         1           getrandom
------ ----------- ----------- --------- --------- ----------------
100.00    0.002174          28        77         4 total

Next I'd ask: Who is causing the excess of statx and readlink calls?

 strace -k -e statx,readlink ~/program/coreutils/target/release/ls .
readlink("/proc/self/exe", "/srv/program/coreutils/target/re"..., 256) = 40
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::readlink+0x5b) [0x19061b]
 > /srv/program/coreutils/target/release/ls(std::env::current_exe+0xc9) [0x190389]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x24) [0x1fb904]
statx(AT_FDCWD, "/srv/program/coreutils/target/release/locales/ls", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe06221660) = -1 ENOENT (No such file or directory)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x215) [0x1fbaf5]
statx(0, NULL, AT_STATX_SYNC_AS_STAT, STATX_ALL, NULL) = -1 EFAULT (Bad address)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0x285) [0x18f1f5]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x215) [0x1fbaf5]
statx(AT_FDCWD, "/srv/program/coreutils/target/share/locales/ls", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe06221660) = -1 ENOENT (No such file or directory)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x453) [0x1fbd33]
statx(AT_FDCWD, "/srv/program/coreutils/target/release/ls", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|STATX_BTIME|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0775, stx_size=2593792, ...}) = 0
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x50a) [0x1fbdea]
readlink("/srv", 0x7ffe06221310, 1023)  = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program", 0x7ffe06221310, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program/coreutils", 0x7ffe06221310, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program/coreutils/target", 0x7ffe06221310, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program/coreutils/target/release", 0x7ffe06221310, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program/coreutils/target/release/ls", 0x7ffe06221310, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
statx(AT_FDCWD, "/srv/program/coreutils/uucore/locales", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe062215b0) = -1 ENOENT (No such file or directory)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x4b1) [0x1fc5b1]
readlink("/proc/self/exe", "/srv/program/coreutils/target/re"..., 256) = 40
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::readlink+0x5b) [0x19061b]
 > /srv/program/coreutils/target/release/ls(std::env::current_exe+0xc9) [0x190389]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x24) [0x1fb904]
statx(AT_FDCWD, "/srv/program/coreutils/target/release/locales/ls", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe06221400) = -1 ENOENT (No such file or directory)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x215) [0x1fbaf5]
statx(AT_FDCWD, "/srv/program/coreutils/target/share/locales/ls", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe06221400) = -1 ENOENT (No such file or directory)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x453) [0x1fbd33]
statx(AT_FDCWD, "/srv/program/coreutils/target/release/ls", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|STATX_BTIME|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0775, stx_size=2593792, ...}) = 0
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x50a) [0x1fbdea]
readlink("/proc/self/exe", "/srv/program/coreutils/target/re"..., 256) = 40
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::readlink+0x5b) [0x19061b]
 > /srv/program/coreutils/target/release/ls(std::env::current_exe+0xc9) [0x190389]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x24) [0x1fb904]
statx(AT_FDCWD, "/home/rswinford/program/coreutils/target/release/ls", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|STATX_BTIME|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0775, stx_size=2593792, ...}) = 0
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x215) [0x1fbaf5]
readlink("/home", 0x7ffe0621fc30, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/home/rswinford", 0x7ffe0621fc30, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/home/rswinford/program", "/srv/program", 1023) = 12
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv", 0x7ffe0621fc30, 1023)  = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program", 0x7ffe0621fc30, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program/coreutils", 0x7ffe0621fc30, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program/coreutils/target", 0x7ffe0621fc30, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program/coreutils/target/release", 0x7ffe0621fc30, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
readlink("/srv/program/coreutils/target/release/ls", 0x7ffe0621fc30, 1023) = -1 EINVAL (Invalid argument)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /usr/lib/x86_64-linux-gnu/libc.so.6(realpath+0x3b0) [0x46ae0]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::canonicalize+0x19) [0x1722a9]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::canonicalize+0x137) [0x19a507]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x231) [0x1fc331]
statx(AT_FDCWD, "/srv/program/coreutils/uucore/locales", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe0621fed0) = -1 ENOENT (No such file or directory)
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::create_bundle+0x4b1) [0x1fc5b1]
readlink("/proc/self/exe", "/srv/program/coreutils/target/re"..., 256) = 40
 > /usr/lib/x86_64-linux-gnu/libc.so.6(readlink+0xb) [0x11bb2b]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::readlink+0x5b) [0x19061b]
 > /srv/program/coreutils/target/release/ls(std::env::current_exe+0xc9) [0x190389]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x24) [0x1fb904]
statx(AT_FDCWD, "/home/rswinford/program/coreutils/target/release/ls", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|STATX_BTIME|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0775, stx_size=2593792, ...}) = 0
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uucore::mods::locale::get_locales_dir+0x215) [0x1fbaf5]
statx(AT_FDCWD, ".", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|STATX_BTIME|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=42, ...}) = 0
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(uu_ls::PathData::new+0x97) [0x1b2bc7]
 > unexpected_backtracing_error [0x61ce8b6d44a0]
statx(AT_FDCWD, ".", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|STATX_BTIME|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=42, ...}) = 0
 > /usr/lib/x86_64-linux-gnu/libc.so.6(statx+0xe) [0x11bf4e]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::unix::try_statx+0xb5) [0x18f025]
 > /srv/program/coreutils/target/release/ls(std::sys::fs::metadata+0x159) [0x18ee89]
 > /srv/program/coreutils/target/release/ls(core::cell::once::OnceCell<T>::try_init+0x32) [0x1e7d02]

It would seem only two(?) out of 25 of these calls readlink and statx calls are related to the actual invocation of ls whereas the rest are about locales support (which AFAIK doesn't currently work?).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions