Почему выводятся сообщения ``calcru: negative time''?
Это может быть вызвано различными аппаратными или программными проблемами, связанными с прерываниями. Это может быть связано как с ошибками при программировании, так и с природой самих устройств. Например, работа с TCP/IP по параллельному порту с использованием большого MTU приводит к этой проблеме, также как использование графических акселераторов; в последнем случае вы должны проверить настройку прерываний на графическом адаптере.
Одним из проявлений этой проблемы является прерывание работы процессов с диагностическим сообщением ``SIGXCPU exceeded cpu time limit''.
Если эта проблема не может быть решена, для FreeBSD 3.0 от 29 ноября 1998 и выше измените значение системной переменной:
# sysctl -w kern.timecounter.method=1
Замечание: Использование опции -w для sysctl(8) не рекомендуется и полностью игнорируется во FreeBSD 4.4-RELEASE и всех последующих версиях. Вы можете безболезненно опустить её при задании параметров при помощи sysctl, как это показано выше.
Это коснётся производительности системы, но, принимая во внимание источник этой проблемы, это будет незаметно. Если проблема всё ещё даёт о себе знать, оставьте значение этой переменной равным единичке и увеличьте значение параметра NTIMECOUNTER в файле конфигурации вашего ядра. Если в конце концов вы достигнете значения NTIMECOUNTER=20, то вам эту проблему решить не удастся, прерывания дают слишком большую нагрузку на процессор, чтобы обеспечить отслеживание времени.