[Думаю, лучше спросить в этой же ветке, чтобы не плодить сущности

]
На девайсе к процессору подключен 24-портовый свитч, управление свитчом сделано через gpio посредством шины аналогичной MDC/MDIO (эта шина предоставляется свитчом; написан драйвер, который предоставляет функции чтения/записи ноги через ioctl).
Нужно отслеживать в snmp-агенте статус портов (up/down).
Мне видятся два варианта:
(1) читать из агента, например каждую секунду, портовые регистры свитча и получать оттуда текущий статус линка. Это IMHO будет очень накладно из-за постоянного преключения контекста (ioctl->драйвер->...)
(2) Свитч поддерживает специально выделенную ногу для сообщения прерываний процу об определенных событиях (маска задается регистром свитча), в том числе и статус линка. Завести эту ногу на gpio процессора, написать драйвер чтения ноги и какой-нибудь интерфейс в юзер-спейс (например /proc/switch/link) - т.е. линк сменился, получили прерывание, в агенте получили статус через I/O, далее все-равно нужно читать регистр, чтобы узнать какой порт сменил статус. Небольшое преимущество - читаем только /proc.
Что можете сказать по этим двум вариантам, может быть я что-то упускаю?
Спасибо!