Changeset 8486
- Timestamp:
- 08/31/10 15:05:32 (3 years ago)
- Location:
- branches/Orange-Branch/src
- Files:
-
- 8 modified
-
common/misc/state-machine-fns.c (modified) (6 diffs)
-
server/create-immutable-copies.sm (modified) (4 diffs)
-
server/get-attr.sm (modified) (1 diff)
-
server/list-attr.sm (modified) (1 diff)
-
server/module.mk.in (modified) (1 diff)
-
server/pvfs2-server.h (modified) (2 diffs)
-
server/set-eattr.sm (modified) (1 diff)
-
server/tree-communicate.sm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/Orange-Branch/src/common/misc/state-machine-fns.c
r8317 r8486 67 67 /* this will loop from TOS down to the base frame */ 68 68 /* base frame will not be processed */ 69 70 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"[SM Terminating Child]: my_frame:%p\n",my_frame); 69 71 qlist_for_each_entry(f, &smcb->parent_smcb->frames, link) 70 72 { … … 76 78 } 77 79 80 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"[SM Terminating Child]: children_running:%d\n" 81 ,smcb->parent_smcb->children_running); 78 82 if (--smcb->parent_smcb->children_running <= 0) 79 83 { … … 83 87 job_null(0, smcb->parent_smcb, 0, r, &id, smcb->context); 84 88 } 85 return SM_ACTION_DEFERRED;86 } 89 } 90 87 91 /* call state machine completion function */ 88 92 if (smcb->terminate_fn) 89 93 { 94 if (smcb->parent_smcb) 95 { 96 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"[SM Terminating Child]: calling terminate function.\n"); 97 } 90 98 (*smcb->terminate_fn)(smcb, r); 91 99 } … … 545 553 struct PINT_frame_s *frame_entry, *tmp; 546 554 assert(smcb); 555 556 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"PINT_smcb_free: smcb:%p\n",smcb); 557 547 558 qlist_for_each_entry_safe(frame_entry, tmp, &smcb->frames, link) 548 559 { 560 if (frame_entry->frame) 561 { 562 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"PINT_smcb_free: frame:%p \ttask-id:%d\n" 563 ,frame_entry->frame 564 ,frame_entry->task_id); 565 } 566 else 567 { 568 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"PINT_smcb_free: NO FRAME ENTRIES.\n"); 569 } 570 549 571 if (frame_entry->frame && frame_entry->task_id == 0) 550 572 { 551 573 /* only free if task_id is 0 */ 552 574 free(frame_entry->frame); 553 } 575 } 554 576 qlist_del(&frame_entry->link); 555 577 free(frame_entry); … … 739 761 static int child_sm_frame_terminate(struct PINT_smcb * smcb, job_status_s * js_p) 740 762 { 763 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"CHILD TERMINATE: smcb:%p.\n",smcb); 764 741 765 PINT_smcb_free(smcb); 742 766 return 0; … … 803 827 /* assign frame */ 804 828 PINT_sm_push_frame(new_sm, f->task_id, f->frame); 829 805 830 /* locate SM to run */ 831 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"START CHILD FRAMES: calling smcb is %p.\n",smcb); 832 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"START CHILD FRAMES: with frame: %p.\n",f->frame); 833 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"START CHILD FRAMES: and task id: %d.\n",f->task_id); 806 834 new_sm->current_state = PINT_sm_task_map(smcb, f->task_id); 835 836 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"START CHILD FRAMES: new_sm->current_state is %s\n:" 837 ,(new_sm->current_state)?"VALID":"INVALID"); 838 if (new_sm->current_state) 839 { 840 gossip_debug(GOSSIP_STATE_MACHINE_DEBUG,"START CHILD FRAMES: new_sm->current_state->flag is %d\n" 841 ,new_sm->current_state->flag); 842 } 843 807 844 /* invoke SM */ 808 845 retval = PINT_state_machine_start(new_sm, &r); -
branches/Orange-Branch/src/server/create-immutable-copies.sm
r8476 r8486 4 4 * See COPYING in top-level directory. 5 5 */ 6 7 /* adding a comment */ 6 8 7 9 #include <string.h> … … 135 137 pjmp copy_data 136 138 { 137 LOCAL_SRC => pvfs2_ mirror_work_sm;138 REMOTE_SRC => pvfs2_ call_msgpairarray_sm;139 LOCAL_SRC => pvfs2_pjmp_mirror_work_sm; 140 REMOTE_SRC => pvfs2_pjmp_call_msgpairarray_sm; 139 141 } 140 142 success => check_copy_results; … … 192 194 193 195 } /*end nested state machine pvfs2_create_immutable_copies_sm*/ 194 195 %%196 197 %%198 nested machine pvfs2_call_msgpairarray_sm199 {200 state call_msgpairarray201 {202 run call_msgpairarray;203 success => transfer_msgpair;204 default => cleanup_msgpairarray;205 }206 207 state transfer_msgpair208 {209 jump pvfs2_msgpairarray_sm;210 default => cleanup_msgpairarray;211 }212 213 state cleanup_msgpairarray214 {215 run cleanup_msgpairarray;216 default => return;217 }218 } /*end nested state machine pvfs2_call_msgpairarray_sm*/219 196 %% 220 197 … … 1908 1885 1909 1886 1910 1911 1912 /****************************************************************************/1913 /* Actions for pvfs2_call_msgpairarray_sm */1914 /****************************************************************************/1915 1916 /*We use a separate nested state machine to call msgpairarray because */1917 /*msgpairarray.sm is setup to work only with a "jump". When "pjmp" */1918 /*is used, the frame stack gets corrupted. */1919 static PINT_sm_action call_msgpairarray (struct PINT_smcb *smcb1920 ,job_status_s *js_p)1921 {1922 gossip_debug(GOSSIP_MIRROR_DEBUG,"Executing pvfs2_call_msgpairarray_sm:"1923 "call_msgpairarray....\n");1924 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tframe count is %d.\n",smcb->frame_count);1925 gossip_debug(GOSSIP_MIRROR_DEBUG,"\t base frame is %d.\n",smcb->base_frame);1926 struct PINT_server_op *mirror_op = PINT_sm_frame(smcb,PINT_FRAME_CURRENT);1927 PINT_sm_msgarray_op *m_op = &(mirror_op->msgarray_op);1928 1929 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tmirror_op:%p\n",mirror_op);1930 1931 js_p->error_code = 0;1932 1933 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tm_op->msgpair.req.op:%d\n"1934 ,m_op->msgpair.req.op );1935 1936 PINT_sm_push_frame(smcb,0,m_op);1937 1938 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tAFTER PUSH:smcb->base_frame:%d"1939 "\tframe_count:%d\n"1940 ,smcb->base_frame,smcb->frame_count);1941 1942 return SM_ACTION_COMPLETE;1943 }/*end action call_msgpairarray*/1944 1945 1946 1947 1948 static PINT_sm_action cleanup_msgpairarray (struct PINT_smcb *smcb1949 ,job_status_s *js_p)1950 {1951 gossip_debug(GOSSIP_MIRROR_DEBUG,"Executing IMM_COPIES:cleanup_msgpairarray"1952 "....\n");1953 struct PINT_server_op *mirror_op = PINT_sm_frame(smcb,PINT_FRAME_CURRENT);1954 PINT_sm_msgarray_op *m_op = &(mirror_op->msgarray_op);1955 1956 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tmirror_op:%p\n",mirror_op);1957 1958 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tjs_p->error_code:%d\n"1959 ,js_p->error_code);1960 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tBEFORE POP:smcb->frame_base:%d"1961 "\tframe_count:%d\n"1962 ,smcb->base_frame,smcb->frame_count);1963 1964 1965 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tm_op->msgpair.req.op:%d\n"1966 ,m_op->msgpair.req.op );1967 1968 gossip_debug(GOSSIP_MIRROR_DEBUG,"\tmirror_op->resp.status:%d\n"1969 ,mirror_op->resp.status);1970 1971 return SM_ACTION_COMPLETE;1972 }/*end action cleanup_msgpairarray*/1973 1974 1975 1976 1977 1887 int mirror_comp_fn(void *v_p, struct PVFS_server_resp *resp_p, int i) 1978 1888 { -
branches/Orange-Branch/src/server/get-attr.sm
r8251 r8486 245 245 246 246 %% 247 248 247 249 248 250 /* getattr_verify_attribs() -
branches/Orange-Branch/src/server/list-attr.sm
r7471 r8486 48 48 pjmp listattr_setup_getattr 49 49 { 50 success => pvfs2_ get_attr_work_sm;50 success => pvfs2_pjmp_get_attr_work_sm; 51 51 } 52 52 success => interpret_getattrs; -
branches/Orange-Branch/src/server/module.mk.in
r8317 r8486 7 7 # automatically generated c files 8 8 SERVER_SMCGEN := \ 9 $(DIR)/pjmp-machines.c \ 9 10 $(DIR)/setparam.c \ 10 11 $(DIR)/lookup.c \ -
branches/Orange-Branch/src/server/pvfs2-server.h
r8484 r8486 717 717 /* server side state machines */ 718 718 extern struct PINT_state_machine_s pvfs2_mirror_sm; 719 719 extern struct PINT_state_machine_s pvfs2_pjmp_call_msgpairarray_sm; 720 extern struct PINT_state_machine_s pvfs2_pjmp_get_attr_with_prelude_sm; 721 extern struct PINT_state_machine_s pvfs2_pjmp_remove_work_sm; 722 extern struct PINT_state_machine_s pvfs2_pjmp_mirror_work_sm; 723 extern struct PINT_state_machine_s pvfs2_pjmp_create_immutable_copies_sm; 724 extern struct PINT_state_machine_s pvfs2_pjmp_get_attr_work_sm; 720 725 721 726 /* nested state machines */ … … 731 736 extern struct PINT_state_machine_s pvfs2_unexpected_sm; 732 737 extern struct PINT_state_machine_s pvfs2_create_immutable_copies_sm; 733 extern struct PINT_state_machine_s pvfs2_call_msgpairarray_sm;734 738 extern struct PINT_state_machine_s pvfs2_mirror_work_sm; 735 739 extern struct PINT_state_machine_s pvfs2_tree_remove_work_sm; 736 740 extern struct PINT_state_machine_s pvfs2_tree_get_file_size_work_sm; 741 extern struct PINT_state_machine_s pvfs2_call_msgpairarray_sm; 737 742 738 743 /* Exported Prototypes */ -
branches/Orange-Branch/src/server/set-eattr.sm
r7968 r8486 77 77 pjmp setup_create_immutable_copies 78 78 { 79 CREATE_IMM_COPIES => pvfs2_ create_immutable_copies_sm;79 CREATE_IMM_COPIES => pvfs2_pjmp_create_immutable_copies_sm; 80 80 } 81 81 success => inspect_imm_copies; -
branches/Orange-Branch/src/server/tree-communicate.sm
r8317 r8486 74 74 pjmp tree_remove_setup 75 75 { 76 REMOTE_OPERATION => pvfs2_ call_msgpairarray_sm;77 LOCAL_OPERATION => pvfs2_ remove_work_sm;76 REMOTE_OPERATION => pvfs2_pjmp_call_msgpairarray_sm; 77 LOCAL_OPERATION => pvfs2_pjmp_remove_work_sm; 78 78 } 79 79 default => tree_remove_work_cleanup; … … 114 114 pjmp tree_get_file_size_setup 115 115 { 116 REMOTE_OPERATION => pvfs2_ call_msgpairarray_sm;117 LOCAL_OPERATION => pvfs2_ get_attr_with_prelude_sm;116 REMOTE_OPERATION => pvfs2_pjmp_call_msgpairarray_sm; 117 LOCAL_OPERATION => pvfs2_pjmp_get_attr_with_prelude_sm; 118 118 } 119 119 default => tree_get_file_size_work_cleanup;
