Hi Greg,

the result of my tests for systems with original fec.c and patched fec.c are
similar. The number of TXF and RXF interrupt event in both cases is much
greater than the packets received or transmitted. Attached files
InLAN_original_fec.txt and InLAN_new_fec.txt include the results after
telnet when my board is connected in my LAN.

I isolate the board from LAN connecting it with cross ethernet cable to my
PC. I add traces to fec_enet_interrupt and fec_enet_interrupt_TXF functions
and repeat tests.

The attached file IsoLAN_original_fec_trace include the ethereal traces of
ethernet connection using original fec.c driver and
IsoLAN_original_fec_trace.txt is the trace of the serial console of my
board. The file IsoLAN_new_fec_trace include the ethereal traces of ethernet
connection using patched fec.c driver and IsoLAN_new_fec_trace.txt is the
trace of the serial console of my board. The behaviour in both cases is
similar, but you can see that there is an spurious TXF interrupt (with
events = 0) after real TXF interrupt when I use patched fec.c file.

The calls to TXF interrupt routine are equal to ifconfig TX packet counter
with original fec.c code; and they are double of ifconfig TX packet counter
using patched fec.c file (spurious TXF interrupts). The number of TXF and
RXF interrupt event in both cases is much greater than the packets received
or transmitted.

Finally, I add to the patched fec.c file IRQF_DISABLED flag in request_irq
calls. The file IsoLAN_new_fec_trace_DIS include the ethereal traces of
ethernet connection and IsoLAN_new_fec_trace_DIS.txt is the trace of the
serial console of my board. Using this code, the TXF and RXF event counters
are equals to ifconfig RX and TX packet counters and there are not spurious
TXF interrupts.

What do you thing about it?. May be some problem in system interrupt
controller?

Regards

        Alberto


-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de Greg Ungerer
Enviado el: jueves, 06 de marzo de 2008 7:55
Para: uClinux development list
Asunto: Re: [uClinux-dev] Re: MCF5282 network stall problem

Hi Juan,

Juan Alberto Muñoz Susin wrote:
> I test the IRQF_DISABLED setting OK. 

Thanks.


> I agree about the TX and RX interrupt overlap. I'm sending the full 
> patch that I use to solve the problem avoiding setting IRQF_DISABLED. 
> It has been generated from 20071001 patch. It has common fixes whith 
> Claude´s patch and some additional code modifications, like four 
> different interrupt routines, that I think may be usefull to generate 
> a patch in next system versions. The main code changes are:

I have tried this (converting it to also work on the 520x I am using for
testing at the moment). It works (as expected), but I am seeing something
odd.

I get a lot of interrup events for each packet. So for example, after
booting and getting a dhcp address I see:


/> ifconfig
eth0      Link encap:Ethernet  HWaddr 00:14:15:00:00:17
           inet addr:10.46.12.213  Bcast:10.46.12.255  Mask:255.255.255.0
           UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:3 errors:0 dropped:0 overruns:0 frame:0
           TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000

lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0

/> cat /proc/interrupts
            CPU0
  68:        958      M68K-INTC  timer
  90:       1949      M68K-INTC  UART
  91:          0      M68K-INTC  UART
  92:          0      M68K-INTC  UART
100:         70      M68K-INTC  fec(TXF)
101:          0      M68K-INTC  fec(TXB)
102:          0      M68K-INTC  fec(TXFIFO)
103:          0      M68K-INTC  fec(TXCR)
104:         42      M68K-INTC  fec(RXF)
105:          0      M68K-INTC  fec(RXB)
106:        126      M68K-INTC  fec(MII)
107:          0      M68K-INTC  fec(LC)
108:          0      M68K-INTC  fec(HBERR)
109:          0      M68K-INTC  fec(GRA)
110:          0      M68K-INTC  fec(EBERR)
111:          0      M68K-INTC  fec(BABT)
112:          0      M68K-INTC  fec(BABR)
/>


So we have sent 5 packets, but have processed 70 TX events.

That wasn't the case with out these driver changes. It reports
5 TX events in the above case.

Do you see this in your setup?

Regards
Greg




--
------------------------------------------------------------------------
Greg Ungerer  --  Chief Software Dude       EMAIL:     [EMAIL PROTECTED]
Secure Computing Corporation                PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected] To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev
Sash command shell (version 1.1.1)
/> [42949405.120000] RXF Int
[42949405.130000] RXF Int
[42949405.140000] In while
[42949405.150000] In while
[42949405.160000] Out break
[42949405.170000] TXF Int
[42949405.180000] In while
[42949405.190000] In while
[42949405.200000] Out break
[42949405.210000] TXF Int
[42949406.070000] RXF Int
[42949406.080000] In while
[42949406.090000] In while
[42949406.100000] Out break
[42949406.110000] TXF Int
[42949407.040000] RXF Int
[42949407.050000] In while
[42949407.060000] In while
[42949407.070000] Out break
[42949407.080000] TXF Int
[42949408.010000] RXF Int
[42949408.020000] In while
[42949408.030000] In while
[42949408.040000] Out break
[42949408.050000] TXF Int
[42949408.990000] RXF Int
[42949409.000000] In while
[42949409.010000] In while
[42949409.020000] Out break
[42949409.030000] TXF Int
[42949409.970000] RXF Int
[42949409.980000] In while
[42949409.990000] In while
[42949410.000000] Out break
[42949410.010000] TXF Int
[42949410.180000] RXF Int
[42949410.190000] In while
[42949410.200000] In while
[42949410.210000] Out break
[42949410.220000] TXF Int
[42949410.930000] RXF Int
[42949410.940000] In while
[42949410.950000] In while
[42949410.960000] Out break
[42949410.970000] TXF Int
[42949411.910000] RXF Int
[42949411.920000] In while
[42949411.930000] In while
[42949411.940000] Out break
[42949411.950000] TXF Int
[42949412.890000] RXF Int
[42949412.900000] In while
[42949412.910000] In while
[42949412.920000] Out break
[42949412.930000] TXF Int
[42949413.870000] RXF Int
[42949413.890000] In while
[42949413.900000] In while
[42949413.920000] Out break
[42949413.930000] TXF Int
ifconfig
eth0      Link encap:Ethernet  HWaddr 00:CF:52:55:FC:71
          inet addr:192.168.1.36  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Base address:0x1000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

/> more /proc/interrupts
<< /proc/interrupts >>
           CPU0
 77:          0      M68K-INTC  ColdFire UART
 78:          0      M68K-INTC  ColdFire UART
 79:       3307      M68K-INTC  ColdFire UART
 87:        203      M68K-INTC  fec(TXF)
 88:         12      M68K-INTC  fec(TXB)
 89:          0      M68K-INTC  fec(TXFIFO)
 90:          0      M68K-INTC  fec(TXCR)
 91:        170      M68K-INTC  fec(RXF)
 92:          0      M68K-INTC  fec(RXB)
 93:        221      M68K-INTC  fec(MII)
 94:          0      M68K-INTC  fec(LC)
 95:          0      M68K-INTC  fec(HBERR)
 96:          0      M68K-INTC  fec(GRA)
 97:          0      M68K-INTC  fec(EBERR)
 98:          0      M68K-INTC  fec(BABT)
 99:          0      M68K-INTC  fec(BABR)
119:       8743      M68K-INTC  timer
/>
/> ifconfig
eth0      Link encap:Ethernet  HWaddr 00:CF:52:55:FC:71
          inet addr:192.168.10.36  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:318 errors:0 dropped:0 overruns:0 frame:0
          TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Base address:0x1000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

/> more /proc/interrupts
<< /proc/interrupts >>
           CPU0
 69:          0      M68K-INTC  Modulo Puertos Plataforma Desarrollo ColdFire 
(MPPDCF)
 77:          0      M68K-INTC  ColdFire UART
 78:          0      M68K-INTC  ColdFire UART
 79:          0      M68K-INTC  ColdFire UART
 87:       1949      M68K-INTC  fec(TXF)
 88:        805      M68K-INTC  fec(TXB)
 89:          0      M68K-INTC  fec(TXFIFO)
 90:          0      M68K-INTC  fec(TXCR)
 91:      18612      M68K-INTC  fec(RXF)
 92:          0      M68K-INTC  fec(RXB)
 93:        207      M68K-INTC  fec(MII)
 94:          0      M68K-INTC  fec(LC)
 95:          0      M68K-INTC  fec(HBERR)
 96:          0      M68K-INTC  fec(GRA)
 97:          0      M68K-INTC  fec(EBERR)
 98:          0      M68K-INTC  fec(BABT)
 99:          0      M68K-INTC  fec(BABR)
119:       4102      M68K-INTC  timer
/> ifconfig
eth0      Link encap:Ethernet  HWaddr 00:CF:52:55:FC:71
          inet addr:192.168.10.36  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:918 errors:0 dropped:0 overruns:0 frame:0
          TX packets:175 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Base address:0x1000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

Attachment: IsoLAN_new_fec_trace
Description: Binary data

Sash command shell (version 1.1.1)
/> [42949415.250000] In while
[42949415.260000] In while
[42949415.270000] Out break
[42949415.280000] Processing TXF interrupt
[42949415.290000] Spurious TXF interrupt: 0
[42949415.300000] In while
[42949415.310000] In while
[42949415.320000] Out break
[42949415.330000] Processing TXF interrupt
[42949415.340000] Spurious TXF interrupt: 0
[42949416.170000] In while
[42949416.180000] In while
[42949416.190000] Out break
[42949416.200000] Processing TXF interrupt
[42949416.210000] Spurious TXF interrupt: 0
[42949417.130000] In while
[42949417.140000] In while
[42949417.150000] Out break
[42949417.160000] Processing TXF interrupt
[42949417.170000] Spurious TXF interrupt: 0
[42949418.090000] In while
[42949418.100000] In while
[42949418.110000] Out break
[42949418.120000] Processing TXF interrupt
[42949418.130000] Spurious TXF interrupt: 0
[42949419.050000] In while
[42949419.060000] In while
[42949419.070000] Out break
[42949419.080000] Processing TXF interrupt
[42949419.090000] Spurious TXF interrupt: 0
[42949420.010000] In while
[42949420.020000] In while
[42949420.030000] Out break
[42949420.040000] Processing TXF interrupt
[42949420.050000] Spurious TXF interrupt: 0
[42949420.300000] In while
[42949420.310000] In while
[42949420.320000] Out break
[42949420.330000] Processing TXF interrupt
[42949420.340000] Spurious TXF interrupt: 0
[42949420.930000] In while
[42949420.940000] In while
[42949420.950000] Out break
[42949420.960000] Processing TXF interrupt
[42949420.970000] Spurious TXF interrupt: 0
[42949421.890000] In while
[42949421.900000] In while
[42949421.910000] Out break
[42949421.930000] Processing TXF interrupt
[42949421.940000] Spurious TXF interrupt: 0
[42949422.860000] In while
[42949422.870000] In while
[42949422.880000] Out break
[42949422.890000] Processing TXF interrupt
[42949422.900000] Spurious TXF interrupt: 0
[42949423.820000] In while
[42949423.830000] In while
[42949423.840000] Out break
[42949423.850000] Processing TXF interrupt
[42949423.860000] Spurious TXF interrupt: 0
[42949424.780000] In while
[42949424.790000] In while
[42949424.800000] Out break
[42949424.810000] Processing TXF interrupt
[42949424.820000] Spurious TXF interrupt: 0
[42949425.740000] In while
[42949425.750000] In while
[42949425.760000] Out break
[42949425.770000] Processing TXF interrupt
[42949425.780000] Spurious TXF interrupt: 0
ifconfig
eth0      Link encap:Ethernet  HWaddr 00:CF:52:55:FC:71
          inet addr:192.168.1.36  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Base address:0x1000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

/> more /proc/interrupts
<< /proc/interrupts >>
           CPU0
 77:          0      M68K-INTC  ColdFire UART
 78:          0      M68K-INTC  ColdFire UART
 79:       3312      M68K-INTC  ColdFire UART
 87:        196      M68K-INTC  fec(TXF)
 88:          0      M68K-INTC  fec(TXB)
 89:          0      M68K-INTC  fec(TXFIFO)
 90:          0      M68K-INTC  fec(TXCR)
 91:        196      M68K-INTC  fec(RXF)
 92:          0      M68K-INTC  fec(RXB)
 93:        180      M68K-INTC  fec(MII)
 94:          0      M68K-INTC  fec(LC)
 95:          0      M68K-INTC  fec(HBERR)
 96:          0      M68K-INTC  fec(GRA)
 97:          0      M68K-INTC  fec(EBERR)
 98:          0      M68K-INTC  fec(BABT)
 99:          0      M68K-INTC  fec(BABR)
119:       6731      M68K-INTC  timer
/>

Attachment: IsoLAN_new_fec_trace_DIS
Description: Binary data

Sash command shell (version 1.1.1)
/> [42949428.910000] In while
[42949428.910000] In while
[42949428.910000] Out break
[42949428.910000] Processing TXF interrupt
[42949428.920000] In while
[42949428.920000] In while
[42949428.920000] Out break
[42949428.920000] Processing TXF interrupt
[42949429.790000] In while
[42949429.790000] In while
[42949429.790000] Out break
[42949429.790000] Processing TXF interrupt
[42949430.730000] In while
[42949430.730000] In while
[42949430.730000] Out break
[42949430.730000] Processing TXF interrupt
[42949431.670000] In while
[42949431.670000] In while
[42949431.670000] Out break
[42949431.670000] Processing TXF interrupt
[42949432.610000] In while
[42949432.610000] In while
[42949432.610000] Out break
[42949432.610000] Processing TXF interrupt
[42949433.550000] In while
[42949433.550000] In while
[42949433.550000] Out break
[42949433.550000] Processing TXF interrupt
[42949434.490000] In while
[42949434.490000] In while
[42949434.490000] Out break
[42949434.490000] Processing TXF interrupt
[42949435.430000] In while
[42949435.430000] In while
[42949435.430000] Out break
[42949435.430000] Processing TXF interrupt
[42949436.370000] In while
[42949436.370000] In while
[42949436.370000] Out break
[42949436.370000] Processing TXF interrupt
[42949437.310000] In while
[42949437.310000] In while
[42949437.310000] Out break
[42949437.310000] Processing TXF interrupt
[42949438.250000] In while
[42949438.250000] In while
[42949438.250000] Out break
[42949438.250000] Processing TXF interrupt
[42949439.200000] In while
[42949439.200000] In while
[42949439.200000] Out break
[42949439.200000] Processing TXF interrupt
[42949440.150000] In while
[42949440.150000] In while
[42949440.150000] Out break
[42949440.150000] Processing TXF interrupt
[42949441.100000] In while
[42949441.100000] In while
[42949441.100000] Out break
[42949441.100000] Processing TXF interrupt
[42949442.050000] In while
[42949442.050000] In while
[42949442.050000] Out break
[42949442.050000] Processing TXF interrupt
ifconfig
eth0      Link encap:Ethernet  HWaddr 00:CF:52:55:FC:71
          inet addr:192.168.1.36  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Base address:0x1000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

/> more /proc/interrupts
<< /proc/interrupts >>
           CPU0
 77:          0      M68K-INTC  ColdFire UART
 78:          0      M68K-INTC  ColdFire UART
 79:       3327      M68K-INTC  ColdFire UART
 87:         16      M68K-INTC  fec(TXF)
 88:          0      M68K-INTC  fec(TXB)
 89:          0      M68K-INTC  fec(TXFIFO)
 90:          0      M68K-INTC  fec(TXCR)
 91:         21      M68K-INTC  fec(RXF)
 92:          0      M68K-INTC  fec(RXB)
 93:         13      M68K-INTC  fec(MII)
 94:          0      M68K-INTC  fec(LC)
 95:          0      M68K-INTC  fec(HBERR)
 96:          0      M68K-INTC  fec(GRA)
 97:          0      M68K-INTC  fec(EBERR)
 98:          0      M68K-INTC  fec(BABT)
 99:          0      M68K-INTC  fec(BABR)
119:       8446      M68K-INTC  timer
/>

Attachment: IsoLAN_original_fec_trace
Description: Binary data

/> ifconfig
eth0      Link encap:Ethernet  HWaddr 00:CF:52:55:FC:71
          inet addr:192.168.10.36  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:274 errors:0 dropped:0 overruns:0 frame:0
          TX packets:85 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Base address:0x1000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

/> more /proc/interrupts
<< /proc/interrupts >>
           CPU0
 69:          0      M68K-INTC  Modulo Puertos Plataforma Desarrollo ColdFire 
(MPPDCF)
 77:          0      M68K-INTC  ColdFire UART
 78:          0      M68K-INTC  ColdFire UART
 79:          0      M68K-INTC  ColdFire UART
 87:       2085      M68K-INTC  fec(TXF)
 88:          0      M68K-INTC  fec(TXB)
 89:          0      M68K-INTC  fec(TXFIFO)
 90:          0      M68K-INTC  fec(TXCR)
 91:       9310      M68K-INTC  fec(RXF)
 92:          0      M68K-INTC  fec(RXB)
 93:        182      M68K-INTC  fec(MII)
 94:          0      M68K-INTC  fec(LC)
 95:          0      M68K-INTC  fec(HBERR)
 96:          0      M68K-INTC  fec(GRA)
 97:          0      M68K-INTC  fec(EBERR)
 98:          0      M68K-INTC  fec(BABT)
 99:          0      M68K-INTC  fec(BABR)
119:       4383      M68K-INTC  timer
/> ifconfig
eth0      Link encap:Ethernet  HWaddr 00:CF:52:55:FC:71
          inet addr:192.168.10.36  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:654 errors:0 dropped:0 overruns:0 frame:0
          TX packets:169 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Base address:0x1000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

/>
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to