<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>14264</bug_id>
          
          <creation_ts>2008-01-31 16:24:22 +0300</creation_ts>
          <short_desc>Вызов posix_fadvise в ld.so</short_desc>
          <delta_ts>2008-11-07 20:50:13 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>glibc</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gleb Stiblo">ulfr</reporter>
          <assigned_to name="Gleb F-Malinovskiy">glebfm</assigned_to>
          <cc>glebfm</cc>
    
    <cc>ldv</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>62377</commentid>
    <comment_count>0</comment_count>
    <who name="Gleb Stiblo">ulfr</who>
    <bug_when>2008-01-31 16:24:22 +0300</bug_when>
    <thetext>Приложенный патч добавляет вызов posix_fadvise в ld.so на все подгружаемые
библиотеки. Это позволяет ядру предварительно загрузить библиотеки в кэш, и тем
самыс ускорить запуск программ. Патч взят из SuSe, и немного модифицирован под
Альт ( вызов getenv заменен на __secure_getenv), прикладывать его нужно последним.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62378</commentid>
    <comment_count>1</comment_count>
      <attachid>2402</attachid>
    <who name="Gleb Stiblo">ulfr</who>
    <bug_when>2008-01-31 16:25:15 +0300</bug_when>
    <thetext>Created attachment 2402
Сам патч</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66509</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-03-24 14:00:50 +0300</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=2402) [edit]
&gt; Сам патч

Не похоже, чтобы он делал что-то осмысленное:
$ strace -qe fadvise64 ls /var/empty
fadvise64(3, 0, 29204, POSIX_FADV_WILLNEED) = -1 EINVAL (Invalid argument)
fadvise64(3, 0, 91768, POSIX_FADV_WILLNEED) = -1 EINVAL (Invalid argument)
fadvise64(3, 0, 27652, POSIX_FADV_WILLNEED) = -1 EINVAL (Invalid argument)
fadvise64(3, 0, 1214724, POSIX_FADV_WILLNEED) = -1 EINVAL (Invalid argument)
fadvise64(3, 0, 86496, POSIX_FADV_WILLNEED) = -1 EINVAL (Invalid argument)
fadvise64(3, 0, 16044, POSIX_FADV_WILLNEED) = -1 EINVAL (Invalid argument)
$ </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66510</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-03-24 14:03:41 +0300</bug_when>
    <thetext>Вот ещё информация к размышлению:
$ strace -qe open,fstat64,fadvise64 echo
open(&quot;/lib/libc.so.6&quot;, O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=1208640, ...}) = 0
fadvise64(3, 0, 1214724, POSIX_FADV_WILLNEED) = -1 EINVAL (Invalid argument)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66527</commentid>
    <comment_count>4</comment_count>
    <who name="Gleb Stiblo">ulfr</who>
    <bug_when>2008-03-24 15:19:10 +0300</bug_when>
    <thetext>а какое ядро?
у меня выдаёт следующее:
[14:16:40 warlock@maaneheim work]$strace ./ld-2.5.so /bin/ls 2&gt;&amp;1 | grep fad
mmap2(NULL, 29236, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7fad000
fadvise64(3, 0, 29236, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 91768, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 27652, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 1214724, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 86496, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 16044, POSIX_FADV_WILLNEED) = 0
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66531</commentid>
    <comment_count>5</comment_count>
    <who name="Gleb Stiblo">ulfr</who>
    <bug_when>2008-03-24 15:47:14 +0300</bug_when>
    <thetext>отрабатывает нормально с 2.6.24 и 2.6.18, результат из чрута с ALD и пропатченой
glibc-2.5-alt4:
[14:43:38 root@tunglheim /]#cat /etc/redhat-release 
ALT Linux 4.0 Desktop (Ajuga)

[14:43:52 root@tunglheim /]#strace -qe fadvise64 ls /var/empty
fadvise64(3, 0, 85752, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 170276, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 1202436, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 86496, POSIX_FADV_WILLNEED) = 0
fadvise64(3, 0, 37520, POSIX_FADV_WILLNEED) = 0

[14:46:49 root@tunglheim /]#strace -qe open,fstat64,fadvise64 echo
open(&quot;/etc/ld.so.cache&quot;, O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=113233, ...}) = 0
open(&quot;/lib/libc.so.6&quot;, O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=1192256, ...}) = 0
fadvise64(3, 0, 1202436, POSIX_FADV_WILLNEED) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66548</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-03-24 16:53:52 +0300</bug_when>
    <thetext>(In reply to comment #4)
&gt; а какое ядро?

$ uname -rm
2.6.18-ovz-smp-alt22 x86_64
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66549</commentid>
    <comment_count>7</comment_count>
    <who name="Gleb Stiblo">ulfr</who>
    <bug_when>2008-03-24 17:17:34 +0300</bug_when>
    <thetext>&gt; 2.6.18-ovz-smp-alt22 x86_64
уж не _64 всё портит,
мои результаты на 32-битной системе
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80810</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-11-07 20:50:09 +0300</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; 2.6.18-ovz-smp-alt22 x86_64
&gt; уж не _64 всё портит,
&gt; мои результаты на 32-битной системе

Нет, это ovz не даёт.

Приложено в 2.8.90-alt3</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2402</attachid>
            <date>2008-01-31 16:25:15 +0300</date>
            <delta_ts>2008-01-31 16:25:15 +0300</delta_ts>
            <desc>Сам патч</desc>
            <filename>glibc-2.3.90-ld.so-madvise.diff</filename>
            <type>text/plain</type>
            <size>2459</size>
            <attacher name="Gleb Stiblo">ulfr</attacher>
            
              <data encoding="base64">ZGlmZiAtTmF1ciBnbGliYy0yLjUuMS1hbHQyLm9yaWcvZWxmL2RsLWxvYWQuYyBnbGliYy0yLjUu
MS1hbHQyL2VsZi9kbC1sb2FkLmMKLS0tIGdsaWJjLTIuNS4xLWFsdDIub3JpZy9lbGYvZGwtbG9h
ZC5jCTIwMDgtMDEtMTcgMTY6Mzc6MjMgKzAyMDAKKysrIGdsaWJjLTIuNS4xLWFsdDIvZWxmL2Rs
LWxvYWQuYwkyMDA4LTAxLTE3IDE2OjUxOjQyICswMjAwCkBAIC0xMjEzLDYgKzEyMTMsMTEgQEAK
IAkgICAgZ290byBjYWxsX2xvc2VfZXJybm87CiAJICB9CiAKKwlpZiAoR0xSTyhkbF9tYWR2aXNl
KSkgeworCSAgLy9mYWR2aXNpbmcKKwkgIHBvc2l4X2ZhZHZpc2UgKGZkLCBjLT5tYXBvZmYsIG1h
cGxlbmd0aCwgUE9TSVhfRkFEVl9XSUxMTkVFRCk7CisJfQorCiAJbC0+bF9tYXBfZW5kID0gbC0+
bF9tYXBfc3RhcnQgKyBtYXBsZW5ndGg7CiAJbC0+bF9hZGRyID0gbC0+bF9tYXBfc3RhcnQgLSBj
LT5tYXBzdGFydDsKIApkaWZmIC1OYXVyIGdsaWJjLTIuNS4xLWFsdDIub3JpZy9lbGYvZGwtc3Vw
cG9ydC5jIGdsaWJjLTIuNS4xLWFsdDIvZWxmL2RsLXN1cHBvcnQuYwotLS0gZ2xpYmMtMi41LjEt
YWx0Mi5vcmlnL2VsZi9kbC1zdXBwb3J0LmMJMjAwOC0wMS0xNyAxNjozNzoyNyArMDIwMAorKysg
Z2xpYmMtMi41LjEtYWx0Mi9lbGYvZGwtc3VwcG9ydC5jCTIwMDgtMDEtMTcgMTY6NDQ6MzcgKzAy
MDAKQEAgLTQyLDYgKzQyLDcgQEAKIAogaW50IF9kbF9kZWJ1Z19tYXNrOwogaW50IF9kbF9sYXp5
OworaW50IF9kbF9tYWR2aXNlOwogRWxmVyhBZGRyKSBfZGxfdXNlX2xvYWRfYmlhcyA9IC0yOwog
aW50IF9kbF9keW5hbWljX3dlYWs7CiAKQEAgLTI1MSw2ICsyNTIsOCBAQAogCiAgIF9kbF9sYXp5
ID0gKihfX3NlY3VyZV9nZXRlbnYgKCJMRF9CSU5EX05PVyIpID86ICIiKSA9PSAnXDAnOwogCisg
IF9kbF9tYWR2aXNlID0gKihfX3NlY3VyZV9nZXRlbnYgKCJMRF9OT01BRFZJU0UiKSA/OiAiIikg
PT0gJ1wwJzsKKwogICBfZGxfYmluZF9ub3QgPSAqKF9fc2VjdXJlX2dldGVudiAoIkxEX0JJTkRf
Tk9UIikgPzogIiIpICE9ICdcMCc7CiAKICAgX2RsX2R5bmFtaWNfd2VhayA9ICooX19zZWN1cmVf
Z2V0ZW52ICgiTERfRFlOQU1JQ19XRUFLIikgPzogIiIpID09ICdcMCc7CmRpZmYgLU5hdXIgZ2xp
YmMtMi41LjEtYWx0Mi5vcmlnL2VsZi9ydGxkLmMgZ2xpYmMtMi41LjEtYWx0Mi9lbGYvcnRsZC5j
Ci0tLSBnbGliYy0yLjUuMS1hbHQyLm9yaWcvZWxmL3J0bGQuYwkyMDA4LTAxLTE3IDE2OjM3OjI3
ICswMjAwCisrKyBnbGliYy0yLjUuMS1hbHQyL2VsZi9ydGxkLmMJMjAwOC0wMS0xNyAxNjo0Mzo0
OSArMDIwMApAQCAtMTUyLDYgKzE1Miw3IEBACiAgICAgLl9kbF9sYXp5ID0gMSwKICAgICAuX2Rs
X2ZwdV9jb250cm9sID0gX0ZQVV9ERUZBVUxULAogICAgIC5fZGxfcG9pbnRlcl9ndWFyZCA9IDEs
CisgICAgLl9kbF9tYWR2aXNlID0gMSwKIAogICAgIC8qIEZ1bmN0aW9uIHBvaW50ZXJzLiAgKi8K
ICAgICAuX2RsX2RlYnVnX3ByaW50ZiA9IF9kbF9kZWJ1Z19wcmludGYsCkBAIC0yNTc0LDYgKzI1
NzUsMTQgQEAKIAkgIGJyZWFrOwogCiAJY2FzZSA5OgorCSAgLyogVGVzdCB3aGV0aGVyIHdlIHNo
b3VsZCBub3QgYWR2aXNlIHRoZSBrZXJuZWwKKwkgICAgIGFib3V0IG1lbW9yeSB1c2FnZS4gICov
CisJICBpZiAobWVtY21wIChlbnZsaW5lLCAiTk9NQURWSVNFIiwgOSkgPT0gMCkKKwkgICAgewor
CSAgICAgIEdMUk8oZGxfbWFkdmlzZSkgPSBlbnZsaW5lWzEwXSA9PSAnXDAnOworCSAgICAgIGJy
ZWFrOworCSAgICB9CisKIAkgIC8qIFRlc3Qgd2hldGhlciB3ZSB3YW50IHRvIHNlZSB0aGUgY29u
dGVudCBvZiB0aGUgYXV4aWxpYXJ5CiAJICAgICBhcnJheSBwYXNzZWQgdXAgZnJvbSB0aGUga2Vy
bmVsLiAgKi8KIAkgIGlmIChtZW1jbXAgKGVudmxpbmUsICJTSE9XX0FVWFYiLCA5KSA9PSAwKQpk
aWZmIC1OYXVyIGdsaWJjLTIuNS4xLWFsdDIub3JpZy9zeXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMu
aCBnbGliYy0yLjUuMS1hbHQyL3N5c2RlcHMvZ2VuZXJpYy9sZHNvZGVmcy5oCi0tLSBnbGliYy0y
LjUuMS1hbHQyLm9yaWcvc3lzZGVwcy9nZW5lcmljL2xkc29kZWZzLmgJMjAwOC0wMS0xNyAxNjoz
NzoyNiArMDIwMAorKysgZ2xpYmMtMi41LjEtYWx0Mi9zeXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMu
aAkyMDA4LTAxLTE3IDE2OjQzOjQ5ICswMjAwCkBAIC01NzMsNiArNTczLDkgQEAKICAgLyogRG8g
d2UgZG8gbGF6eSByZWxvY2F0aW9ucz8gICovCiAgIEVYVEVSTiBpbnQgX2RsX2xhenk7CiAKKyAg
LyogU2hvdWxkIHdlIGFkdmlzZSBrZXJuZWwgYWJvdXQgbWVtb3J5IHVzYWdlPyAqLworICBFWFRF
Uk4gaW50IF9kbF9tYWR2aXNlOworCiAgIC8qIE5vbnplcm8gaWYgcnVudGltZSBsb29rdXBzIHNo
b3VsZCBub3QgdXBkYXRlIHRoZSAuZ290Ly5wbHQuICAqLwogICBFWFRFUk4gaW50IF9kbF9iaW5k
X25vdDsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>