LINUX.ORG.RU

Сообщения Dark-Mind

 

Ядро и монтирование флешки

Роюсь в ядре на предмет поиска места задержки монтирования. В аппаратуре используется BSP Fedora 14, прослушивание udevadm monitor дает следующую картину: KERNEL[1301801945.093717] add /devices/virtual/gpio/gpio246 (gpio)

KERNEL[1301801945.094204] remove /devices/virtual/gpio/gpio246 (gpio)

UDEV [1301801945.094778] add /devices/virtual/gpio/gpio246 (gpio)

UDEV [1301801945.095227] remove /devices/virtual/gpio/gpio246 (gpio)

KERNEL[1301801945.098416] add /devices/virtual/gpio/gpio246 (gpio)

UDEV [1301801945.098482] add /devices/virtual/gpio/gpio246 (gpio)

KERNEL[1301801945.098584] remove /devices/virtual/gpio/gpio246 (gpio)

UDEV [1301801945.099026] remove /devices/virtual/gpio/gpio246 (gpio)

KERNEL[1301801945.660833] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1 (usb)

KERNEL[1301801945.665232] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0 (usb)

KERNEL[1301801945.668453] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5 (scsi)

KERNEL[1301801945.668701] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/scsi_host/host5 (scsi_host)

UDEV [1301801945.681785] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1 (usb)

UDEV [1301801945.689402] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0 (usb)

UDEV [1301801945.693677] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5 (scsi)

------------------> UDEV [1301801945.697071] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/scsi_host/host5 (scsi_host)

------------------> KERNEL[1301801946.675424] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0 (scsi) KERNEL[1301801946.675902] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0 (scsi)

KERNEL[1301801946.677290] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/scsi_disk/5:0:0:0 (scsi_disk)

KERNEL[1301801946.678272] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/scsi_device/5:0:0:0 (scsi_device)

KERNEL[1301801946.679361] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/scsi_generic/sg1 (scsi_generic)

UDEV [1301801946.679613] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0 (scsi)

KERNEL[1301801946.681711] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/bsg/5:0:0:0 (bsg)

UDEV [1301801946.685108] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0 (scsi)

KERNEL[1301801946.689486] add /devices/virtual/bdi/8:32 (bdi) UDEV [1301801946.689606] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/scsi_device/5:0:0:0 (scsi_device)

UDEV [1301801946.690528] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/scsi_disk/5:0:0:0 (scsi_disk)

KERNEL[1301801946.691177] change /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0 (scsi)

UDEV [1301801946.692527] add /devices/virtual/bdi/8:32 (bdi)

UDEV [1301801946.694370] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/bsg/5:0:0:0 (bsg)

UDEV [1301801946.697668] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/scsi_generic/sg1 (scsi_generic)

UDEV [1301801946.699426] change /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0 (scsi)

KERNEL[1301801946.712965] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/block/sdc (block)

------------------> KERNEL[1301801946.713060] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1 (block)

------------------> UDEV [1301801948.846249] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/block/sdc (block)

------------------> UDEV [1301801950.892867] add /devices/pci0000:00/0000:00:1a.0/0000:04:00.0/0000:05:08.3/usb2/2-1/2-1:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1 (block)

Задержки в самом ядре еще более менее приемлемы. Больше всего не устраивает момент в самом конце, при передаче сообщений к подсистеме UDEV. Кто-нибудь может подсказать, в каких файлах ядра осуществляется передача этих сообщений?

И еще, возможно ли уменьшение времени подключения usbflash?

На всякий случай уточню: udev сидит на netlink и время обработки им этих сообщений пренебрежимо мало (проверил отладочным выводом в системный журнал). Задержка происходит за пределами демона, насколько мне это понятно.

 , ,

Dark-Mind
()

Заставить быстро монтироваться камеру

Задачка из разряда «извращенских»: с gphoto фотоаппарат не управляется, зато можно сигналом шнурка, правда с маленьким нюансом, при наличии питания на usb ничего с камерой сделать нельзя. Сделал приблуду, где обрываю питание usb - делаю фотографию - подключаю питание - жду автомонтирования - ищу последний файл - копирую себе. Вопрос, как можно ускорить инициализацию устройства в ядре, чтобы не ждать 3-5 секунд «ни на что», потому что монтирование и поиск файла сами по себе достаточно быстрые. =)

 usb camera mount

Dark-Mind
()

RSS подписка на новые темы