Package: dpkg
Version: 1.20.12
Severity: wishlist

Dear Maintainer,

on many of my systems using nvme drives or even sata ssds, the
FS_IOC_FIEMAP scan that dpkg does is not only superfluous, but with a
large number of packages installed, absolutely dominates the installation
time (based on profiling) - essentially, dpkg does nothing else during the
preparing/unpacxking/selecting steps.

and while being a very useful optimisation for spinning rust drives, when
installing many small packages, the scan is apparently done for every
package unpack, when, again, on modern systems, everything is in the cache
aftzer the first pass.

could you consider making this scan optional (i.e. off-switchable via an
option)? this way, users can disable it in dpkg.cfg on those systems where
it matters, while still retaining it by default (I do not think trying to
autodetect ssds is a good idea here, and a switch should be trivial to
implement).

thanks a lot for your consideration!

PS: it might also be a good idea to reconsider the whole scan - fiemap
often creates just as many seeks as a stat or an open, especially on more
complicated filesystems. In fact, sorting by inode numbers (which are
essentially free info) is often a good approximation for locality on many
filesystems and might be a good replacement strategy.

-- Package-specific info:
System tainted due to merged-usr-via-aliased-dirs.

-- System Information:
Debian Release: 11.7
  APT prefers stable-updates
  APT policy: (990, 'stable-updates'), (990, 'stable-security'), (990, 
'stable'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 
'stable-debug'), (500, 'unstable'), (500, 'testing'), (1, 
'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, x32

Kernel: Linux 6.1.27-schmorp (SMP w/24 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_USER, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages dpkg depends on:
ii  libbz2-1.0   1.0.8-4
ii  libc6        2.31-13+deb11u6
ii  liblzma5     5.2.5-2.1~deb11u1
ii  libselinux1  3.1-3
ii  tar          1.34+dfsg-1
ii  zlib1g       1:1.2.11.dfsg-2+deb11u2

dpkg recommends no packages.

Versions of packages dpkg suggests:
ii  apt            2.2.4
pn  debsig-verify  <none>

-- Configuration Files:
/etc/dpkg/dpkg.cfg changed [not included]

-- no debconf information

Reply via email to