cvs co -r <your branch> pvfs2
cd pvfs2
patch -p 0 < patch-file
cvs commit
Why doesn't that work for you?
-sam
On Feb 13, 2008, at 10:41 AM, Walter B. Ligon III wrote:
Well, no, that patch is against the repository files. I can't do
that.
Hmmm, OK, I guess I'll have to make a patch.
Walt
Sam Lang wrote:
Hi Walt,
Yes its against HEAD, and its already been committed. It should
apply cleanly to your branch though.
-sam
On Feb 13, 2008, at 9:09 AM, Walter B. Ligon III wrote:
Sam, is this patch against the current trunk? This looks like
something we should include in our branch, since we are about to
add a server request/state machine or 3.
Walt
Sam Lang wrote:
The attached patch tries to cleanup some of our server request
code, so that adding a new server request+state machine doesn't
mean searching for all the places where we perform a switch/case
on the server op enum. It was motivated by the need for a more
generic prelude state machine and request scheduler, but its been
something that I've been itching to knock out for a while now. I
think there are still improvements that can be made here,
especially to the encoding/decoding and request scheduler, but
this gives me the functionality that I needed, so I decided its a
good place to stop.
What it does in summary:
The normal path for a server request operation is to jump to the
prelude state machine, which tries schedule the request based on
the handle+fsid. This meant that the request scheduler code had
a switch/case returning the handle+fsid for each request we
defined. The function was also overloaded with a readonly
parameter (whether the request modified any objects on the
server), and a scheduling policy parameter (as the return code),
which specified whether the request scheduling could be bypassed
for this request.
I moved all that to a per-request parameter structure, that gets
specified within the server state machine for the request. Now
there is one array of server requests (moved to pvfs2-server-
req.c) which the request scheduler and prelude state machine can
poke at to get parameters (defined in the state machine for that
request), and based decisions on.
The patch includes some other minor changes:
* A fix to the BMI addr ref count increment/decrement.
Previously, the addr ref count was being incremented/decremented
in the prelude/final-response state machines. That requires that
those state machines get invoked, which I don't want to have to
depend on. I've moved the INC call to the unexpected_sm, and the
DEC call to where the state machine gets finished in the server.
That way we don't have to worry about whether we're using prelude/
final-response.
* Cleanup of the request scheduler. The way we were changing the
mode from normal to admin was sort of embedded into the request
scheduling code, so we had to hack the mode change from
prelude_sm instead of in setparam. Also, the request scheduler
had to be aware of the setparam fields in the request. I've
moved the mode change code to separate request scheduler and job
calls. I think something similar could be done for the timer
code (it doesn't really belong in the request scheduler), but
I'll leave that for another patch.
* Changed the way we compile the server binary in Makefile.in to
allow for multiple object files.
Let me know what you think.
Thanks,
-sam
------------------------------------------------------------------------
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-
developers
--
Dr. Walter B. Ligon III
Associate Professor
ECE Department
Clemson University
--
Dr. Walter B. Ligon III
Associate Professor
ECE Department
Clemson University
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers