https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235257

--- Comment #24 from Max <maxstec...@gmail.com> ---
I am able to trace event through from sys/dev/usb/usb_hub.c:usb_notify_addq to
sys/kern/subrc_bus.c:devctl_queue_data_f where it is supposed to invoke
pgsigio() but still I don't see devd triggering module loading...

The devctl queue is not getting full as per printout. It is set to default
hw.bus.devctl_queue = 1000


>>>Feb  1 16:57:06  kernel: usb_alloc_device: new dev (addr 5), 
>>>udev=0xfffff80006677000, >>>parent_hub=0xfffff800062df000
>>>Feb  1 16:57:06  kernel: ugen0.6: <Dell DELL PROFESSIONAL SOUND BAR AE515> 
>>>at usbus0
>>>Feb  1 16:57:06  kernel: usb_notify_addq: ++++ sending devctl_notify() about 
>>>type ATTACH ugen_name ugen0.6
>>>Feb  1 16:57:06  kernel: +++ devctl_notify_f() system USB, subsystem DEVICE, 
>>>type ATTACH, data [ugen=ugen0.6 cdev=ugen0.6 vendor=0x413c product=0xa506 
>>>devclass=0x00 devsubclass=0x00 sernum="" release=0xe001 mode=host port=2 
>>>parent=ugen0.3], flags 1
>>>+++ 1 devctl_queue_data_f() data [!system=USB subsystem=DEVICE type=ATTACH 
>>>ugen=ugen0.6 cdev=ugen0.6 vendor=0x413c product=0xa506 devclass=0x00 
>>>devsubclass=0x00 sernum="" release=0xe001 mode=host port=2 parent=ugen0.3
>>>Feb  1 16:57:06  kernel: ] flags 1, devctl_queue_length 1000
>>>Feb  1 16:57:06  kernel: +++ 2 devctl_queue_data_f() data [!system=USB 
>>>subsystem=DEVICE >>>type=ATTACH ugen=ugen0.6 cdev=ugen0.6 vendor=0x413c 
>>>product=0xa506 devclass=0x00 devsubclass=0x00 sernum="" release=0xe001 
>>>mode=host port=2 parent=ugen0.3
>>>Feb  1 16:57:06  kernel: ] flags 1, devctl_queue_length 1000, 
>>>devsoftc.queued 368

Hitting this point where the only condition of not sending request would be if
devsoft.async == 0 or devsoftc.sigio is null.

>>>printf("+++ 2 devctl_queue_data_f() data [%s] flags %d, devctl_queue_length 
>>>%d, devsoftc.queued >>>%d\n", data, flags, devctl_queue_length, 
>>>devsoftc.queued);
>>>        /* Leave at least one spot in the queue... */
>>>        while (devsoftc.queued > devctl_queue_length - 1) {
>>>                n2 = TAILQ_FIRST(&devsoftc.devq);
>>>               TAILQ_REMOVE(&devsoftc.devq, n2, dei_link);
>>>                free(n2->dei_data, M_BUS);
>>>                free(n2, M_BUS);
>>>                devsoftc.queued--;
>>>        }
>>>        TAILQ_INSERT_TAIL(&devsoftc.devq, n1, dei_link);
>>>        devsoftc.queued++;
>>>        cv_broadcast(&devsoftc.cv);
>>>        KNOTE_LOCKED(&devsoftc.sel.si_note, 0);
>>>        mtx_unlock(&devsoftc.mtx);
>>>        selwakeup(&devsoftc.sel);
>>>        if (devsoftc.async && devsoftc.sigio != NULL)
>>>                pgsigio(&devsoftc.sigio, SIGIO, 0);
>>>        return;


Thanks,
Max

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-usb@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to