Very strange measurements

Brecht Vermeulen brecht.vermeulen at rug.ac.be
Fri Jul 6 08:38:51 EDT 2001


> My first guess: Are there any weird prefetching instructions remaining in
> current Click when ENABLE_INTEL_CPU is not defined? Maybe K6-1GHz reacts
> badly to these.
> 

I'll did a grep and checked every file, but didn't find any remaining
prefetches :
is this the correct way or are there other instructions also ?

bvermeul at ianos2:/remov_ext/click/cvs/click$ find . -type f -exec grep
prefetch \{\} \; -print
        and intel specific instructions, such as prefetching, are used. 
by
        added prefetching code to unqueue, ifdefed for kernel
./ChangeLog
      // prefetch annotation area, and first 2 cache
      asm volatile("prefetcht0 %0" : : "m" (skb_list->cb[0]));
      // asm volatile("prefetcht0 %0" : : "m" (*(skb_list->data)));
      asm volatile("prefetcht0 %0" : : "m" (*(skb_list->data+32)));
./elements/linuxmodule/polldevice.cc
      asm volatile("prefetcht0 %0" : : "m" (skb->len));
      asm volatile("prefetcht0 %0" : : "m" (skb->cb[0]));
./elements/local/rrunqueue.cc
      if (_q[h] != 0) prefetch_packet(_q[h]);
./elements/standard/msqueue.cc
  static void prefetch_packet(Packet *p);
MSQueue::prefetch_packet(Packet *p)
  asm volatile("prefetcht0 %0" : : "m" (skb->data));
./elements/standard/msqueue.hh
      asm volatile("prefetcht0 %0" : : "m" (skb->len));
      asm volatile("prefetcht0 %0" : : "m" (skb->cb[0]));
./elements/standard/unqueue.cc
      asm volatile("prefetcht0 %0" : : "m" (skb->len));
      asm volatile("prefetcht0 %0" : : "m" (skb->cb[0]));
./elements/standard/unqueue2.cc
+/* prefetching of descriptor data */
./etc/linux-2.2.14-patch
+/* prefetching of descriptor data */
./etc/old-linux-2.2.16-patch
+ /* prefetching of descriptor data */
./etc/pcmcia-cs-3.1.16-patch
          asm volatile("prefetcht0 %0" :: "m" (skb->head));
      asm volatile("prefetcht0 %0" :: "m"
(PrefetchDescriptor->ReceiveStatus));
./tools/e1000/e1000_main.c

brecht



More information about the click mailing list