Syslog flushes all logs to disk as they happen (synchronous writes). So it is very slow.

I believe tcpborphserver (ROACH's KATCP server) should not be logging anything anymore.

The logs you're seeing are likely from the kernel itself, as BORPH logs every bus transaction. A kernel recompile is required to remove this entirely. But you can configure what is logged to disk by syslog in /etc/syslog.conf. Perhaps try to disable the logging of these messages.

You should be getting around 7MegaBytes/s across that bus. Even over a network. This is just dumping data, and does not count bus overhead incurred by reading small quantities of data from different BRAMs etc.

If you try to dump the whole DRAM using tcpborphserver's "bulkread" command, you should achieve something close to 3.5MB/s across the network using the Python KATCP and the wrapper in corr.

Jason

On 28 Apr 2010, at 08:11, Aaron Parsons wrote:

I'm currently only able to read ~100kB/s from shared BRAMs on the
ROACH.  I assume the ROACH can do better than this.

I've profiled my code and am certain that the bottleneck is in reading
BRAM files.  When I looked closer, I found a bunch of logging showing
up in /proc/kmsg for every file transaction.  Acting on the theory
that this logging was slowing everything down, I killed syslogd and
klogd (/etc/init.d/klogd stop, etc).  Yet I still get lines in
/proc/kmsg from "proc_borph".  I can't find any processes that I
recognize as potentiall logging daemons, and I haven't found anything
with lsof that indicates what may be writing to /proc/kmsg.  I'm left
thinking that maybe this logging is compiled into the kernel.

Does anyone know what is cause such lousy file I/O performance on the
ROACH?  If it is indeed a problem with excessive logging, how do I
stop it?

--
Aaron Parsons

510-406-4322 (cell)
Campbell Hall 523, UCB



Reply via email to