[Pvfs2-developers] request unify and cleanup

Sam Lang slang at mcs.anl.gov
Wed Feb 13 11:42:27 EST 2008


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
>>>> Pvfs2-developers at beowulf-underground.org
>>>> 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
>



More information about the Pvfs2-developers mailing list