Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       15 Feb 2006  19:57:04
 To : Eugene Grosbein
 Subject : Re: быстрый reset
 -------------------------------------------------------------------------------- 
 
 15 фев 2006, среда, в 17:46 KRAST, Eugene Grosbein написал(а):
 
  EG> При загрузке FreeBSD с USB (и последующей работе с /dev/da0s1a,
  EG> смонтированным в r/o) может возникнуть ситуация, когда umass0 теряется
  EG> ядром (выдернули из порта). Даже если он потом обратно появляется,
  EG> система оказывается частично неработоспособна.
  EG> Есть ли возможность при определении такой ситуации выполнить
  EG> быструю профилактическую перезагрузку?
 
 Судя по всему, нет. Даже panic() вызывает сброс буферов (только
 двойной panic() не делает этого). Пришлось сделать
 sysctl kern.do_cpu.reset, при записи ненулевого значения в него
 происходит рестарт CPU с выходом в BIOS POST и загрузкой "с нуля".
 
 - --- sys/kern/kern_shutdown.c.orig   Wed Feb 15 13:17:58 2006
 +++ sys/kern/kern_shutdown.c  Wed Feb 15 18:15:21 2006
 @@ -575,6 +575,25 @@
    DELAY(poweroff_delay * 1000);
  }
  
 +static int do_cpu_reset = 0;
 +
 +static int
 +sysctl_do_cpu_reset(SYSCTL_HANDLER_ARGS)
 +{
 +  int error;
 +  int r;
 +  error = sysctl_handle_int(oidp, &r, 0, req);
 +  if (error != 0 || req->newptr == NULL)
 +     return (error);
 +  if ((do_cpu_reset = r))
 +     cpu_reset(); 
 +  return (error);
 +}
 +
 +SYSCTL_PROC(_kern, OID_AUTO, do_cpu_reset, CTLTYPE_INT|CTLFLAG_RW,
 +    0, sizeof(do_cpu_reset), sysctl_do_cpu_reset, "I",
 +    "Write 1 here to reset CPU");
 +
  /*
   * Some system processes (e.g. syncer) need to be stopped at appropriate
   * points in their main loops prior to a system shutdown, so that they
 Eugene
 -- 
 Choose no friends
 --- slrn/0.9.8.0 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 быстрый reset   Eugene Grosbein   15 Feb 2006 18:46:40 
 Re: быстрый reset   Eugene Grosbein   15 Feb 2006 19:57:04 
Архивное /ru.unix.bsd/2609315554fdd.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional