Summary: | Вызов posix_fadvise в ld.so | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Gleb Stiblo <ulfr> | ||||
Component: | glibc | Assignee: | placeholder <placeholder> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | enhancement | ||||||
Priority: | P2 | CC: | glebfm, ldv, placeholder | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Gleb Stiblo
2008-01-31 16:24:22 MSK
Created attachment 2402 [details]
Сам патч
(In reply to comment #1) > Created an attachment (id=2402) [edit] > Сам патч Не похоже, чтобы он делал что-то осмысленное: $ 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) $ Вот ещё информация к размышлению: $ strace -qe open,fstat64,fadvise64 echo open("/lib/libc.so.6", 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) а какое ядро? у меня выдаёт следующее: [14:16:40 warlock@maaneheim work]$strace ./ld-2.5.so /bin/ls 2>&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 отрабатывает нормально с 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("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=113233, ...}) = 0 open("/lib/libc.so.6", 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 (In reply to comment #4) > а какое ядро? $ uname -rm 2.6.18-ovz-smp-alt22 x86_64 > 2.6.18-ovz-smp-alt22 x86_64
уж не _64 всё портит,
мои результаты на 32-битной системе
(In reply to comment #7) > > 2.6.18-ovz-smp-alt22 x86_64 > уж не _64 всё портит, > мои результаты на 32-битной системе Нет, это ovz не даёт. Приложено в 2.8.90-alt3 |