leimySPAM2k at mac.com
Sun Apr 25 23:38:47 PDT 2004
I can't send a message larger than 128K
Hiten helped me find it. I have a test that showed it and fought me all day.
include/param.h:119:#define MAXPHYS (128 * 1024) /* max raw I/O t
XIO_INTERNAL_PAGES is MAXPHYS and "xio_init_ubuf" is using it as the upper
limit on a for loop :).
Apparently there is an error but it never makes it back to the user
because caps_load_ccr is called which calls xio_init_ubuf unchecked.
In this case it's failing as I am sending 128K+1 bytes and I had no way to
know about it at the user level.
The test I used is a simple server that waits for 2 messages... The client
connects to it and sends the atoi of argv as the "length to expect" for
the second message. Then it mallocs and memsets the values to "1" in the
contiguous buffer I allocate. It then caps_sys_put's this buffer and is
The server side checks for the 1s and has been failing at the 128K+1 bit.
This might be a good test for /usr/src/test/caps btw. I'd like to clean it
up and submit it if you are interested.
Also I am trying my hand at diagraming the behavior of CAPS and a typical
client/server connect/put situation. I don't know where that will be published
but I hope to get it out to the dragonfly community as the #dfinstaller
folks might be able to refer to it.
I am also working on a little walkthrough paper (just started the outline
tonight) for CAPS system call interface. I hope to make progress before
I move in a few weeks to Seattle [ a 4 day drive ]. It will take a while
for me to get back in gear then.
More information about the Bugs