| Summary: | Вызов posix_fadvise в ld.so | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Gleb Stiblo <ulfr> | ||||
| Component: | glibc | Assignee: | Gleb F-Malinovskiy <glebfm> | ||||
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
| Severity: | enhancement | ||||||
| Priority: | P2 | CC: | glebfm, ldv | ||||
| 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 |