|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : mitrohin a.s. 2:5020/400 02 Sep 2006 18:35:15 To : Valentin Davydov Subject : Re: Проблема с сата-хардом -------------------------------------------------------------------------------- On Fri, Sep 01, 2006 at 01:30:02PM +0000, Valentin Davydov wrote: > > From: "mitrohin a.s." <swp@swp.pp.ru> > > Date: Thu, 31 Aug 2006 13:35:45 +0000 (UTC) > >> > > >> >Теперь возвращаясь конкретно к контроллерам sata... Оно может, и > >> >соответству > >ет > >> >стандарту, но со списком оговорок... причём список оговорок (как тут > >> >кем-то приводился пример) в виндовом драйвере учтён, а в доке к > >> >контроллеру об этом > > ни > >> >слова. > >> > >> Да и хрен бы с ним, с контроллером. Возвращаясь к исходному вопросу: под > >> нагрузкой довольно часто (раз в несколько минут) вылетают сообщения > >> > >> kernel: ad10: FAILURE - out of memory in start > >> > >> Контроллер тут явно ни при чём, это взаимодействие различных подпрограмм > >> ядра > >. > >> Собственно, я и не надеюсь уже на написание драйвера, прошу помощи в его > >> чтении: может ли такая ситуация привести к потере данных, или речь идёт > >> только о потере производительности? > >> > > > >"out of memory in start" в сырцах посмотри, может подсказку какую увидишь. > > Естественно, посмотрел. Hекая функция, вызывает разновидность malloc(9), > при неудаче пишет в лог указанную фразу и возвращает ENOMEM. Вызывающая > функция передаёт это значение в некую структуру и возвращает управление > ещё выше. А дальше я запутался, так и не смог проследить, где и когда > это значение анализируется и какое решение принимается. > спросить Сорена? [ata-disk.c] ... static void ad_strategy(struct bio *bp) { device_t dev = bp->bio_disk->d_drv1; struct ata_device *atadev = device_get_softc(dev); struct ata_request *request; if (!(request = ata_alloc_request())) { device_printf(dev, "FAILURE - out of memory in start\n"); biofinish(bp, NULL, ENOMEM); return; } /* setup request */ request->dev = dev; request->bio = bp; request->callback = ad_done; ... [ata-all.h] ... #define ata_alloc_request() uma_zalloc(ata_request_zone, M_NOWAIT | M_ZERO) ... может поменять M_NOWAIT -> M_WAITOK? ;) если все не встанет колом. /swp --- ifmail v.2.15dev5.3 * Origin: BSPU InterNetNews site (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/34999e107e52.html, оценка из 5, голосов 10
|