Hi all, I ran into the following trouble recently, and the "solution" was quite surprising! Let me spend a few lines to describe the environment: I have an ENP2506 board hosted inside a Dell server. One of the Gigabit ports of the ENP2506 is connected to a transmiter, that generates large packets at a constant rate (about 600 Mbit/s). Now, I log into the linux running on the ENP2506. I use the load utility (from the ASAN drivers) to upload some simple code to the uEngines. The uploaded code simply transfers incoming packets from the gigabit port to the RFIFO and then to SDRAM. I use a simple utilitity to read the counters of the gigabit port, and see how many packets were dropped and how many packets were received correctly. This utility uses the ioctls defined in the giga_drv module. One could expect that running at 600Mbit/s should be quite ok, and never loose a single packet. Indeed, this is the case when I move packets from the buffer of the port up to the RFIFO, but not into SDRAM. That is the uploaded code has commented out the sdram2rfifo directive. Everything works fine, and whenever I run my utility it reads zero drops from the counters of the port. Now, I modify the uploaded code so as to perform the final move of data. So data move from the port to the RFIFO and then to SDRAM. In simulation the buffer of the gigabit port never exceeds 200 bytes, using 166MHz core frequence and 66MHz IX Bus frequency.-- well below the actual numbers of the ENP2506 --. And here goes the problem: One, would expect again to have zero drops. However this is not the case, and whenever I ran the utility it reports about 10 to 15 dropped packets, never more. Why ? Hint: I ran the utility again, after I finished writing this email (it took me at least 5 full minutes) and reported 11 drops... :-) yannis
Hi Yannis,
However this is not the case, and whenever I ran the utility it reports about 10 to 15 dropped packets, never more. Why ?
Are you reading the counters while packets are still coming in? I haven't run code (at least this kind of code) on an 2506 yet but on the 2505 I noticed that the act of reading the counters in the MAC on the 2505 would cause it to drop packets ("bvmac" utility in the ASAN distribution reading via Intel's octmac.o driver). That would explain a small constant number every time you measure. -- Ken
Indeed that's the case! However, in my opinion the reason is not the actual reading of the counters. Rather it is the fact of interaction with the linux which is running entirely on the SDRAM. Therefore even if i press the enter multiple times will be disastrous! :-)))) So how can we get read of linux after we have uploaded the code ?? :-)) Thanks for your time! yannis On Fri, 11 Jul 2003, Kenneth M. Mackenzie wrote:
Hi Yannis,
However this is not the case, and whenever I ran the utility it reports about 10 to 15 dropped packets, never more. Why ?
Are you reading the counters while packets are still coming in?
I haven't run code (at least this kind of code) on an 2506 yet but on the 2505 I noticed that the act of reading the counters in the MAC on the 2505 would cause it to drop packets ("bvmac" utility in the ASAN distribution reading via Intel's octmac.o driver). That would explain a small constant number every time you measure.
-- Ken
participants (2)
-
Kenneth M. Mackenzie
-
Yannis Haritakis