* USB: OHCI: high softirq load @ 2017-01-16 7:45 Antoine Aubert 2017-01-16 9:02 ` Boris Brezillon 0 siblings, 1 reply; 7+ messages in thread From: Antoine Aubert @ 2017-01-16 7:45 UTC (permalink / raw) To: linux-arm-kernel Hi, Im working on a AT91SAM9G25cu board (arch/arm/boot/dts/at91-kizboxmini.dts). We use linux-4.1.31, and when OHCI is enabled, I got some wired effects. eg with 3 FTDI pluged, interrupts: more than 3.5k/s, cpu softirq > 24%, loadavg > 0.5 This issue disappear when disabling OHCI and use EHCI only. What are the usual causes, and where to begin with ? Thanks in advance, -- Antoine Aubert a.aubert at overkiz.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* USB: OHCI: high softirq load 2017-01-16 7:45 USB: OHCI: high softirq load Antoine Aubert @ 2017-01-16 9:02 ` Boris Brezillon 2017-01-16 10:31 ` Antoine Aubert 0 siblings, 1 reply; 7+ messages in thread From: Boris Brezillon @ 2017-01-16 9:02 UTC (permalink / raw) To: linux-arm-kernel Hi Antoine, On Mon, 16 Jan 2017 08:45:58 +0100 Antoine Aubert <a.aubert@overkiz.com> wrote: > Hi, > > Im working on a AT91SAM9G25cu board > (arch/arm/boot/dts/at91-kizboxmini.dts). We use linux-4.1.31, and when > OHCI is enabled, I got some wired effects. Can you test on a more recent kernel (4.9 or 4.10-rc4)? > > eg with 3 FTDI pluged, interrupts: more than 3.5k/s, cpu softirq > 24%, > loadavg > 0.5 Can you check which interrupt is triggered (cat /proc/interrupts), and enable debug messages in drivers/usb/host/ohci-at91.c? Thanks, Boris > > This issue disappear when disabling OHCI and use EHCI only. > > What are the usual causes, and where to begin with ? > > Thanks in advance, > ^ permalink raw reply [flat|nested] 7+ messages in thread
* USB: OHCI: high softirq load 2017-01-16 9:02 ` Boris Brezillon @ 2017-01-16 10:31 ` Antoine Aubert 2017-01-16 10:54 ` Antoine Aubert 0 siblings, 1 reply; 7+ messages in thread From: Antoine Aubert @ 2017-01-16 10:31 UTC (permalink / raw) To: linux-arm-kernel Thx for your answer Boris Le 16/01/2017 ? 10:02, Boris Brezillon a ?crit : > Hi Antoine, > > On Mon, 16 Jan 2017 08:45:58 +0100 > Antoine Aubert <a.aubert@overkiz.com> wrote: > >> Hi, >> >> Im working on a AT91SAM9G25cu board >> (arch/arm/boot/dts/at91-kizboxmini.dts). We use linux-4.1.31, and when >> OHCI is enabled, I got some wired effects. > Can you test on a more recent kernel (4.9 or 4.10-rc4)? I'll give a try, just need little time ;) > >> eg with 3 FTDI pluged, interrupts: more than 3.5k/s, cpu softirq > 24%, >> loadavg > 0.5 > Can you check which interrupt is triggered (cat /proc/interrupts), cat /proc/interrupts CPU0 16: 2286 atmel-aic 1 Level pmc, at91_tick, at91_rtc, ttyS0 17: 0 PMC 17 Level main_rc_osc 18: 0 PMC 0 Level main_osc 19: 0 PMC 16 Level mainck 20: 0 PMC 1 Level clk-plla 21: 0 PMC 6 Level clk-utmi 22: 0 PMC 3 Level clk-master 23: 945527 atmel-aic 17 Level tc_clkevt 24: 21815 atmel-aic 20 Level at_hdmac 25: 0 atmel-aic 21 Level at_hdmac 30: 120299 atmel-aic 24 Level eth0 31: 22783651 atmel-aic 22 Level ehci_hcd:usb1, ohci_hcd:usb2 99: 0 GPIO 16 Edge PB_RST 100: 0 GPIO 17 Edge PB_PROG Err: 0 > and > enable debug messages in drivers/usb/host/ohci-at91.c? [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.1.31 (antoine at ltp.antoine) (gcc version 4.9.2 (GCC) ) #1 Mon Jan 16 11:04:03 CET 2017 [ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine model: Overkiz Kizbox Mini RailDIN [ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 [ 0.000000] Kernel command line: panic=5 oops=panic root=ubi0:root rootfstype=ubifs ubi.mtd=ubi rw console=ttyS0,115200 earlyprintk loglevel=7 dyndbg='file ohci-at91.c +p' [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Memory: 125076K/131072K available (3204K kernel code, 136K rwdata, 1116K rodata, 132K init, 84K bss, 5996K reserved, 0K cma-reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc : 0xc8800000 - 0xff000000 ( 872 MB) [ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .text : 0xc0008000 - 0xc04404b4 (4322 kB) [ 0.000000] .init : 0xc0441000 - 0xc0462000 ( 132 kB) [ 0.000000] .data : 0xc0462000 - 0xc0484310 ( 137 kB) [ 0.000000] .bss : 0xc0484310 - 0xc0499550 ( 85 kB) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] clocksource pit: mask: 0x7ffffff max_cycles: 0x7ffffff, max_idle_ns: 7167226906 ns [ 0.000000] sched_clock: 32 bits at 128 Hz, resolution 7812500ns, wraps every 16777215996093750ns [ 0.007812] Calibrating delay loop... 198.76 BogoMIPS (lpj=775168) [ 0.078125] pid_max: default: 32768 minimum: 301 [ 0.085937] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.093750] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.101562] CPU: Testing write buffer coherency: ok [ 0.101562] Setting up static identity map for 0x20008400 - 0x2000847c [ 0.117187] dynamic_debug:ddebug_tokenize: unclosed quote: file [ 0.125000] dynamic_debug:ddebug_exec_query: tokenize failed [ 0.132812] devtmpfs: initialized [ 0.164062] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 14931722236523437 ns [ 0.171875] pinctrl core: initialized pinctrl subsystem [ 0.179687] NET: Registered protocol family 16 [ 0.187500] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.195312] AT91: Detected SoC family: at91sam9x5 [ 0.203125] AT91: Detected SoC: at91sam9g25, revision 1 [ 0.226562] gpio-at91 fffff400.gpio: at address fefff400 [ 0.234375] gpio-at91 fffff600.gpio: at address fefff600 [ 0.242187] gpio-at91 fffff800.gpio: at address fefff800 [ 0.250000] gpio-at91 fffffa00.gpio: at address fefffa00 [ 0.257812] pinctrl-at91 ahb:apb:pinctrl at fffff400: initialized AT91 pinctrl driver [ 0.265625] clocksource tcb_clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 114675631333 ns [ 4.718750] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 4.726562] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 4.734375] NET: Registered protocol family 1 [ 4.742187] futex hash table entries: 256 (order: -1, 3072 bytes) [ 4.789062] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 4.804687] io scheduler noop registered (default) [ 4.812500] fffff200.serial: ttyS0 at MMIO 0xfffff200 (irq = 16, base_baud = 8333333) is a ATMEL_SERIAL [ 4.820312] console [ttyS0] enabled [ 4.828125] bootconsole [earlycon0] disabled [ 4.851562] brd: module loaded [ 4.882812] loop: module loaded [ 4.898437] atmel_nand 40000000.nand: Use On Flash BBT [ 4.898437] atmel_nand 40000000.nand: Using dma0chan0 for DMA transfers. [ 4.906250] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xf1 [ 4.914062] nand: Micron MT29F1G08ABAEAWP [ 4.921875] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [ 4.929687] atmel_nand 40000000.nand: minimum ECC: 4 bits in 512 bytes [ 4.929687] atmel_nand 40000000.nand: Initialize PMECC params, cap: 4, sector: 512 [ 4.945312] Bad block table found at page 65472, version 0x01 [ 4.945312] Bad block table found at page 65408, version 0x01 [ 4.953125] 2 ofpart partitions found on MTD device atmel_nand [ 4.960937] Creating 2 MTD partitions on "atmel_nand": [ 4.968750] 0x000000000000-0x000000020000 : "bootstrap" [ 4.976562] 0x000000020000-0x000008000000 : "ubi" [ 4.992187] macb f802c000.ethernet (unnamed net_device) (uninitialized): invalid hw address, using random [ 5.000000] libphy: MACB_mii_bus: probed [ 5.093750] macb f802c000.ethernet eth0: Cadence MACB rev 0x0001010c at 0xf802c000 irq 30 (8e:06:02:88:ed:97) [ 5.101562] macb f802c000.ethernet eth0: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=f802c000.etherne:01, irq=-1) [ 5.109375] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 5.117187] ehci-atmel: EHCI Atmel driver [ 5.125000] atmel-ehci 700000.ehci: EHCI Host Controller [ 5.125000] atmel-ehci 700000.ehci: new USB bus registered, assigned bus number 1 [ 5.140625] atmel-ehci 700000.ehci: irq 31, io mem 0x00700000 [ 5.156250] atmel-ehci 700000.ehci: USB 2.0 started, EHCI 1.00 [ 5.156250] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 5.164062] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 5.171875] usb usb1: Product: EHCI Host Controller [ 5.179687] usb usb1: Manufacturer: Linux 4.1.31 ehci_hcd [ 5.179687] usb usb1: SerialNumber: 700000.ehci [ 5.187500] hub 1-0:1.0: USB hub found [ 5.195312] hub 1-0:1.0: 3 ports detected [ 5.203125] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 5.203125] ohci-atmel: OHCI Atmel driver [ 5.210937] at91_ohci 600000.ohci: start [ 5.210937] at91_ohci 600000.ohci: USB Host Controller [ 5.218750] at91_ohci 600000.ohci: new USB bus registered, assigned bus number 2 [ 5.226562] at91_ohci 600000.ohci: irq 31, io mem 0x00600000 [ 5.289062] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001 [ 5.296875] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 5.304687] usb usb2: Product: USB Host Controller [ 5.304687] usb usb2: Manufacturer: Linux 4.1.31 ohci_hcd [ 5.312500] usb usb2: SerialNumber: at91 [ 5.320312] hub 2-0:1.0: USB hub found [ 5.320312] at91_ohci 600000.ohci: ohci_at91_hub_control(c7a86800,0xa006,0x2900,0x0000,c78b8b60,000f) [ 5.320312] at91_ohci 600000.ohci: wHubCharacteristics 0x0002 [ 5.328125] at91_ohci 600000.ohci: wHubCharacteristics after 0x0001 [ 5.328125] hub 2-0:1.0: 1 port detected [ 5.328125] at91_ohci 600000.ohci: ohci_at91_hub_control(c7a86800,0xa000,0x0000,0x0000,c78b8b80,0004) [ 5.328125] at91_ohci 600000.ohci: ohci_at91_hub_control(c7a86800,0x2303,0x0008,0x0001,c78b8c00,0000) [ 5.328125] at91_ohci 600000.ohci: SetPortFeat: POWER [ 5.328125] rtc rtc0: alarm rollover not handled [ 5.335937] rtc rtc0: invalid alarm value: 1900-1-1 0:0:0 [ 5.343750] at91_rtc fffffeb0.rtc: rtc core: registered fffffeb0.rtc as rtc0 [ 5.351562] at91_rtc fffffeb0.rtc: AT91 Real Time Clock driver. [ 5.359375] AT91: Starting after software reset [ 5.367187] at91sam9_wdt: enabled (heartbeat=15 sec, nowayout=1) [ 5.375000] hidraw: raw HID events driver (C) Jiri Kosina [ 5.382812] usbcore: registered new interface driver usbhid [ 5.382812] usbhid: USB HID core driver [ 5.390625] NET: Registered protocol family 17 [ 5.398437] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. [ 5.421875] ubi0: attaching mtd1 [ 5.429687] at91_ohci 600000.ohci: ohci_at91_hub_control(c7a86800,0xa300,0x0000,0x0001,c7980a00,0004) [ 5.429687] at91_ohci 600000.ohci: GetPortStatus(0) [ 5.546875] usb 1-1: new high-speed USB device number 2 using atmel-ehci [ 5.703125] usb 1-1: New USB device found, idVendor=0424, idProduct=2512 [ 5.703125] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 5.718750] hub 1-1:1.0: USB hub found [ 5.718750] hub 1-1:1.0: 2 ports detected [ 5.906250] ubi0: scanning is finished [ 5.929687] ubi0: attached mtd1 (name "ubi", size 127 MiB) [ 5.937500] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes [ 5.945312] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 [ 5.945312] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096 [ 5.953125] ubi0: good PEBs: 1019, bad PEBs: 4, corrupted PEBs: 0 [ 5.960937] ubi0: user volume: 9, internal volumes: 1, max. volumes count: 128 [ 5.968750] ubi0: max/mean erase counter: 22/16, WL threshold: 4096, image sequence number: 1226704751 [ 5.976562] ubi0: available PEBs: 94, total reserved PEBs: 925, PEBs reserved for bad PEB handling: 16 [ 5.984375] ubi0: background thread "ubi_bgt0d" started, PID 375 [ 6.039062] input: gpio_keys as /devices/soc0/gpio_keys/input/input0 [ 6.046875] at91_rtc fffffeb0.rtc: setting system clock to 2017-01-16 10:22:55 UTC (1484562175) [ 6.062500] usb 1-1.1: new full-speed USB device number 3 using atmel-ehci [ 6.085937] UBIFS (ubi0:7): background thread "ubifs_bgt0_7" started, PID 434 [ 6.109375] UBIFS (ubi0:7): recovery needed [ 6.187500] usb 1-1.1: New USB device found, idVendor=2d71, idProduct=0703 [ 6.195312] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 6.203125] usb 1-1.1: Product: C [ 6.210937] usb 1-1.1: Manufacturer: OVERKIZ SAS [ 6.210937] usb 1-1.1: SerialNumber: 12-16 [ 6.234375] UBIFS (ubi0:7): recovery completed [ 6.234375] UBIFS (ubi0:7): UBIFS: mounted UBI device 0, volume 7, name "root" [ 6.242187] UBIFS (ubi0:7): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes [ 6.250000] UBIFS (ubi0:7): FS size: 49393664 bytes (47 MiB, 389 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs) [ 6.257812] UBIFS (ubi0:7): reserved for root: 0 bytes (0 KiB) [ 6.265625] UBIFS (ubi0:7): media format: w4/r0 (latest is w4/r0), UUID 8FB0025A-D045-4284-B10B-16D0A55EFC51, small LPT model [ 6.281250] VFS: Mounted root (ubifs filesystem) on device 0:13. [ 6.289062] devtmpfs: mounted [ 6.289062] Freeing unused kernel memory: 132K (c0441000 - c0462000) [ 6.359375] usb 1-1.2: new high-speed USB device number 4 using atmel-ehci [ 6.476562] usb 1-1.2: New USB device found, idVendor=0424, idProduct=2512 [ 6.484375] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 6.492187] hub 1-1.2:1.0: USB hub found [ 6.500000] hub 1-1.2:1.0: 2 ports detected [ 6.789062] usb 1-1.2.1: new full-speed USB device number 5 using atmel-ehci [ 6.921875] usb 1-1.2.1: New USB device found, idVendor=2d71, idProduct=0702 [ 6.921875] usb 1-1.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 6.929687] usb 1-1.2.1: Product: B [ 6.937500] usb 1-1.2.1: Manufacturer: OVERKIZ SAS [ 6.945312] usb 1-1.2.1: SerialNumber: 12-16 [ 7.132812] usb 1-1.2.2: new high-speed USB device number 6 using atmel-ehci [ 7.250000] usb 1-1.2.2: New USB device found, idVendor=0424, idProduct=2512 [ 7.257812] usb 1-1.2.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 7.335937] hub 1-1.2.2:1.0: USB hub found [ 7.382812] hub 1-1.2.2:1.0: 2 ports detected [ 7.476562] usbcore: registered new interface driver usbserial [ 7.476562] usbcore: registered new interface driver usbserial_generic [ 7.484375] usbserial: USB Serial support registered for generic [ 7.632812] usbcore: registered new interface driver ftdi_sio [ 7.640625] usbserial: USB Serial support registered for FTDI USB Serial Device [ 7.648437] ftdi_sio 1-1.1:1.0: FTDI USB Serial Device converter detected [ 7.656250] usb 1-1.1: Detected FT232RL [ 7.679687] usb 1-1.2.2.1: new full-speed USB device number 7 using atmel-ehci [ 7.796875] usb 1-1.1: FTDI USB Serial Device converter now attached to ttyUSB0 [ 7.804687] ftdi_sio 1-1.2.1:1.0: FTDI USB Serial Device converter detected [ 7.812500] usb 1-1.2.1: Detected FT232RL [ 7.820312] cfg80211: Calling CRDA to update world regulatory domain [ 7.828125] usb 1-1.2.2.1: New USB device found, idVendor=2d71, idProduct=0700 [ 7.835937] usb 1-1.2.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 7.843750] usb 1-1.2.2.1: Product: A [ 7.851562] usb 1-1.2.2.1: Manufacturer: OVERKIZ SAS [ 7.851562] usb 1-1.2.2.1: SerialNumber: 12-16 [ 7.914062] usb 1-1.2.1: FTDI USB Serial Device converter now attached to ttyUSB1 [ 8.000000] ftdi_sio 1-1.2.2.1:1.0: FTDI USB Serial Device converter detected [ 8.007812] usb 1-1.2.2.1: Detected FT232RL [ 8.054687] usb 1-1.2.2.1: FTDI USB Serial Device converter now attached to ttyUSB2 [ 8.187500] usb 1-1.2.2.2: new high-speed USB device number 8 using atmel-ehci [ 8.312500] usb 1-1.2.2.2: New USB device found, idVendor=7392, idProduct=7811 [ 8.320312] usb 1-1.2.2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 8.328125] usb 1-1.2.2.2: Product: 802.11n WLAN Adapter [ 8.328125] usb 1-1.2.2.2: Manufacturer: Realtek [ 8.335937] usb 1-1.2.2.2: SerialNumber: 00e04c000001 > > Thanks, > > Boris > >> This issue disappear when disabling OHCI and use EHCI only. >> >> What are the usual causes, and where to begin with ? >> >> Thanks in advance, >> Thanks, ^ permalink raw reply [flat|nested] 7+ messages in thread
* USB: OHCI: high softirq load 2017-01-16 10:31 ` Antoine Aubert @ 2017-01-16 10:54 ` Antoine Aubert 2017-01-16 11:14 ` Boris Brezillon 0 siblings, 1 reply; 7+ messages in thread From: Antoine Aubert @ 2017-01-16 10:54 UTC (permalink / raw) To: linux-arm-kernel Also, I made a big misunderstanding With EHCI + OHCI = high level of softirq (USB2.0) OHCI only = normal level Le 16/01/2017 ? 11:31, Antoine Aubert a ?crit : > Thx for your answer Boris > > Le 16/01/2017 ? 10:02, Boris Brezillon a ?crit : >> Hi Antoine, >> >> On Mon, 16 Jan 2017 08:45:58 +0100 >> Antoine Aubert <a.aubert@overkiz.com> wrote: >> >>> Hi, >>> >>> Im working on a AT91SAM9G25cu board >>> (arch/arm/boot/dts/at91-kizboxmini.dts). We use linux-4.1.31, and when >>> OHCI is enabled, I got some wired effects. >> Can you test on a more recent kernel (4.9 or 4.10-rc4)? > I'll give a try, just need little time ;) >>> eg with 3 FTDI pluged, interrupts: more than 3.5k/s, cpu softirq > 24%, >>> loadavg > 0.5 >> Can you check which interrupt is triggered (cat /proc/interrupts), > cat /proc/interrupts > CPU0 > 16: 2286 atmel-aic 1 Level pmc, at91_tick, at91_rtc, ttyS0 > 17: 0 PMC 17 Level main_rc_osc > 18: 0 PMC 0 Level main_osc > 19: 0 PMC 16 Level mainck > 20: 0 PMC 1 Level clk-plla > 21: 0 PMC 6 Level clk-utmi > 22: 0 PMC 3 Level clk-master > 23: 945527 atmel-aic 17 Level tc_clkevt > 24: 21815 atmel-aic 20 Level at_hdmac > 25: 0 atmel-aic 21 Level at_hdmac > 30: 120299 atmel-aic 24 Level eth0 > 31: 22783651 atmel-aic 22 Level ehci_hcd:usb1, ohci_hcd:usb2 > 99: 0 GPIO 16 Edge PB_RST > 100: 0 GPIO 17 Edge PB_PROG > Err: 0 > >> and >> enable debug messages in drivers/usb/host/ohci-at91.c? > [ 0.000000] Booting Linux on physical CPU 0x0 > [ 0.000000] Linux version 4.1.31 (antoine at ltp.antoine) (gcc version > 4.9.2 (GCC) ) #1 Mon Jan 16 11:04:03 CET 2017 > [ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f > [ 0.000000] CPU: VIVT data cache, VIVT instruction cache > [ 0.000000] Machine model: Overkiz Kizbox Mini RailDIN > [ 0.000000] bootconsole [earlycon0] enabled > [ 0.000000] Memory policy: Data cache writeback > [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. > Total pages: 32512 > [ 0.000000] Kernel command line: panic=5 oops=panic root=ubi0:root > rootfstype=ubifs ubi.mtd=ubi rw console=ttyS0,115200 earlyprintk > loglevel=7 dyndbg='file ohci-at91.c +p' > [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) > [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 > bytes) > [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) > [ 0.000000] Memory: 125076K/131072K available (3204K kernel code, > 136K rwdata, 1116K rodata, 132K init, 84K bss, 5996K reserved, 0K > cma-reserved) > [ 0.000000] Virtual kernel memory layout: > [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) > [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) > [ 0.000000] vmalloc : 0xc8800000 - 0xff000000 ( 872 MB) > [ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) > [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) > [ 0.000000] .text : 0xc0008000 - 0xc04404b4 (4322 kB) > [ 0.000000] .init : 0xc0441000 - 0xc0462000 ( 132 kB) > [ 0.000000] .data : 0xc0462000 - 0xc0484310 ( 137 kB) > [ 0.000000] .bss : 0xc0484310 - 0xc0499550 ( 85 kB) > [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > [ 0.000000] NR_IRQS:16 nr_irqs:16 16 > [ 0.000000] clocksource pit: mask: 0x7ffffff max_cycles: 0x7ffffff, > max_idle_ns: 7167226906 ns > [ 0.000000] sched_clock: 32 bits at 128 Hz, resolution 7812500ns, > wraps every 16777215996093750ns > [ 0.007812] Calibrating delay loop... 198.76 BogoMIPS (lpj=775168) > [ 0.078125] pid_max: default: 32768 minimum: 301 > [ 0.085937] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) > [ 0.093750] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 > bytes) > [ 0.101562] CPU: Testing write buffer coherency: ok > [ 0.101562] Setting up static identity map for 0x20008400 - 0x2000847c > [ 0.117187] dynamic_debug:ddebug_tokenize: unclosed quote: file > [ 0.125000] dynamic_debug:ddebug_exec_query: tokenize failed > [ 0.132812] devtmpfs: initialized > [ 0.164062] clocksource jiffies: mask: 0xffffffff max_cycles: > 0xffffffff, max_idle_ns: 14931722236523437 ns > [ 0.171875] pinctrl core: initialized pinctrl subsystem > [ 0.179687] NET: Registered protocol family 16 > [ 0.187500] DMA: preallocated 256 KiB pool for atomic coherent > allocations > [ 0.195312] AT91: Detected SoC family: at91sam9x5 > [ 0.203125] AT91: Detected SoC: at91sam9g25, revision 1 > [ 0.226562] gpio-at91 fffff400.gpio: at address fefff400 > [ 0.234375] gpio-at91 fffff600.gpio: at address fefff600 > [ 0.242187] gpio-at91 fffff800.gpio: at address fefff800 > [ 0.250000] gpio-at91 fffffa00.gpio: at address fefffa00 > [ 0.257812] pinctrl-at91 ahb:apb:pinctrl at fffff400: initialized AT91 > pinctrl driver > [ 0.265625] clocksource tcb_clksrc: mask: 0xffffffff max_cycles: > 0xffffffff, max_idle_ns: 114675631333 ns > [ 4.718750] UDP hash table entries: 256 (order: 0, 4096 bytes) > [ 4.726562] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) > [ 4.734375] NET: Registered protocol family 1 > [ 4.742187] futex hash table entries: 256 (order: -1, 3072 bytes) > [ 4.789062] squashfs: version 4.0 (2009/01/31) Phillip Lougher > [ 4.804687] io scheduler noop registered (default) > [ 4.812500] fffff200.serial: ttyS0 at MMIO 0xfffff200 (irq = 16, > base_baud = 8333333) is a ATMEL_SERIAL > [ 4.820312] console [ttyS0] enabled > [ 4.828125] bootconsole [earlycon0] disabled > [ 4.851562] brd: module loaded > [ 4.882812] loop: module loaded > [ 4.898437] atmel_nand 40000000.nand: Use On Flash BBT > [ 4.898437] atmel_nand 40000000.nand: Using dma0chan0 for DMA transfers. > [ 4.906250] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xf1 > [ 4.914062] nand: Micron MT29F1G08ABAEAWP > [ 4.921875] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, > OOB size: 64 > [ 4.929687] atmel_nand 40000000.nand: minimum ECC: 4 bits in 512 bytes > [ 4.929687] atmel_nand 40000000.nand: Initialize PMECC params, cap: > 4, sector: 512 > [ 4.945312] Bad block table found at page 65472, version 0x01 > [ 4.945312] Bad block table found at page 65408, version 0x01 > [ 4.953125] 2 ofpart partitions found on MTD device atmel_nand > [ 4.960937] Creating 2 MTD partitions on "atmel_nand": > [ 4.968750] 0x000000000000-0x000000020000 : "bootstrap" > [ 4.976562] 0x000000020000-0x000008000000 : "ubi" > [ 4.992187] macb f802c000.ethernet (unnamed net_device) > (uninitialized): invalid hw address, using random > [ 5.000000] libphy: MACB_mii_bus: probed > [ 5.093750] macb f802c000.ethernet eth0: Cadence MACB rev 0x0001010c > at 0xf802c000 irq 30 (8e:06:02:88:ed:97) > [ 5.101562] macb f802c000.ethernet eth0: attached PHY driver [Micrel > KSZ8081 or KSZ8091] (mii_bus:phy_addr=f802c000.etherne:01, irq=-1) > [ 5.109375] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > [ 5.117187] ehci-atmel: EHCI Atmel driver > [ 5.125000] atmel-ehci 700000.ehci: EHCI Host Controller > [ 5.125000] atmel-ehci 700000.ehci: new USB bus registered, assigned > bus number 1 > [ 5.140625] atmel-ehci 700000.ehci: irq 31, io mem 0x00700000 > [ 5.156250] atmel-ehci 700000.ehci: USB 2.0 started, EHCI 1.00 > [ 5.156250] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 > [ 5.164062] usb usb1: New USB device strings: Mfr=3, Product=2, > SerialNumber=1 > [ 5.171875] usb usb1: Product: EHCI Host Controller > [ 5.179687] usb usb1: Manufacturer: Linux 4.1.31 ehci_hcd > [ 5.179687] usb usb1: SerialNumber: 700000.ehci > [ 5.187500] hub 1-0:1.0: USB hub found > [ 5.195312] hub 1-0:1.0: 3 ports detected > [ 5.203125] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver > [ 5.203125] ohci-atmel: OHCI Atmel driver > [ 5.210937] at91_ohci 600000.ohci: start > [ 5.210937] at91_ohci 600000.ohci: USB Host Controller > [ 5.218750] at91_ohci 600000.ohci: new USB bus registered, assigned > bus number 2 > [ 5.226562] at91_ohci 600000.ohci: irq 31, io mem 0x00600000 > [ 5.289062] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001 > [ 5.296875] usb usb2: New USB device strings: Mfr=3, Product=2, > SerialNumber=1 > [ 5.304687] usb usb2: Product: USB Host Controller > [ 5.304687] usb usb2: Manufacturer: Linux 4.1.31 ohci_hcd > [ 5.312500] usb usb2: SerialNumber: at91 > [ 5.320312] hub 2-0:1.0: USB hub found > [ 5.320312] at91_ohci 600000.ohci: > ohci_at91_hub_control(c7a86800,0xa006,0x2900,0x0000,c78b8b60,000f) > [ 5.320312] at91_ohci 600000.ohci: wHubCharacteristics 0x0002 > [ 5.328125] at91_ohci 600000.ohci: wHubCharacteristics after 0x0001 > [ 5.328125] hub 2-0:1.0: 1 port detected > [ 5.328125] at91_ohci 600000.ohci: > ohci_at91_hub_control(c7a86800,0xa000,0x0000,0x0000,c78b8b80,0004) > [ 5.328125] at91_ohci 600000.ohci: > ohci_at91_hub_control(c7a86800,0x2303,0x0008,0x0001,c78b8c00,0000) > [ 5.328125] at91_ohci 600000.ohci: SetPortFeat: POWER > [ 5.328125] rtc rtc0: alarm rollover not handled > [ 5.335937] rtc rtc0: invalid alarm value: 1900-1-1 0:0:0 > [ 5.343750] at91_rtc fffffeb0.rtc: rtc core: registered fffffeb0.rtc > as rtc0 > [ 5.351562] at91_rtc fffffeb0.rtc: AT91 Real Time Clock driver. > [ 5.359375] AT91: Starting after software reset > [ 5.367187] at91sam9_wdt: enabled (heartbeat=15 sec, nowayout=1) > [ 5.375000] hidraw: raw HID events driver (C) Jiri Kosina > [ 5.382812] usbcore: registered new interface driver usbhid > [ 5.382812] usbhid: USB HID core driver > [ 5.390625] NET: Registered protocol family 17 > [ 5.398437] bridge: automatic filtering via arp/ip/ip6tables has been > deprecated. Update your scripts to load br_netfilter if you need this. > [ 5.421875] ubi0: attaching mtd1 > [ 5.429687] at91_ohci 600000.ohci: > ohci_at91_hub_control(c7a86800,0xa300,0x0000,0x0001,c7980a00,0004) > [ 5.429687] at91_ohci 600000.ohci: GetPortStatus(0) > [ 5.546875] usb 1-1: new high-speed USB device number 2 using atmel-ehci > [ 5.703125] usb 1-1: New USB device found, idVendor=0424, idProduct=2512 > [ 5.703125] usb 1-1: New USB device strings: Mfr=0, Product=0, > SerialNumber=0 > [ 5.718750] hub 1-1:1.0: USB hub found > [ 5.718750] hub 1-1:1.0: 2 ports detected > [ 5.906250] ubi0: scanning is finished > [ 5.929687] ubi0: attached mtd1 (name "ubi", size 127 MiB) > [ 5.937500] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 > bytes > [ 5.945312] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 > [ 5.945312] ubi0: VID header offset: 2048 (aligned 2048), data > offset: 4096 > [ 5.953125] ubi0: good PEBs: 1019, bad PEBs: 4, corrupted PEBs: 0 > [ 5.960937] ubi0: user volume: 9, internal volumes: 1, max. volumes > count: 128 > [ 5.968750] ubi0: max/mean erase counter: 22/16, WL threshold: 4096, > image sequence number: 1226704751 > [ 5.976562] ubi0: available PEBs: 94, total reserved PEBs: 925, PEBs > reserved for bad PEB handling: 16 > [ 5.984375] ubi0: background thread "ubi_bgt0d" started, PID 375 > [ 6.039062] input: gpio_keys as /devices/soc0/gpio_keys/input/input0 > [ 6.046875] at91_rtc fffffeb0.rtc: setting system clock to 2017-01-16 > 10:22:55 UTC (1484562175) > [ 6.062500] usb 1-1.1: new full-speed USB device number 3 using > atmel-ehci > [ 6.085937] UBIFS (ubi0:7): background thread "ubifs_bgt0_7" started, > PID 434 > [ 6.109375] UBIFS (ubi0:7): recovery needed > [ 6.187500] usb 1-1.1: New USB device found, idVendor=2d71, > idProduct=0703 > [ 6.195312] usb 1-1.1: New USB device strings: Mfr=1, Product=2, > SerialNumber=3 > [ 6.203125] usb 1-1.1: Product: C > [ 6.210937] usb 1-1.1: Manufacturer: OVERKIZ SAS > [ 6.210937] usb 1-1.1: SerialNumber: 12-16 > [ 6.234375] UBIFS (ubi0:7): recovery completed > [ 6.234375] UBIFS (ubi0:7): UBIFS: mounted UBI device 0, volume 7, > name "root" > [ 6.242187] UBIFS (ubi0:7): LEB size: 126976 bytes (124 KiB), > min./max. I/O unit sizes: 2048 bytes/2048 bytes > [ 6.250000] UBIFS (ubi0:7): FS size: 49393664 bytes (47 MiB, 389 > LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs) > [ 6.257812] UBIFS (ubi0:7): reserved for root: 0 bytes (0 KiB) > [ 6.265625] UBIFS (ubi0:7): media format: w4/r0 (latest is w4/r0), > UUID 8FB0025A-D045-4284-B10B-16D0A55EFC51, small LPT model > [ 6.281250] VFS: Mounted root (ubifs filesystem) on device 0:13. > [ 6.289062] devtmpfs: mounted > [ 6.289062] Freeing unused kernel memory: 132K (c0441000 - c0462000) > [ 6.359375] usb 1-1.2: new high-speed USB device number 4 using > atmel-ehci > [ 6.476562] usb 1-1.2: New USB device found, idVendor=0424, > idProduct=2512 > [ 6.484375] usb 1-1.2: New USB device strings: Mfr=0, Product=0, > SerialNumber=0 > [ 6.492187] hub 1-1.2:1.0: USB hub found > [ 6.500000] hub 1-1.2:1.0: 2 ports detected > [ 6.789062] usb 1-1.2.1: new full-speed USB device number 5 using > atmel-ehci > [ 6.921875] usb 1-1.2.1: New USB device found, idVendor=2d71, > idProduct=0702 > [ 6.921875] usb 1-1.2.1: New USB device strings: Mfr=1, Product=2, > SerialNumber=3 > [ 6.929687] usb 1-1.2.1: Product: B > [ 6.937500] usb 1-1.2.1: Manufacturer: OVERKIZ SAS > [ 6.945312] usb 1-1.2.1: SerialNumber: 12-16 > [ 7.132812] usb 1-1.2.2: new high-speed USB device number 6 using > atmel-ehci > [ 7.250000] usb 1-1.2.2: New USB device found, idVendor=0424, > idProduct=2512 > [ 7.257812] usb 1-1.2.2: New USB device strings: Mfr=0, Product=0, > SerialNumber=0 > [ 7.335937] hub 1-1.2.2:1.0: USB hub found > [ 7.382812] hub 1-1.2.2:1.0: 2 ports detected > [ 7.476562] usbcore: registered new interface driver usbserial > [ 7.476562] usbcore: registered new interface driver usbserial_generic > [ 7.484375] usbserial: USB Serial support registered for generic > [ 7.632812] usbcore: registered new interface driver ftdi_sio > [ 7.640625] usbserial: USB Serial support registered for FTDI USB > Serial Device > [ 7.648437] ftdi_sio 1-1.1:1.0: FTDI USB Serial Device converter detected > [ 7.656250] usb 1-1.1: Detected FT232RL > [ 7.679687] usb 1-1.2.2.1: new full-speed USB device number 7 using > atmel-ehci > [ 7.796875] usb 1-1.1: FTDI USB Serial Device converter now attached > to ttyUSB0 > [ 7.804687] ftdi_sio 1-1.2.1:1.0: FTDI USB Serial Device converter > detected > [ 7.812500] usb 1-1.2.1: Detected FT232RL > [ 7.820312] cfg80211: Calling CRDA to update world regulatory domain > [ 7.828125] usb 1-1.2.2.1: New USB device found, idVendor=2d71, > idProduct=0700 > [ 7.835937] usb 1-1.2.2.1: New USB device strings: Mfr=1, Product=2, > SerialNumber=3 > [ 7.843750] usb 1-1.2.2.1: Product: A > [ 7.851562] usb 1-1.2.2.1: Manufacturer: OVERKIZ SAS > [ 7.851562] usb 1-1.2.2.1: SerialNumber: 12-16 > [ 7.914062] usb 1-1.2.1: FTDI USB Serial Device converter now > attached to ttyUSB1 > [ 8.000000] ftdi_sio 1-1.2.2.1:1.0: FTDI USB Serial Device converter > detected > [ 8.007812] usb 1-1.2.2.1: Detected FT232RL > [ 8.054687] usb 1-1.2.2.1: FTDI USB Serial Device converter now > attached to ttyUSB2 > [ 8.187500] usb 1-1.2.2.2: new high-speed USB device number 8 using > atmel-ehci > [ 8.312500] usb 1-1.2.2.2: New USB device found, idVendor=7392, > idProduct=7811 > [ 8.320312] usb 1-1.2.2.2: New USB device strings: Mfr=1, Product=2, > SerialNumber=3 > [ 8.328125] usb 1-1.2.2.2: Product: 802.11n WLAN Adapter > [ 8.328125] usb 1-1.2.2.2: Manufacturer: Realtek > [ 8.335937] usb 1-1.2.2.2: SerialNumber: 00e04c000001 > >> Thanks, >> >> Boris >> >>> This issue disappear when disabling OHCI and use EHCI only. >>> >>> What are the usual causes, and where to begin with ? >>> >>> Thanks in advance, >>> > Thanks, > ^ permalink raw reply [flat|nested] 7+ messages in thread
* USB: OHCI: high softirq load 2017-01-16 10:54 ` Antoine Aubert @ 2017-01-16 11:14 ` Boris Brezillon 2017-01-16 14:47 ` Johan Hovold 0 siblings, 1 reply; 7+ messages in thread From: Boris Brezillon @ 2017-01-16 11:14 UTC (permalink / raw) To: linux-arm-kernel On Mon, 16 Jan 2017 11:54:23 +0100 Antoine Aubert <a.aubert@overkiz.com> wrote: > Also, I made a big misunderstanding > > With EHCI + OHCI = high level of softirq (USB2.0) Well, the number of irqs and softirqs are likely to be related (you usually trigger a softirq after you received an hardirq). > > OHCI only = normal level What about EHCI only? And what happens if you only plug 1 device? Please share the content of /proc/interrupts (and everything you think is relevant) for each of these cases. > > Le 16/01/2017 ? 11:31, Antoine Aubert a ?crit : > > Thx for your answer Boris > > > > Le 16/01/2017 ? 10:02, Boris Brezillon a ?crit : > >> Hi Antoine, > >> > >> On Mon, 16 Jan 2017 08:45:58 +0100 > >> Antoine Aubert <a.aubert@overkiz.com> wrote: > >> > >>> Hi, > >>> > >>> Im working on a AT91SAM9G25cu board > >>> (arch/arm/boot/dts/at91-kizboxmini.dts). We use linux-4.1.31, and when > >>> OHCI is enabled, I got some wired effects. > >> Can you test on a more recent kernel (4.9 or 4.10-rc4)? > > I'll give a try, just need little time ;) > >>> eg with 3 FTDI pluged, interrupts: more than 3.5k/s, cpu softirq > 24%, > >>> loadavg > 0.5 > >> Can you check which interrupt is triggered (cat /proc/interrupts), > > cat /proc/interrupts > > CPU0 > > 16: 2286 atmel-aic 1 Level pmc, at91_tick, at91_rtc, ttyS0 > > 17: 0 PMC 17 Level main_rc_osc > > 18: 0 PMC 0 Level main_osc > > 19: 0 PMC 16 Level mainck > > 20: 0 PMC 1 Level clk-plla > > 21: 0 PMC 6 Level clk-utmi > > 22: 0 PMC 3 Level clk-master > > 23: 945527 atmel-aic 17 Level tc_clkevt > > 24: 21815 atmel-aic 20 Level at_hdmac > > 25: 0 atmel-aic 21 Level at_hdmac > > 30: 120299 atmel-aic 24 Level eth0 > > 31: 22783651 atmel-aic 22 Level ehci_hcd:usb1, ohci_hcd:usb2 > > 99: 0 GPIO 16 Edge PB_RST > > 100: 0 GPIO 17 Edge PB_PROG > > Err: 0 > > > >> and > >> enable debug messages in drivers/usb/host/ohci-at91.c? Actually, I was asking for debug messages. You can enable them dynamically with dynamic printk [1]. BTW, please use pastebin (or any other alternative) to share these information. Thanks, Boris [1]http://lxr.free-electrons.com/source/Documentation/dynamic-debug-howto.txt ^ permalink raw reply [flat|nested] 7+ messages in thread
* USB: OHCI: high softirq load 2017-01-16 11:14 ` Boris Brezillon @ 2017-01-16 14:47 ` Johan Hovold 2017-01-16 16:11 ` Antoine Aubert 0 siblings, 1 reply; 7+ messages in thread From: Johan Hovold @ 2017-01-16 14:47 UTC (permalink / raw) To: linux-arm-kernel [ +CC: linux-usb ] On Mon, Jan 16, 2017 at 12:14:03PM +0100, Boris Brezillon wrote: > On Mon, 16 Jan 2017 11:54:23 +0100 > Antoine Aubert <a.aubert@overkiz.com> wrote: > > > Also, I made a big misunderstanding > > > > With EHCI + OHCI = high level of softirq (USB2.0) > > Well, the number of irqs and softirqs are likely to be related (you > usually trigger a softirq after you received an hardirq). > > > > > OHCI only = normal level > > What about EHCI only? And what happens if you only plug 1 device? > Please share the content of /proc/interrupts (and everything you think > is relevant) for each of these cases. > > > > > Le 16/01/2017 ? 11:31, Antoine Aubert a ?crit : > > > Thx for your answer Boris > > > > > > Le 16/01/2017 ? 10:02, Boris Brezillon a ?crit : > > >> Hi Antoine, > > >> > > >> On Mon, 16 Jan 2017 08:45:58 +0100 > > >> Antoine Aubert <a.aubert@overkiz.com> wrote: > > >> > > >>> Hi, > > >>> > > >>> Im working on a AT91SAM9G25cu board > > >>> (arch/arm/boot/dts/at91-kizboxmini.dts). We use linux-4.1.31, and when > > >>> OHCI is enabled, I got some wired effects. > > >> Can you test on a more recent kernel (4.9 or 4.10-rc4)? > > > I'll give a try, just need little time ;) > > >>> eg with 3 FTDI pluged, interrupts: more than 3.5k/s, cpu softirq > 24%, > > >>> loadavg > 0.5 > > >> Can you check which interrupt is triggered (cat /proc/interrupts), > > > cat /proc/interrupts > > > CPU0 > > > 16: 2286 atmel-aic 1 Level pmc, at91_tick, at91_rtc, ttyS0 > > > 17: 0 PMC 17 Level main_rc_osc > > > 18: 0 PMC 0 Level main_osc > > > 19: 0 PMC 16 Level mainck > > > 20: 0 PMC 1 Level clk-plla > > > 21: 0 PMC 6 Level clk-utmi > > > 22: 0 PMC 3 Level clk-master > > > 23: 945527 atmel-aic 17 Level tc_clkevt > > > 24: 21815 atmel-aic 20 Level at_hdmac > > > 25: 0 atmel-aic 21 Level at_hdmac > > > 30: 120299 atmel-aic 24 Level eth0 > > > 31: 22783651 atmel-aic 22 Level ehci_hcd:usb1, ohci_hcd:usb2 > > > 99: 0 GPIO 16 Edge PB_RST > > > 100: 0 GPIO 17 Edge PB_PROG > > > Err: 0 Note that the ftdi driver uses a low-latency setting by default which implies that the device sends a status update every millisecond. Hence, the 1k interrupts per second (per device) while the port is open is expected. You can disable the low-latency behaviour using setserial: setserial /dev/ttyUSB0 ^low_latency and see the number of interrupts drop to 1/16th. This can then be reduced further by changing the latency_timer from its (non-low-latency) default of 16 ms, for example: echo 64 >/sys/bus/usb-serial/devices/ttyUSB0/latency_timer Johan ^ permalink raw reply [flat|nested] 7+ messages in thread
* USB: OHCI: high softirq load 2017-01-16 14:47 ` Johan Hovold @ 2017-01-16 16:11 ` Antoine Aubert 0 siblings, 0 replies; 7+ messages in thread From: Antoine Aubert @ 2017-01-16 16:11 UTC (permalink / raw) To: linux-arm-kernel Thanks Johan, you save my day. Indeed, soft irq coming from ftdi_sio updates, with very high rate. (dyndbg='file drivers/usb/* +p') reducing latency timer = reducing sofirq. Problem solved. Antoine Aubert a.aubert at overkiz.com Le 16/01/2017 ? 15:47, Johan Hovold a ?crit : > [ +CC: linux-usb ] > > On Mon, Jan 16, 2017 at 12:14:03PM +0100, Boris Brezillon wrote: >> On Mon, 16 Jan 2017 11:54:23 +0100 >> Antoine Aubert <a.aubert@overkiz.com> wrote: >> >>> Also, I made a big misunderstanding >>> >>> With EHCI + OHCI = high level of softirq (USB2.0) >> Well, the number of irqs and softirqs are likely to be related (you >> usually trigger a softirq after you received an hardirq). >> >>> OHCI only = normal level >> What about EHCI only? And what happens if you only plug 1 device? >> Please share the content of /proc/interrupts (and everything you think >> is relevant) for each of these cases. >> >>> Le 16/01/2017 ? 11:31, Antoine Aubert a ?crit : >>>> Thx for your answer Boris >>>> >>>> Le 16/01/2017 ? 10:02, Boris Brezillon a ?crit : >>>>> Hi Antoine, >>>>> >>>>> On Mon, 16 Jan 2017 08:45:58 +0100 >>>>> Antoine Aubert <a.aubert@overkiz.com> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> Im working on a AT91SAM9G25cu board >>>>>> (arch/arm/boot/dts/at91-kizboxmini.dts). We use linux-4.1.31, and when >>>>>> OHCI is enabled, I got some wired effects. >>>>> Can you test on a more recent kernel (4.9 or 4.10-rc4)? >>>> I'll give a try, just need little time ;) >>>>>> eg with 3 FTDI pluged, interrupts: more than 3.5k/s, cpu softirq > 24%, >>>>>> loadavg > 0.5 >>>>> Can you check which interrupt is triggered (cat /proc/interrupts), >>>> cat /proc/interrupts >>>> CPU0 >>>> 16: 2286 atmel-aic 1 Level pmc, at91_tick, at91_rtc, ttyS0 >>>> 17: 0 PMC 17 Level main_rc_osc >>>> 18: 0 PMC 0 Level main_osc >>>> 19: 0 PMC 16 Level mainck >>>> 20: 0 PMC 1 Level clk-plla >>>> 21: 0 PMC 6 Level clk-utmi >>>> 22: 0 PMC 3 Level clk-master >>>> 23: 945527 atmel-aic 17 Level tc_clkevt >>>> 24: 21815 atmel-aic 20 Level at_hdmac >>>> 25: 0 atmel-aic 21 Level at_hdmac >>>> 30: 120299 atmel-aic 24 Level eth0 >>>> 31: 22783651 atmel-aic 22 Level ehci_hcd:usb1, ohci_hcd:usb2 >>>> 99: 0 GPIO 16 Edge PB_RST >>>> 100: 0 GPIO 17 Edge PB_PROG >>>> Err: 0 > Note that the ftdi driver uses a low-latency setting by default which > implies that the device sends a status update every millisecond. Hence, > the 1k interrupts per second (per device) while the port is open is > expected. > > You can disable the low-latency behaviour using setserial: > > setserial /dev/ttyUSB0 ^low_latency > > and see the number of interrupts drop to 1/16th. This can then be > reduced further by changing the latency_timer from its > (non-low-latency) default of 16 ms, for example: > > echo 64 >/sys/bus/usb-serial/devices/ttyUSB0/latency_timer > > Johan ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-01-16 16:11 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-01-16 7:45 USB: OHCI: high softirq load Antoine Aubert 2017-01-16 9:02 ` Boris Brezillon 2017-01-16 10:31 ` Antoine Aubert 2017-01-16 10:54 ` Antoine Aubert 2017-01-16 11:14 ` Boris Brezillon 2017-01-16 14:47 ` Johan Hovold 2017-01-16 16:11 ` Antoine Aubert
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.