lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 21 Mar 2019 16:48:23 -0400 From: "Theodore Ts'o" <tytso@....edu> To: Lukas Czerner <lczerner@...hat.com> Cc: Ext4 Developers List <linux-ext4@...r.kernel.org>, darrick.wong@...cle.com Subject: Re: [PATCH 8/9] e2scrub_all: refactor device probe loop On Thu, Mar 21, 2019 at 09:17:10PM +0100, Lukas Czerner wrote: > > Right, I did mention it later in the reply. It can be filtered > > grep -v '^/dev/' Well, that assumes all device nodes are in /dev. Which is not necessarily always the case, especially in some of the more _whacky_ container setups which I've seen. (Hmm, is whacky redundant here?) I suppose can test whether or not the path is a block device or a directory..... > > For me this new function is the wors of all. > > cold cache: > real 0m2.115s > user 0m0.040s > sys 0m0.154s > > second time: > real 0m1.100s > user 0m0.037s > sys 0m0.122s > > But that's because of blkid which is terribly slow for some reason. I ran my test on a system with a NVMe SSD, and no HDD's attached. I just did an strace, and I see the util-linux folks have really done a great job of pessimizing blkid. :-( My version used to just pull the information from the blkid cache file and then verified the results, but it looks like the new, improved util-linux version of blkid scans the /dev directory and opens and reads from each device node, even when we're querying a single block device. <groan> Even lsblk is *amazingly* inefficient in terms of the number of useless file opens which it performs, although at least they are all /sysfs files. I'm half tempted to create and ship a binary which just calls ext2fs_check_mount_point() and returns the value, since it's the most efficient. This command sudo strace -o /tmp/st /build/e2fsprogs-maint/lib/ext2fs/tst_ismounted /dev/lambda/tp Opens /proc/mounts and does a trial mount of /dev/lambda/tp to make sure it's actually busy, and that's it. Sigh... - Ted
Powered by blists - more mailing lists