У нас есть некоторое программное обеспечение, основанное на определенном поведении другого (очень часто используемого) приложения, которое теперь изменилось, что сделало нашу текущую реализацию работоспособной, но не оптимальной.
Мы считаем, что это изменение могло повлиять на ряд других приложений, особенно в области мониторинга производительности, и мы нашли решение, которое, по нашему мнению, устранит множество других потенциальных проблем.
К сожалению, указанное решение представляет собой изменение ядра (относительно простое, но сильное влияние, если мы его напишем), и у нас нет опыта отправки исправлений ядра на рассмотрение.
Кто-нибудь на SO действительно отправил патч (хотя я был бы признателен за все ответы, я подозреваю, что лучшие из них будут получены от тех, кто прошел через этот процесс, даже безуспешно)? Приняли ли вы его (каковы шансы, что Алан Кокс и др. зависают на SO)?
Каков правильный процесс? У меня нет намерения отправлять электронное письмо Линусу, так как я знаю, что у него есть группа защитников, через которых вы должны пройти, прежде чем оно дойдет до него. Как узнать кто отвечает за тот или иной раздел ядра.
Возможно, я слишком оптимистичен, думая, что кто-то, о ком мир ядра никогда не слышал, может внести свой вклад, но мне было бы интересно это узнать.
РЕДАКТИРОВАТЬ с более подробной информацией:
На самом деле это изменение связано не с ошибкой производительности, а с улучшением (на мой взгляд) записей учета процессов (в настоящее время), записываемых при завершении процесса.
Websphere App Server (ах, IBM, благослови их маленькие сердца) изменил то, что он делает; Раньше JVM регулярно завершали работу, поэтому их записи записывались, и мы могли использовать это для возврата средств. Теперь он оставляет JVM лежать без дела месяцами, а это означает, что данные не будут доступны своевременно, если мы не будем регулярно отключать WAS. Почему-то я не думаю, что IBM Software Group собирается исправлять для нас свое программное обеспечение :-). В любом случае, я считаю, что это может быть полезно для других долгоживущих процессов.
В настоящее время учетные записи процесса типа 3 записываются, когда процесс завершается, мы рассматриваем механизм для периодической записи записей типа N, пока процесс все еще активен, с указанием цифр с момента последней записи (или запуска процесса, если это первый раз). Приложения для отзыва платежей или мониторинга производительности могут использовать либо записи типа 3 (полностью неизмененные), либо промежуточные записи типа N. Текущий обходной путь, который у нас есть, состоит в том, чтобы отслеживать /proc/PID/stat для определенных процессов, но это ужасный кладж, поскольку он плохо интегрируется с реальным учетом процессов.
Это не обязательно должно быть часто (мы были бы довольны 24 часами), но это может повлиять на производительность, поскольку работа, которая в настоящее время выполняется только в процессе exit(), должна будет время от времени выполняться при переключении контекста процесса. Линусу и другим эта идея может не понравиться, так как это может быть область кода с высоким уровнем воздействия (даже проверка того, прошло ли 24 часа с момента последней записи, может быть для них слишком медленной).
Тем не менее, спасибо за все ответы до сих пор, я посмотрю, как я пойду. Дайте мне пару дней, и я приму лучший ответ.