[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] Re: [microblaze-uclinux] UDP packet reception triggers a hangup on the microblaze
Hi Michal,
I have attached the outcome of netperf. I'm still going to make the results for
with ublaze v7.00.b (tactical patch)
- OPB EMAC (with DMA)
- PLB EMACLITE
with the latest version of Xilinx
- PLB EMACLITE
- PLB ttmac
svn revision petalinux r4909
EDK92i (service pack 2 + tactical patch for ublaze v7.00.b)
Design is using OPB emac (programmed IO) connected to the PLB bus
ML506 board
10.0.0.3; count=10
Linux tmb 2.6.20-uc0 #26 Mon Dec 1 09:00:09 CET 2008 microblaze
CPU-Family: MicroBlaze
FPGA-Arch: virtex5
CPU-Ver: 7.00.b
CPU-MHz: 125.00
BogoMips: 62.05
HW-Div: yes
HW-Shift: yes
Icache: 8kB
Dcache: 8kB
HW-Debug: yes
CPU0
0: 339552 level OPB-INTC timer
1: 807075 level OPB-INTC eth0
2: 3 edge OPB-INTC uartlite
3: 2826 edge OPB-INTC uartlite
MemTotal: 257416 kB
MemFree: 247564 kB
Buffers: 612 kB
|TCP_STREAM| 7596 7496 7703 7945 7133 7344 7377 7330 7534 7810
|Average |7526|
|UDP_STREAM| 18043 17973 18009 17991 18009 17973 17973 17973 17991
17973|Average |17990|
|TCP_MAERTS| 8751 8720 8720 8751 8608 8720 8751 8738 8694 8751
|Average |8720|
|TCP_RR| 1113 1101 1101 1100 1109 1115 1113 1106 1098 1106
|Average |1106|
|TCP_CRR| 259 257 258 259 259 258 258 258 259 259
|Average |258|
|UDP_RR| 1396 1397 1396 1397 1397 1396 1397 1396 1396 1397
|Average |1396|
eth0 Link encap:Ethernet HWaddr 00:0A:35:01:C8:D4
inet addr:10.0.0.10 Bcast:10.255.255.255 Mask:255.0.0.0
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:826897 errors:0 dropped:0 overruns:0 frame:0
TX packets:1122734 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
Interrupt:1
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:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
PID PORT STAT SIZE SHARED %CPU COMMAND
1 S 136K 0K 0.0 /bin/init
2 R 0K 0K 0.0 ksoftirqd/0
3 S 0K 0K 0.0 events/0
4 S 0K 0K 0.0 khelper
5 S 0K 0K 0.0 kthread
6 S 0K 0K 0.0 kblockd/0
7 S 0K 0K 0.0 pdflush
8 S 0K 0K 0.0 pdflush
9 S 0K 0K 0.0 kswapd0
10 S 0K 0K 0.0 aio/0
11 S 0K 0K 0.0 mtdblockd
36 S 654K 0K 0.0 /bin/sh
37 S 643K 0K 0.0 /bin/sh --
38 S 67K 0K 0.0 /bin/inetd /etc/inetd.conf
1784 R 68K 0K 0.0 ps
greetings
Bas
On Fri, Nov 28, 2008 at 11:21 AM, Bas van Tiel <bvantiel@xxxxxxxxx> wrote:
> Hi Michal,
>
> indeed it's building now and the flashing/booting is OK. I will try
> out some different hardware configurations and
> will sent the network performance results on short notice. I will
> revert the "disable_irq" in entry.S to see if I get the "hang-up"
> problem
> back to understand for myself why it's needed. I can imagine when
> stressing the system (generating more interrupts) you could trigger it
> the problem earlier (ret_from_intr). Thanx for the help...
>
> greetings
> Bas
>
> On Thu, Nov 27, 2008 at 11:17 PM, Michal Simek <monstr@xxxxxxxxx> wrote:
>> Hi Bas,
>>
>> that's new feature which we added some days ago for uart16550 support.
>> Just go to your hw design and use latest BSP - and generate libraries.
>> Everything should be fine.
>>
>> And of course you can use U-Boot from my site too.
>>
>> Both version works well. I use both of them.
>>
>> Regards,
>> Michal
>>
>> Bas van Tiel wrote:
>>> Hi Michal,
>>>
>>> thanx, it's getting through the build process. The next stop is at
>>> u-boot somehow I don't have the define CONFIG_STDINOUT_BASEADDR. Can I
>>> follow
>>> your procedure (http://www.monstr.eu/wiki/doku.php?id=uboot:uboot) to
>>> make a good bootloader or should the one from the petalinux work fine?
>>>
>>> greetings
>>> Bas
>>>
>>> On Thu, Nov 27, 2008 at 2:13 PM, Michal Simek <Monstr@xxxxxxxxx> wrote:
>>>> Hi Bas,
>>>>
>>>> Disable uClibc, uclibc is in toolchain
>>>>
>>>> Regards,
>>>> Michal
>>>>
>>>>> ----------------------------------------
>>>>> The problem I'm getting by building the latest svn tree (r4917,
>>>>> clean checkout) is a compilation error in one of the files in ucLibc
>>>>> The error reproduces by selecting the Xilinx and ML506, uClibc
>>>>> together with the default config files. (that why the cpu version is
>>>>> 6.00.b)
>>>>>
>>>>> Is there any easy way to solve this?
>>>>>
>>>>> greetings
>>>>> Bas
>>>>>
>>>>> microblaze-uclinux-gcc -Wall -Wstrict-prototypes -Wno-trigraphs
>>>>> -fno-strict-aliasing -Os -funit-at-a-time -mno-xl-soft-mul
>>>>> -mno-xl-soft-div -mxl-barrel-shift -mcpu=v6.00.b -O2 -g
>>>>> -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall
>>>>> -mno-xl-soft-mul -mno-xl-soft-div -mxl-barrel-shift -mcpu=v6.00.b
>>>>> -DEMBED -fno-builtin -nostdinc -D_LIBC -I../../include -I. -isystem
>>>>> /home/bas.van.tiel/petalinux-svn/tools/linux-i386/microblaze-uclinux-tools/bin/../lib/gcc/microblaze-uclinux/3.4.1/include
>>>>> -DNDEBUG -c ether_addr.c -o ether_addr.o
>>>>> In file included from ../../include/linux/posix_types.h:47,
>>>>> from ../../include/linux/types.h:14,
>>>>> from ../../include/linux/if_ether.h:24,
>>>>> from ../../include/netinet/if_ether.h:26,
>>>>> from ../../include/netinet/ether.h:26,
>>>>> from ether_addr.c:32:
>>>>> ../../include/asm/posix_types.h:18: error: redefinition of typedef
>>>>> '__kernel_ino_t'
>>>>> ../../include/bits/kernel_types.h:20: error: previous declaration of
>>>>> '__kernel_ino_t' was here
>>>>> ../../include/asm/posix_types.h:19: error: redefinition of typedef
>>>>> '__kernel_mode_t'
>>>>> ../../include/bits/kernel_types.h:22: error: previous declaration of
>>>>> '__kernel_mode_t' was here
>>>>> ../../include/asm/posix_types.h:20: error: redefinition of typedef
>>>>> '__kernel_nlink_t'
>>>>> ../../include/bits/kernel_types.h:23: error: previous declaration of
>>>>> '__kernel_nlink_t' was here
>>>>> ../../include/asm/posix_types.h:21: error: redefinition of typedef
>>>>> '__kernel_off_t'
>>>>> ../../include/bits/kernel_types.h:24: error: previous declaration of
>>>>> '__kernel_off_t' was here
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 26, 2008 at 5:01 PM, Michal Simek <monstr@xxxxxxxxx> wrote:
>>>>>> Hi Bas,
>>>>>>
>>>>>> I look at your app.
>>>>>> 1. you should use user-apps folder for microblaze apps and changed prepare
>>>>>> Makefile. I believe that is not so hard to change it. (petalinux-new-app)
>>>>>> 2. I am missing any readme how to run it. Please add it to that folder and
>>>>> pack
>>>>>> and resend.
>>>>>>
>>>>>> Thanks,
>>>>>> Michal
>>>>>>
>>>>>>
>>>>>>> OK,
>>>>>>>
>>>>>>> I will try tomorrow with the latest changes from svn.
>>>>>>>
>>>>>>> the test program is also attached....
>>>>>>>
>>>>>>> thx, for the quick responses..
>>>>>>>
>>>>>>> Bas
>>>>>>>
>>>>>>> On Wed, Nov 26, 2008 at 10:21 AM, Michal Simek <monstr@xxxxxxxxx> wrote:
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> this changes is in latest entry.S too.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Michal
>>>>>>>>
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>> We used to have the same problem, although we don't use xemac. Without
>>>>>>>>> going into possibly misleading details, we noticed a one-line difference
>>>>>>>>> between our entry.S and the one in the Petalogix tree. After making the
>>>>>>>>> change we've been able to run a simple script that continuously sends
>>>>>>>>> packets to the board for several days without crashing. Running the same
>>>>>>>>> script before the change, the system would freeze in seconds. I hope
>>>>>>>>> this helps, here's an attachment just in case.
>>>>>>>>>
>>>>>>>>> Location -
>>>>>>>>> petalinux/software/linux-2.6.x-petalogix/arch/microblaze/kernel/entry.S
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: Bas van Tiel <bvantiel@xxxxxxxxx>
>>>>>>>>> To: microblaze-uclinux@xxxxxxxxxxxxxx
>>>>>>>>> Sent: Tue, 25 Nov 2008 15:10
>>>>>>>>> Subject: [microblaze-uclinux] UDP packet reception triggers a hangup on
>>>>>>>>> the microblaze
>>>>>>>>>
>>>>>>>>> Hello All,
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> when I transmit a continously stream of UDP packets to the microblaze
>>>>>>>>>
>>>>>>>>> a hangup is triggered, I have the following configuration:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> - petalinux-v0.30-rc1 software
>>>>>>>>>
>>>>>>>>> - xemac linux driver in PIO mode
>>>>>>>>>
>>>>>>>>> - xemac IP block which is connected via a PLB <-> OPB bridge to the
>>>>>>>>>
>>>>>>>>> ublaze. (the xemac is configured with "No DMA" and IPIF
>>>>>>>>>
>>>>>>>>> (recieve/transmit buffers) are set to 32768 bytes and FIFO depth of
>>>>>>>>>
>>>>>>>>> 16.)
>>>>>>>>>
>>>>>>>>> - EDK 9.2.02. with the patch (AR30051) from Xilinx for the microblaze
>>>>> v7.00.b.
>>>>>>>>> - 2 uarts, one for kernel console, other one for shell access.
>>>>>>>>>
>>>>>>>>> - ML506 Evalutation platform
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I tried to capture the packets via AF_PACKET and AF_INET, both methods
>>>>>>>>>
>>>>>>>>> gave the same result -> a kind of hangup of the microblaze:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> symptoms:
>>>>>>>>>
>>>>>>>>> 1) no serial input is taken from both terminals
>>>>>>>>>
>>>>>>>>> 2) a ping to the microblaze doesn't send a reply packet back.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Has anybody seen this behavior before with the xemac connected via the
>>>>>>>>>
>>>>>>>>> OPB (PLB<->OPB) to the PLB bus, or is this setup with a bridge in
>>>>>>>>>
>>>>>>>>> between
>>>>>>>>>
>>>>>>>>> asking for trouble and should I look for an alternative?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>>
>>>>>>>>> Bas
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --- some additional info
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Linux tmb 2.6.20-uc0 #1 Tue Nov 25 14:27:21 CET 2008 microblaze
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> CPU-Family: MicroBlaze
>>>>>>>>>
>>>>>>>>> FPGA-Arch: virtex5
>>>>>>>>>
>>>>>>>>> CPU-Ver: Unknown
>>>>>>>>>
>>>>>>>>> CPU-MHz: 125.00
>>>>>>>>>
>>>>>>>>> BogoMips: 62.05
>>>>>>>>>
>>>>>>>>> HW-Div: yes
>>>>>>>>>
>>>>>>>>> HW-Shift: yes
>>>>>>>>>
>>>>>>>>> Icache: 8kB
>>>>>>>>>
>>>>>>>>> Dcache: 8kB
>>>>>>>>>
>>>>>>>>> HW-Debug: yes
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> PID PORT STAT SIZE SHARED %CPU COMMAND
>>>>>>>>>
>>>>>>>>> 1 S 135K 0K 0.0 /bin/init
>>>>>>>>>
>>>>>>>>> 2 R 0K 0K 0.0 ksoftirqd/0
>>>>>>>>>
>>>>>>>>> 3 S 0K 0K 0.0 events/0
>>>>>>>>>
>>>>>>>>> 4 S 0K 0K 0.0 khelper
>>>>>>>>>
>>>>>>>>> 5 S 0K 0K 0.0 kthread
>>>>>>>>>
>>>>>>>>> 6 S 0K 0K 0.0 kblockd/0
>>>>>>>>>
>>>>>>>>> 7 S 0K 0K 0.0 pdflush
>>>>>>>>>
>>>>>>>>> 8 S 0K 0K 0.0 pdflush
>>>>>>>>>
>>>>>>>>> 9 S 0K 0K 0.0 kswapd0
>>>>>>>>>
>>>>>>>>> 10 S 0K 0K 0.0 aio/0
>>>>>>>>>
>>>>>>>>> 11 S 0K 0K 0.0 mtdblockd
>>>>>>>>>
>>>>>>>>> 24 S 0K 0K 0.0 jffs2_gcd_mtd4
>>>>>>>>>
>>>>>>>>> 40 S0 S 656K 0K 0.0 /bin/sh
>>>>>>>>>
>>>>>>>>> 41 S0 S 643K 0K 0.0 /bin/sh --
>>>>>>>>>
>>>>>>>>> 42 S 67K 0K 0.0 /bin/inetd
>>>>>>>>>
>>>>>>>>> 55 S0 R 68K 0K 0.0 ps
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> pseudo code:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ethernet mac is running at 100 BaseTX-FD
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> sender: (host PC)
>>>>>>>>>
>>>>>>>>> sd_ = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
>>>>>>>>>
>>>>>>>>> sendto(sd_, buf, BUFLEN, 0, (struct sockaddr*)&sa_,
>>>>> (socklen_t)sizeof(sa_));
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> receiver (Microblaze)
>>>>>>>>>
>>>>>>>>> sd_ = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
>>>>>>>>>
>>>>>>>>> bind(sd_, (struct sockaddr*)&sa, sizeof(sa))
>>>>>>>>>
>>>>>>>>> if (!select(sd_+1, &rfds, 0, 0, &timeout)) { break; }
>>>>>>>>>
>>>>>>>>> size = recv(sd_, buf, BUFLEN, 0);
>>>>>>>>>
>>>>>>>>> ___________________________
>>>>>>>>>
>>>>>>>>> microblaze-uclinux mailing list
>>>>>>>>>
>>>>>>>>> microblaze-uclinux@xxxxxxxxxxxxxx
>>>>> <mailto:microblaze-uclinux@xxxxxxxxxxxxxx>
>>>>>>>>> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>>>>> <http://www.itee.uq.edu.au/%7Ejwilliams/mblaze-uclinux>
>>>>>>>>> Mailing List Archive :
>>>>> http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>>>>> <http://www.itee.uq.edu.au/%7Elistarch/microblaze-uclinux/>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>> *AOL Email goes Mobile!* You can now read your AOL Emails whilst on the
>>>>>>>>> move. Sign up <http://info.aol.co.uk/email1> for a free AOL Email
>>>>>>>>> account with unlimited storage today.
>>>>>>>> ___________________________
>>>>>>>> microblaze-uclinux mailing list
>>>>>>>> microblaze-uclinux@xxxxxxxxxxxxxx
>>>>>>>> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>>>>>>>> Mailing List Archive :
>>>>> http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>>>>>>>>
>>>>>> ___________________________
>>>>>> microblaze-uclinux mailing list
>>>>>> microblaze-uclinux@xxxxxxxxxxxxxx
>>>>>> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>>>>>> Mailing List Archive :
>>>>> http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>>>>>>
>>>>> ___________________________
>>>>> microblaze-uclinux mailing list
>>>>> microblaze-uclinux@xxxxxxxxxxxxxx
>>>>> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>>>>> Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>>>>>
>>>>>
>>>>>
>>>>>
>>>> ___________________________
>>>> microblaze-uclinux mailing list
>>>> microblaze-uclinux@xxxxxxxxxxxxxx
>>>> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>>>> Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>>>>
>>>>
>>> ___________________________
>>> microblaze-uclinux mailing list
>>> microblaze-uclinux@xxxxxxxxxxxxxx
>>> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>>> Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>>>
>>>
>> ___________________________
>> microblaze-uclinux mailing list
>> microblaze-uclinux@xxxxxxxxxxxxxx
>> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>> Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>>
>>
>
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/