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  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTikXdFc2dkiaakQERaa6cV7Z-VoEZ5bgRptvCc_w@mail.gmail.com>
Date:	Sat, 26 Mar 2011 04:39:51 +0000
From:	"fykcee1@...il.com" <fykcee1@...il.com>
To:	linux-kernel@...r.kernel.org
Cc:	Heihaier <admin@...her.info>
Subject: ioprio_set: IDLE_CLASS doesn't work as its name suggests

Hi all,

I've tried to make a fast boot according to "Booting Linux in five
seconds"[1]. One method of boot fast is using readahead -- a process
"replay" read actions in IDLE IO class via readahead syscall. Sadly
observed negative results -- according to bootchat diagram, readahead
process actually uses more IO bandwidth that slows down all IO
operations of other ones.

Then I did some tests -- two I/O hog processes, the IDLE IO class one
largely degrades I/O performance of the other one.

The tests were performed on a machine with dual-core cpu (intel
E5400@...GHz), G33 and ICH7, 2G mem, running Ubuntu 10.04. The kernel
version was 2.6.35-25-generic with CFQ as default I/O scheduler.
We ran test programs which time "find $2 -type f -exec cat {} \;" on
~1.9G directory with Normal and IDLE IO class. Before each test, we
reboot the system. Here are the results:

1. Only ran one instance of the test program in Normal IO class:
Job finished in 4m2.365s

2. Ran two instances of the test program, one Normal IO class, the
other Idle IO class:
[Normal]: 7m0.999s
[Idle]: 7m43.180s

3. Ran two instances of the test program, both Normal IO class:
[Normal1]: 8m39.366s
[Normal2]: 8m39.377s

BTW, for those interested in the detail, try the attachment:
1. mkdir ioprio_test
2. cp ioprio_test.c run_test.sh ioprio_test
3. tar xf <system_image.tar.gz> -C ioprio_test/tdir1
4. tar xf <system_image.tar.gz> -C ioprio_test/tdir2
5. reboot; cd ioprio_test && ./run_test.sh 1 => result stored in F.txt
6. reboot; cd ioprio_test && ./run_test.sh 2 => result stored in
F[B0].txt B0[F].txt
7. reboot; cd ioprio_test && ./run_test.sh 3 => result stored in
F[B1].txt B1[F].txt



Regards,
cee1
-------
[1] http://lwn.net/Articles/299483/

View attachment "ioprio_test.c" of type "text/x-csrc" (413 bytes)

Download attachment "run_test.sh" of type "application/x-sh" (577 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ