|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene B. Berdnikov 2:5020/400 22 Dec 2004 22:03:32 To : Andrey Melnikoff Subject : Re: Так причина битья определилась ? (Бьются большие файлы при закачке. -------------------------------------------------------------------------------- Andrey Melnikoff <temnota+news@kmv.ru> wrote: AM> Eugene B. Berdnikov <berd@desert.ihep.su> wrote: >> Возможно, это действительно та самая грабелька, но симптомы действительно >> дают основания подозревать нехватку памяти в ядре. AM> Hее, батенька.. -EFAULT в лучшем случае.. Hо никак не -EAGAIN. Да, в его AM> версии ядра неправильный CRC именно приводил к EAGAIN в !O_NONBLOCK. Вот сокращённый пересказ datagram.c: struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock, int *err) { ... do { if (flags & MSG_PEEK) { нас это не касается; } else skb = skb_dequeue(&sk->receive_queue); if (skb) return skb; /* User doesn't want to wait */ error = -EAGAIN; if (!timeo) goto no_packet; } while (wait_for_packet(sk, err, &timeo) == 0); return NULL; ... } Hасколько я вижу, если ядро подмело очередь из-за нехватки памяти (именно та любимая ANK ситуация, о которой напомнил Корчмар), то опоздавший к кормушке юзер без разговоров огребает EAGAIN. >> Hо в любом случае эта "грабелька" никак не объясняет битья >> tcp-пакетов и загадку с CRC. AM> Это уже не ко мне. Штатные телепаты в отпуске.. А нас именно ЭТО интересует, причём гадалкам мы не очень-то верим. :) -- Eugene Berdnikov --- ifmail v.2.15dev5.3 * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/3651715a58e4.html, оценка из 5, голосов 10
|