Wind River Support Network

HomeDefectsLIN5-11526
Fixed

LIN5-11526 : WRlinux4.3+CN61XX,can't set affinity of OCTEON_IRQ_TIMER3

Created: Jul 31, 2013    Updated: Dec 19, 2017
Resolved Date: Apr 7, 2014
Previous ID: LIN4-7052
Found In Version: 5.0
Fix Version: 5.0.1.14
Severity: Severe
Applicable for: Wind River Linux 5
Component/s: BSP
Architecture: MIPS

Description

A customer reports that they cant set OCTEON_IRQ_TIMER3 affinity through /proc/irq/153/smp_affinity.
 
The customers environment is WRlinux4.3 + CN61XX, no RCPL applied to their platform project.
Here is the the configure option of their platform project:
$ /home/wr_linux4.3/WindRiver/wrlinux-4/wrlinux/../ldat/configure --enable-board=cav_octeon2 --enable-build=production --enable-jobs=16 --enable-kernel=standard --enable-rootfs=glibc_small+debug+demo --with-product-dir=/home/wr_linux4.3/WindRiver/wrlinux-4/wrlinux
 
They want to set the OCTEON_IRQ_TIMER3 being reported to CPU0/CPU1/CPU2.
 
They use the following line to register the IRQ:
    ret = request_irq(OCTEON_IRQ_TIMER3, sadp_timer_share_int, IRQF_TIMER, "age_timer", NULL);
 
On target, they found OCTEON_IRQ_TIMER3 only reported to CPU0:
    / # cat proc/interrupts
           CPU0       CPU1       CPU2       
 
153:     131821          0          0           CIU-E  age_timer
 
They checked the /proc/irq/153/smp_affinity, the value is 1:
/ # cat /proc/irq/153/smp_affinity                                                                                              
00000001

In my side, I build a test module use OCTEON_IRQ_TIMER3 irq.
By default, the /proc/irq/153/smp_affinity is 1.
When I run 
echo f>/proc/irq/153/smp_affinity 

the value of /proc/irq/153/smp_affinity  is changed.

But the interrupt still reported to CPU0.

# cat /proc/irq/153/smp_affinity 
7
# cat /proc/interrupts 
           CPU0       CPU1       CPU2       
  8:    1236541    1237011    1236654            Core  timer
 24:          0          0          0             CIU  npi0
121:        375       1970       1134           CIU-M  mailbox0
125:       1693          0          0             CIU  serial
132:          0          0          0             CIU  MSI[0:63]
133:          0          0          0             CIU  MSI[64:127]
134:          0          0          0             CIU  MSI[127:191]
135:          0          0          0             CIU  MSI[192:255]
136:          6          0          0             CIU  i2c-octeon
137:          0          0          0             CIU  i2c-octeon
138:          0          0          0             CIU  RML_RSL
153:    1183765          0          0           CIU-E  age_timer
154:          0          0          0             CIU  ehci_hcd:usb1, ohci_hcd:usb2
160:      30855      21426      21426             CIU  mgmt0
162:          0          0          0             CIU  pata_octeon_cf

ERR:    3138958
# cat /proc/interrupts 
           CPU0       CPU1       CPU2       
  8:    1237075    1237545    1237189            Core  timer
 24:          0          0          0             CIU  npi0
121:        390       1992       1143           CIU-M  mailbox0
125:       1716          0          0             CIU  serial
132:          0          0          0             CIU  MSI[0:63]
133:          0          0          0             CIU  MSI[64:127]
134:          0          0          0             CIU  MSI[127:191]
135:          0          0          0             CIU  MSI[192:255]
136:          6          0          0             CIU  i2c-octeon
137:          0          0          0             CIU  i2c-octeon
138:          0          0          0             CIU  RML_RSL
153:    1185903          0          0           CIU-E  age_timer
154:          0          0          0             CIU  ehci_hcd:usb1, ohci_hcd:usb2
160:      30869      21440      21440             CIU  mgmt0
162:          0          0          0             CIU  pata_octeon_cf

ERR:    3156261

Steps to Reproduce

1. Configure a project use the following the options:
$ /home/wr_linux4.3/WindRiver/wrlinux-4/wrlinux/../ldat/configure --enable-board=cav_octeon2 --enable-build=production --enable-jobs=16 --enable-kernel=standard --enable-rootfs=glibc_small+debug+demo --with-product-dir=/home/wr_linux4.3/WindRiver/wrlinux-4/wrlinux

2. compile the test module. The source code of the test module can be found in attachment.

3. insmod the test module, cat /proc/interrupts

4. echo f>/proc/irq/153/smp_affinity 

5. cat /proc/interrupts

Other Downloads


Live chat
Online