Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
Slurm
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
tud-zih-energy
Slurm
Commits
21e69f43
Commit
21e69f43
authored
22 years ago
by
tewk
Browse files
Options
Downloads
Patches
Plain Diff
moved job_info pack routines here
parent
743b4b43
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/common/slurm_protocol_pack.c
+103
-3
103 additions, 3 deletions
src/common/slurm_protocol_pack.c
src/common/slurm_protocol_pack.h
+7
-2
7 additions, 2 deletions
src/common/slurm_protocol_pack.h
with
110 additions
and
5 deletions
src/common/slurm_protocol_pack.c
+
103
−
3
View file @
21e69f43
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
#include
<src/common/slurm_protocol_pack.h>
#include
<src/common/slurm_protocol_pack.h>
#include
<src/common/pack.h>
#include
<src/common/pack.h>
#include
<src/common/log.h>
#include
<src/common/log.h>
#include
<src/api/nodelist.h>
#include
<src/slurmctld/slurmctld.h>
#include
<src/slurmctld/slurmctld.h>
/* pack_header
/* pack_header
...
@@ -56,6 +57,9 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len )
...
@@ -56,6 +57,9 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len )
case
RESPONSE_BUILD_INFO
:
case
RESPONSE_BUILD_INFO
:
pack_build_info
(
(
build_info_msg_t
*
)
msg
->
data
,
(
void
**
)
buffer
,
buf_len
)
;
pack_build_info
(
(
build_info_msg_t
*
)
msg
->
data
,
(
void
**
)
buffer
,
buf_len
)
;
break
;
break
;
case
RESPONSE_JOB_INFO
:
pack_job_info_msg
(
(
slurm_msg_t
*
)
msg
,
(
void
**
)
buffer
,
buf_len
)
;
break
;
case
REQUEST_NODE_REGISRATION_STATUS
:
case
REQUEST_NODE_REGISRATION_STATUS
:
break
;
break
;
case
MESSAGE_NODE_REGISRATION_STATUS
:
case
MESSAGE_NODE_REGISRATION_STATUS
:
...
@@ -84,8 +88,6 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len )
...
@@ -84,8 +88,6 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len )
case
RESPONSE_SIGNAL_JOB
:
case
RESPONSE_SIGNAL_JOB
:
case
RESPONSE_SIGNAL_JOB_STEP
:
case
RESPONSE_SIGNAL_JOB_STEP
:
break
;
break
;
case
RESPONSE_JOB_INFO
:
break
;
case
REQUEST_JOB_ATTACH
:
case
REQUEST_JOB_ATTACH
:
break
;
break
;
case
RESPONSE_JOB_ATTACH
:
case
RESPONSE_JOB_ATTACH
:
...
@@ -144,6 +146,9 @@ int unpack_msg ( slurm_msg_t * msg , char ** buffer , uint32_t * buf_len )
...
@@ -144,6 +146,9 @@ int unpack_msg ( slurm_msg_t * msg , char ** buffer , uint32_t * buf_len )
case
RESPONSE_BUILD_INFO
:
case
RESPONSE_BUILD_INFO
:
unpack_build_info
(
(
build_info_msg_t
**
)
&
(
msg
->
data
)
,
(
void
**
)
buffer
,
buf_len
)
;
unpack_build_info
(
(
build_info_msg_t
**
)
&
(
msg
->
data
)
,
(
void
**
)
buffer
,
buf_len
)
;
break
;
break
;
case
RESPONSE_JOB_INFO
:
unpack_job_info_msg
(
(
job_info_msg_t
**
)
&
(
msg
->
data
)
,
(
void
**
)
buffer
,
buf_len
)
;
break
;
case
REQUEST_NODE_REGISRATION_STATUS
:
case
REQUEST_NODE_REGISRATION_STATUS
:
break
;
break
;
case
MESSAGE_NODE_REGISRATION_STATUS
:
case
MESSAGE_NODE_REGISRATION_STATUS
:
...
@@ -240,7 +245,102 @@ int unpack_node_registration_status_msg ( node_registration_status_msg_t ** msg
...
@@ -240,7 +245,102 @@ int unpack_node_registration_status_msg ( node_registration_status_msg_t ** msg
return
0
;
return
0
;
}
}
void
pack_build_info
(
build_info_msg_t
*
build_ptr
,
void
**
buf_ptr
,
int
*
buffer_size
)
void
pack_job_info_msg
(
slurm_msg_t
*
msg
,
void
**
buf_ptr
,
int
*
buffer_size
)
{
memcpy
(
*
buf_ptr
,
msg
->
data
,
msg
->
data_size
);
(
*
buf_ptr
)
+=
msg
->
data_size
;
(
*
buffer_size
)
-=
msg
->
data_size
;
}
int
unpack_job_info_msg
(
job_info_msg_t
**
msg
,
void
**
buf_ptr
,
int
*
buffer_size
)
{
int
i
;
job_table_t
*
job
;
*
msg
=
malloc
(
sizeof
(
job_info_msg_t
)
);
if
(
*
msg
==
NULL
)
return
ENOMEM
;
/* load buffer's header (data structure version and time) */
unpack32
(
&
((
*
msg
)
->
record_count
),
buf_ptr
,
buffer_size
);
unpack32
(
&
((
*
msg
)
->
last_update
)
,
buf_ptr
,
buffer_size
);
job
=
(
*
msg
)
->
job_array
=
malloc
(
sizeof
(
job_table_t
)
*
(
*
msg
)
->
record_count
)
;
/* load individual job info */
job
=
NULL
;
for
(
i
=
0
;
i
<
(
*
msg
)
->
record_count
;
i
++
)
{
unpack_job_table
(
&
job
[
i
]
,
buf_ptr
,
buffer_size
)
;
}
return
0
;
}
int
unpack_job_table_msg
(
job_table_msg_t
**
msg
,
void
**
buf_ptr
,
int
*
buffer_size
)
{
*
msg
=
malloc
(
sizeof
(
job_table_t
)
)
;
if
(
*
msg
==
NULL
)
return
ENOMEM
;
unpack_job_table
(
*
msg
,
buf_ptr
,
buffer_size
)
;
return
0
;
}
int
unpack_job_table
(
job_table_t
*
job
,
void
**
buf_ptr
,
int
*
buffer_size
)
{
uint16_t
uint16_tmp
;
uint32_t
uint32_tmp
;
char
*
node_inx_str
;
unpack32
(
&
job
->
job_id
,
buf_ptr
,
buffer_size
);
unpack32
(
&
job
->
user_id
,
buf_ptr
,
buffer_size
);
unpack16
(
&
job
->
job_state
,
buf_ptr
,
buffer_size
);
unpack32
(
&
job
->
time_limit
,
buf_ptr
,
buffer_size
);
unpack32
(
&
uint32_tmp
,
buf_ptr
,
buffer_size
);
job
->
start_time
=
(
time_t
)
uint32_tmp
;
unpack32
(
&
uint32_tmp
,
buf_ptr
,
buffer_size
);
job
->
end_time
=
(
time_t
)
uint32_tmp
;
unpack32
(
&
job
->
priority
,
buf_ptr
,
buffer_size
);
unpackstr_ptr_malloc
(
&
job
->
nodes
,
&
uint16_tmp
,
buf_ptr
,
buffer_size
);
if
(
job
->
nodes
==
NULL
)
job
->
nodes
=
""
;
unpackstr_ptr_malloc
(
&
job
->
partition
,
&
uint16_tmp
,
buf_ptr
,
buffer_size
);
if
(
job
->
partition
==
NULL
)
job
->
partition
=
""
;
unpackstr_ptr_malloc
(
&
job
->
name
,
&
uint16_tmp
,
buf_ptr
,
buffer_size
);
if
(
job
->
name
==
NULL
)
job
->
name
=
""
;
unpackstr_ptr
(
&
node_inx_str
,
&
uint16_tmp
,
buf_ptr
,
buffer_size
);
if
(
node_inx_str
==
NULL
)
node_inx_str
=
""
;
job
->
node_inx
=
bitfmt2int
(
node_inx_str
);
unpack32
(
&
job
->
num_procs
,
buf_ptr
,
buffer_size
);
unpack32
(
&
job
->
num_nodes
,
buf_ptr
,
buffer_size
);
unpack16
(
&
job
->
shared
,
buf_ptr
,
buffer_size
);
unpack16
(
&
job
->
contiguous
,
buf_ptr
,
buffer_size
);
unpack32
(
&
job
->
min_procs
,
buf_ptr
,
buffer_size
);
unpack32
(
&
job
->
min_memory
,
buf_ptr
,
buffer_size
);
unpack32
(
&
job
->
min_tmp_disk
,
buf_ptr
,
buffer_size
);
unpackstr_ptr_malloc
(
&
job
->
req_nodes
,
&
uint16_tmp
,
buf_ptr
,
buffer_size
);
if
(
job
->
req_nodes
==
NULL
)
job
->
req_nodes
=
""
;
unpackstr_ptr
(
&
node_inx_str
,
&
uint16_tmp
,
buf_ptr
,
buffer_size
);
if
(
node_inx_str
==
NULL
)
node_inx_str
=
""
;
job
->
req_node_inx
=
bitfmt2int
(
node_inx_str
);
unpackstr_ptr_malloc
(
&
job
->
features
,
&
uint16_tmp
,
buf_ptr
,
buffer_size
);
if
(
job
->
features
==
NULL
)
job
->
features
=
""
;
unpackstr_ptr_malloc
(
&
job
->
job_script
,
&
uint16_tmp
,
buf_ptr
,
buffer_size
);
if
(
job
->
job_script
==
NULL
)
job
->
job_script
=
""
;
return
0
;
}
void
pack_build_info
(
build_info_msg_t
*
build_ptr
,
void
**
buf_ptr
,
int
*
buffer_size
)
{
{
pack32
(
build_ptr
->
last_update
,
buf_ptr
,
buffer_size
);
pack32
(
build_ptr
->
last_update
,
buf_ptr
,
buffer_size
);
pack16
(
build_ptr
->
backup_interval
,
buf_ptr
,
buffer_size
);
pack16
(
build_ptr
->
backup_interval
,
buf_ptr
,
buffer_size
);
...
...
This diff is collapsed.
Click to expand it.
src/common/slurm_protocol_pack.h
+
7
−
2
View file @
21e69f43
...
@@ -37,6 +37,11 @@ int unpack_job_desc ( job_desc_msg_t **job_desc_msg_ptr, void ** buffer , int *
...
@@ -37,6 +37,11 @@ int unpack_job_desc ( job_desc_msg_t **job_desc_msg_ptr, void ** buffer , int *
void
pack_last_update
(
last_update_msg_t
*
msg
,
void
**
buffer
,
uint32_t
*
length
)
;
void
pack_last_update
(
last_update_msg_t
*
msg
,
void
**
buffer
,
uint32_t
*
length
)
;
int
unpack_last_update
(
last_update_msg_t
**
msg
,
void
**
buffer
,
uint32_t
*
length
)
;
int
unpack_last_update
(
last_update_msg_t
**
msg
,
void
**
buffer
,
uint32_t
*
length
)
;
void
pack_build_info
(
struct
build_table
*
build_ptr
,
void
**
buffer
,
int
*
buffer_size
)
;
void
pack_build_info
(
build_info_msg_t
*
build_ptr
,
void
**
buffer
,
int
*
buffer_size
)
;
int
unpack_build_info
(
struct
build_table
**
build_buffer_ptr
,
void
**
buffer
,
int
*
buffer_size
)
;
int
unpack_build_info
(
build_info_msg_t
**
build_buffer_ptr
,
void
**
buffer
,
int
*
buffer_size
)
;
void
pack_job_info_msg
(
slurm_msg_t
*
msg
,
void
**
buffer
,
int
*
buffer_size
)
;
int
unpack_job_info_msg
(
job_info_msg_t
**
msg
,
void
**
buffer
,
int
*
buffer_size
)
;
int
unpack_job_table
(
job_table_t
*
job
,
void
**
buf_ptr
,
int
*
buffer_size
)
;
#endif
#endif
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment