Author: toad
Date: 2006-08-03 13:35:58 +0000 (Thu, 03 Aug 2006)
New Revision: 9853

Modified:
   trunk/freenet/src/freenet/crypt/Yarrow.java
   trunk/freenet/src/freenet/io/comm/MessageFilter.java
   trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/PacketSender.java
   trunk/freenet/src/freenet/node/Version.java
   trunk/freenet/src/freenet/node/fcp/FCPServer.java
   trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
Log:
919:
Only write prng.seed every 1 minute.
Set PacketSender to MAXIMUM_PRIORITY.
Wait at least 20 times the store time after writing the persistent requests to 
disk.
UpdatableSortedLinkedList - only check one time in 256.
Logging.
More logging - time some more operations.

Modified: trunk/freenet/src/freenet/crypt/Yarrow.java
===================================================================
--- trunk/freenet/src/freenet/crypt/Yarrow.java 2006-08-03 13:29:04 UTC (rev 
9852)
+++ trunk/freenet/src/freenet/crypt/Yarrow.java 2006-08-03 13:35:58 UTC (rev 
9853)
@@ -226,7 +226,17 @@
                fast_pool_reseed();
        }

+       private long timeLastWroteSeed = -1;
+       
        private void write_seed(File filename) {
+               synchronized(this) {
+                       long now = System.currentTimeMillis();
+                       if(now - timeLastWroteSeed <= 60*1000) {
+                               return;
+                       } else
+                               timeLastWroteSeed = now;
+               }
+               
                try {
                        DataOutputStream dos =
                                new DataOutputStream(new 
BufferedOutputStream(new FileOutputStream(filename)));
@@ -235,6 +245,7 @@
                        dos.close();
                } catch (Exception e) {
                }
+               
        }

        /**
@@ -462,7 +473,9 @@
                if (performedPoolReseed && (seedfile != null)) {
                        //Dont do this while synchronized on 'this' since
                        //opening a file seems to be suprisingly slow on windows
+                       Logger.minor(this, "Writing seedfile");
                        write_seed(seedfile); 
+                       Logger.minor(this, "Written seedfile");
                }

                return actualEntropy;

Modified: trunk/freenet/src/freenet/io/comm/MessageFilter.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/MessageFilter.java        2006-08-03 
13:29:04 UTC (rev 9852)
+++ trunk/freenet/src/freenet/io/comm/MessageFilter.java        2006-08-03 
13:35:58 UTC (rev 9853)
@@ -166,7 +166,7 @@
     }

     public void setMessage(Message message) {
-        Logger.debug(this, "setMessage("+message+") on "+this, new 
Exception("debug"));
+        //Logger.debug(this, "setMessage("+message+") on "+this, new 
Exception("debug"));
         _message = message;
     }


Modified: trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2006-08-03 
13:29:04 UTC (rev 9852)
+++ trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2006-08-03 
13:35:58 UTC (rev 9853)
@@ -191,14 +191,30 @@
                removeTimedOutFilters();
                // Check for matched _filters
                if (packet != null) {
+                       long startTime = System.currentTimeMillis();
                        Peer peer = new Peer(packet.getAddress(), 
packet.getPort());
+                       long endTime = System.currentTimeMillis();
+                       if(endTime - startTime > 50) {
+                               if(endTime-startTime > 500)
+                                       Logger.error(this, "packet creation 
took "+(endTime-startTime)+"ms");
+                               else
+                                       Logger.normal(this, "packet creation 
took "+(endTime-startTime)+"ms");
+                       }
                        byte[] data = packet.getData();
                        int offset = packet.getOffset();
                        int length = packet.getLength();
                        if (lowLevelFilter != null) {
                                try {
                                        Logger.minor(this, "Processing packet 
of length "+length+" from "+peer);
+                                       startTime = System.currentTimeMillis();
                                        lowLevelFilter.process(data, offset, 
length, peer);
+                                       endTime = System.currentTimeMillis();
+                                       if(endTime - startTime > 50) {
+                                               if(endTime-startTime > 500)
+                                                       Logger.error(this, 
"processing packet took "+(endTime-startTime)+"ms");
+                                               else
+                                                       Logger.normal(this, 
"processing packet took "+(endTime-startTime)+"ms");
+                                       }
                                        Logger.minor(this,
                                                        "Successfully handled 
packet length " + length);
                                } catch (Throwable t) {
@@ -209,8 +225,9 @@
                                // Create a bogus context since no filter
                                Message m = decodePacket(data, offset, length,
                                                new DummyPeerContext(peer), 0);
-                               if (m != null)
+                               if (m != null) {
                                        checkFilters(m);
+                               }
                        }
                } else
                        Logger.minor(this, "Null packet");
@@ -262,6 +279,7 @@
        }

        private void removeTimedOutFilters() {
+               long tStart = System.currentTimeMillis();
                synchronized (_filters) {
                        for (ListIterator i = _filters.listIterator(); 
i.hasNext();) {
                                MessageFilter f = (MessageFilter) i.next();
@@ -278,6 +296,13 @@
                                }
                        }
                }
+               long tEnd = System.currentTimeMillis();
+               if(tEnd - tStart > 50) {
+                       if(tEnd - tStart > 500)
+                               Logger.error(this, "removeTimedOutFilters took 
"+(tEnd-tStart)+"ms");
+                       else
+                               Logger.normal(this, "removeTimedOutFilters took 
"+(tEnd-tStart)+"ms");
+               }
        }

        /**

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2006-08-03 
13:29:04 UTC (rev 9852)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2006-08-03 
13:35:58 UTC (rev 9853)
@@ -627,7 +627,9 @@
         for(int i=0;i<md.getDigestLength();i++) {
             packetHash[i] ^= buf[offset+i];
         }
+        Logger.minor(this, "Contributing entropy");
         node.random.acceptEntropyBytes(myPacketDataSource, packetHash, 0, 
md.getDigestLength(), 0.5);
+        Logger.minor(this, "Contributed entropy");

         // Lots more to do yet!
         processDecryptedData(plaintext, seqNumber, tracker, length - 
plaintext.length);

Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java    2006-08-03 13:29:04 UTC 
(rev 9852)
+++ trunk/freenet/src/freenet/node/PacketSender.java    2006-08-03 13:35:58 UTC 
(rev 9853)
@@ -38,6 +38,7 @@
         this.node = node;
         myThread = new Thread(this, "PacketSender thread for 
"+node.portNumber);
         myThread.setDaemon(true);
+        myThread.setPriority(Thread.MAX_PRIORITY);
     }



Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-08-03 13:29:04 UTC (rev 
9852)
+++ trunk/freenet/src/freenet/node/Version.java 2006-08-03 13:35:58 UTC (rev 
9853)
@@ -18,7 +18,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 918;
+       private static final int buildNumber = 919;

        /** Oldest build of Fred we will talk to */
        private static final int oldLastGoodBuild = 870;

Modified: trunk/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPServer.java   2006-08-03 13:29:04 UTC 
(rev 9852)
+++ trunk/freenet/src/freenet/node/fcp/FCPServer.java   2006-08-03 13:35:58 UTC 
(rev 9853)
@@ -436,18 +436,21 @@

                public void run() {
                        while(true) {
+                               long startTime = System.currentTimeMillis();
                                try {
                                        storePersistentRequests();
                                } catch (Throwable t) {
                                        Logger.error(this, "Caught "+t, t);
                                }
+                               long delta = System.currentTimeMillis() - 
startTime;
                                synchronized(this) {
+                                       long delay = 
Math.max(persistenceInterval, delta * 20);
                                        if(killed) return;
-                                       long startTime = 
System.currentTimeMillis();
+                                       startTime = System.currentTimeMillis();
                                        long now;
-                                       while(((now = 
System.currentTimeMillis()) < startTime + persistenceInterval) && !storeNow) {
+                                       while(((now = 
System.currentTimeMillis()) < startTime + delay) && !storeNow) {
                                                try {
-                                                       long wait = 
Math.max((startTime + persistenceInterval) - now, Integer.MAX_VALUE);
+                                                       long wait = 
Math.max((startTime + delay) - now, Integer.MAX_VALUE);
                                                        if(wait > 0)
                                                                
wait(Math.min(wait, 5000));
                                                } catch (InterruptedException 
e) {

Modified: trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
===================================================================
--- trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java    
2006-08-03 13:29:04 UTC (rev 9852)
+++ trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java    
2006-08-03 13:35:58 UTC (rev 9853)
@@ -54,8 +54,12 @@
         throw new IllegalStateException("impossible");
     }

+    private int ctr;
+    
     protected synchronized void checkList() {
-       // FIXME once satisfied that this works, make it only happen 
occasionally
+       // If get errors, make this happen all the time.
+       ctr++;
+       if(ctr % 256 != 0) return;
        int statedLength = list.size();
        int realLength = 0;
        for(Enumeration e = list.elements();e.hasMoreElements();) {
@@ -70,7 +74,7 @@
                Logger.error(this, "Illegal ERROR: "+err, new 
Exception("error"));
                throw new IllegalStateException(err);
        } else {
-               Logger.minor(this, "checkList() successful: realLength = 
statedLength = "+realLength+" on "+this);
+               //Logger.minor(this, "checkList() successful: realLength = 
statedLength = "+realLength+" on "+this);
        }
        }



Reply via email to