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